1171|5

45

帖子

2

TA的资源

一粒金砂(中级)

楼主
 

[DigiKey智造万物快乐不停创意大赛]STM32MP157D 远程宠物喂鸟器作品提交 [复制链接]

 
作品名称:STM32MP157D 远程宠物喂鸟器
作者:skyworth74
  1. 作品简介(100-200字)
    (设计名称、作品照片、项目用到的板卡、芯片、模块等介绍,作品功能介绍等)
[DigiKey智造万物快乐不停创意大赛]STM32MP157D 远程宠物喂鸟器
家里养了一只鹦鹉,每天都早出晚归,鹦鹉的喂养就成了一个问题,于是想到网上买一个宠物喂养的设备,每天在公司也可以通过手机喂养家里的鹦鹉,后来刚好遇到得捷点搞智造万物快乐不停创意大赛于是改变了主意,决定自己DIY一个远程宠物喂鸟器,为了快速搭建平台选择了意法半导体公司的STM32MP157D-DK1开发平台,该开发平台是STM32MP157微处理器基于灵活的Arm® Cortex®-A7双核(工作频率800 MHz)和Cortex®-M4内核(工作频率209 MHz)架构,支持Linux®嵌入式开发平台。有这个平台可以快速实现创意。一块STM32MP157开发板,加上一个步进电机和步进电机驱动IC ULN2003.
STM32MP157D用来实现MQTT 功能实现远程控制,步进马达用来转动把食物往储物仓的出口推送,通过重力作用往下落到宠物的碟碗上供给鹦鹉食用。
下图分别是:1、STM32MP157 开发板
2、ULN2003步进电机驱动小板
3、废物利用做的PVC食物仓,用来盛放宠物的食物
  1. 步进马达28BYJ-48,成熟的马达
实现功能宠物投喂,自动防止阻塞功能
  1. 系统框图(图文结合)
    (设计思路、系统软硬件介绍及实现框图,以图文结合的展示)
工作原理:
  1. 在储物仓放上宠物的食物
  2. 系统开机运行app,mqtt_dmeo,mqtt通过网络连上iot的服务器,在iot订阅相关服务
  3. 手机或PC在发布订阅信息,mqtt_demo 收到broker解析出控制命令驱动步进电机来回转动,把食物推压到出口通过重力落入宠物的碟碗。
    要实现以上功能,需要移植linux 下的mqtt发布订阅程序把接受到的json命令解析出来实现相应功能,开发步进电机驱动程序,实现步进电机的正转和反转,防堵塞功能,减低步进电机转动速度,提升步进电机的扭矩;制作食物储物箱。

    三、各部分功能说明(图文结合)
    (各部分实现的功能说明及讲解,以图文结合的展示)
  4. 作品源码
步进电机驱动
void stepmotor_cw(unsigned char *u8step)
{
switch(*u8step){
case 0:
gpio_ctrl('E',PE1,1);
gpio_ctrl('E',PE10,0);
gpio_ctrl('D',PD1,0);
gpio_ctrl('G',PG3,0);
*u8step =1;
break;
case 1:
gpio_ctrl('E',PE1,0);
gpio_ctrl('E',PE10,1);
gpio_ctrl('D',PD1,0);
gpio_ctrl('G',PG3,0);
*u8step =2;
break;
case 2:
gpio_ctrl('E',PE1,0);
gpio_ctrl('E',PE10,0);
gpio_ctrl('D',PD1,1);
gpio_ctrl('G',PG3,0);
*u8step =3;
break;
case 3:
gpio_ctrl('E',PE1,0);
gpio_ctrl('E',PE10,0);
gpio_ctrl('D',PD1,0);
gpio_ctrl('G',PG3,1);
*u8step =0;
break;
default:
;
}
}
Mqtt 订阅接收回调函数
void mqtt_data_rx_cb(void *pbuf, int len)
{
printf("data = %s\n", (unsigned char *)pbuf);//打印接收到的数据
mqtt_receive_process(pbuf);
}
Json解析
XjsonGetString(root,"msg",msgbuffer,sizeof(msgbuffer),"feed");
XjsonGetInt(root,"control",&s32control,0);
XjsonGetInt(root,"length",&length,300);
XjsonGetInt(root,"s32cnt",&s32cnt,4);
Length用于解析步进电机的转动脚步,s32cnt
解析出步进电机来回转动的次数,s32control 表示转动方向。
(可下载的项目源码及说明,源码请上传到EEWorld下载中心,下载链接粘贴到作品文档和作品提交帖中)
源代码地址
五、作品功能演示视频
(视频简介+链接,视频链接:可上传到EEWorld大学堂,观看链接粘贴到作品文档和作品提交帖中,也可直接上传到作品帖中)
项目总结(项目文字总结+帖子分享链接汇总)
    嵌入式Linux的开发和其它RTOS的开发的一个区别是Linux可以告别重复造轮子的过程,网上有很多开源的代码可以提供,开发者更多专注在功能和创意的实现。
帖子汇总:
  1. 【DigiKey“智造万物,快乐不停”创意大赛】STM32MP157D-DK1开箱贴 - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
  2. 【DigiKey“智造万物,快乐不停”创意大赛】STM32MP157D 远程宠物喂鸟器之一MQTT移植 - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
  3. [DigiKey智造万物快乐不停创意大赛]STM32MP157D 远程宠物喂鸟器之一MQTT GPIO控制 - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
  4. [DigiKey智造万物快乐不停创意大赛]STM32MP157D 远程宠物喂鸟器之二MQTT GPIO控制 - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
  5. [DigiKey智造万物快乐不停创意大赛]STM32MP157D 远程宠物喂鸟器作品提交 - DigiKey得捷技术专区 - 电子工程世界-论坛 (eeworld.com.cn)
七、其他
 

作品名称

 

作者:skyworth74   

  • 作品简介(100-200字)
    (设计名称、作品照片、项目用到的板卡、芯片、模块等介绍,作品功能介绍等)

[DigiKey智造万物快乐不停创意大赛]STM32MP157D 远程宠物喂鸟器

< class="p" style="">家里养了一只鹦鹉,每天都早出晚归,鹦鹉的喂养就成了一个问题,于是想到网上买一个宠物喂养的设备,每天在公司也可以通过手机喂养家里的鹦鹉,后来刚好遇到得捷点搞智造万物快乐不停创意大赛于是改变了主意,决定自己DIY一个远程宠物喂鸟器,为了快速搭建平台选择了意法半导体公司的STM32MP157D-DK1开发平台,该开发平台是STM32MP157微处理器基于灵活的Arm® Cortex®-A7双核(工作频率800 MHz)和Cortex®-M4内核(工作频率209 MHz)架构,支持Linux®嵌入式开发平台。有这个平台可以快速实现创意。一块STM32MP157开发板,加上一个步进电机和步进电机驱动IC ULN2003.

 

< class="p" style="">STM32MP157D用来实现MQTT 功能实现远程控制,步进马达用来转动把食物往储物仓的出口推送,通过重力作用往下落到宠物的碟碗上供给鹦鹉食用。

 

< class="p" style="">下图分别是:1、STM32MP157 开发板

 

 

< class="p" style="">2、ULN2003步进电机驱动小板

 

< class="p" style="">

 

 

< class="p" style="">3、废物利用做的PVC食物仓,用来盛放宠物的食物

 

< class="p" style="">

 

 

  • 步进马达28BYJ-48,成熟的马达

< class="p" style="">

 

 

< class="p" style="">实现功能宠物投喂,自动防止阻塞功能

 

  • 系统框图(图文结合)
    (设计思路、系统软硬件介绍及实现框图,以图文结合的展示)

工作原理:

  • 在储物仓放上宠物的食物
  • 系统开机运行app,mqtt_dmeo,mqtt通过网络连上iot的服务器,在iot订阅相关服务
  • 手机或PC在发布订阅信息,mqtt_demo 收到broker解析出控制命令驱动步进电机来回转动,把食物推压到出口通过重力落入宠物的碟碗。

要实现以上功能,需要移植linux 下的mqtt发布订阅程序把接受到的json命令解析出来实现相应功能,开发步进电机驱动程序,实现步进电机的正转和反转,防堵塞功能,减低步进电机转动速度,提升步进电机的扭矩;制作食物储物箱。

 

 

三、各部分功能说明(图文结合)

(各部分实现的功能说明及讲解,以图文结合的展示)

  • 作品源码

步进电机驱动

void stepmotor_cw(unsigned char *u8step)

{

    switch(*u8step){

        case 0:

        gpio_ctrl('E',PE1,1);       

        gpio_ctrl('E',PE10,0);       

        gpio_ctrl('D',PD1,0);        

        gpio_ctrl('G',PG3,0);        

        *u8step =1;

        break;

        case 1:

        gpio_ctrl('E',PE1,0);   

        gpio_ctrl('E',PE10,1);        

        gpio_ctrl('D',PD1,0);        

        gpio_ctrl('G',PG3,0);      

        *u8step =2;

        break;

        case 2:

        gpio_ctrl('E',PE1,0);   

        gpio_ctrl('E',PE10,0);       

        gpio_ctrl('D',PD1,1);  

        gpio_ctrl('G',PG3,0);     

        *u8step =3;

        break;

        case 3:

        gpio_ctrl('E',PE1,0);

        gpio_ctrl('E',PE10,0);       

        gpio_ctrl('D',PD1,0);       

        gpio_ctrl('G',PG3,1);      

        *u8step =0;     

        break;

        default:

        ;

        }

}

Mqtt 订阅接收回调函数

void mqtt_data_rx_cb(void *pbuf, int len)

{

    printf("data = %s\n", (unsigned char *)pbuf); //打印接收到的数据

    mqtt_receive_process(pbuf);

}

Json解析

    XjsonGetString(root,"msg",msgbuffer,sizeof(msgbuffer),"feed");

    XjsonGetInt(root,"control",&s32control,0);

    XjsonGetInt(root,"length",&length,300);

XjsonGetInt(root,"s32cnt",&s32cnt,4);

Length用于解析步进电机的转动脚步,s32cnt

解析出步进电机来回转动的次数,s32control 表示转动方向。

(可下载的项目源码及说明,源码请上传到EEWorld下载中心,下载链接粘贴到作品文档和作品提交帖中)

源代码地址

download.eeworld.com.cn/detail/skyworth74/630434

五、作品功能演示视频

(视频简介+链接,视频链接:可上传到EEWorld大学堂,观看链接粘贴到作品文档和作品提交帖中,也可直接上传到作品帖中)

得捷电子远程喂鸟器-得捷电子远程喂鸟器-EEWORLD大学堂

项目总结(项目文字总结+帖子分享链接汇总)

嵌入式Linux的开发和其它RTOS的开发的一个区别是Linux可以告别重复造轮子的过程,网上有很多开源的代码可以提供,开发者更多专注在功能和创意的实现。

帖子汇总:

七、其他

 

 

 

 

 

 

digikey_iot_contest_2023_zuopindoc.doc

2.29 MB, 下载次数: 4

STM32MP157

最新回复

搭载个摄像头和语音,岂不是绝配 一边喂,一边看还能时不时唠两句。 甚至语音功能可以做一个有趣的实验。 巴普洛夫的鹦鹉。 先大喊一句,“开饭啦” 然后给鹦鹉来一个颗瓜子。     详情 回复 发表于 2024-4-24 15:23
点赞 关注
 
 

回复
举报

6587

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

嵌入式Linux的开发和其它RTOS的开发的一个区别是Linux可以告别重复造轮子的过程,精辟呀

 
 
 

回复

45

帖子

2

TA的资源

一粒金砂(中级)

板凳
 

Jacktang辛苦了,这么晚节假日还在给大家写评论

 
 
 

回复

419

帖子

0

TA的资源

禁止发言

4
 
#在这里快速回复#图文并茂,这个帖子真是精彩绝伦,让我收获颇丰!!!!
 
 
 

回复

6773

帖子

2

TA的资源

版主

5
 

这个还是挺有意思的~

 
 
 

回复

4771

帖子

12

TA的资源

版主

6
 

搭载个摄像头和语音,岂不是绝配

一边喂,一边看还能时不时唠两句。

甚至语音功能可以做一个有趣的实验。

巴普洛夫的鹦鹉。

先大喊一句,“开饭啦”

然后给鹦鹉来一个颗瓜子。

 

 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
推荐帖子
常用网络命令

常用网络命令 计算机网络的主要优点是能够实 ...

各大公司IC类免费样品申请

TPS2000系列数字存储示波器 详细资料申请 http://digital.ni.com/worldwide/china.nsf/sb/Download?OpenDocument&node=162000_zh ...

ucosii在STM32中的移植

10740

液晶1602 显示汉字研究

液晶1602显示字符研究 1602是一款最常用也是最便宜的液晶显示屏。最多可以显示两行标准字符,每行最多可以显示16个字符。 1602 ...

电容的安秒积和电感的伏秒积

  《电工学》或者《电路分析》教材中,对电容的定义是这样的,如图(01),满足图(01)式的电路元件,就是电容。式中i和u都是时间 ...

邀您参加Microchip在线研讨会——为您的IoT传感器设计节能型解决方案

Microchip将于6月29日(周二)举办题为《为您的IoT传感器设计节能型解决方案》的在线研讨会。 543966 在设计电池供电 ...

浅谈驱动芯片的绝缘安规标准

众所周知,各个行业各个领域都有其需要遵循的标准规范,一般会对其产品需要达到的使用条件提出各方面的要求。诸如电机驱动、光伏 ...

【HC32F4A0开发板测评】+I2S语音播放测试

本帖最后由 jinglixixi 于 2023-2-22 09:20 编辑 在HC32F4A0开发板上,为进行音频播放配置了I2S音频电路,所用的芯片为WM8731 ...

超声片/超声换能器/压电陶瓷片驱动波形

超声片/超声换能器/压电陶瓷片驱动波形必须用正弦波 才有良好的效果,比如电声转换效率、波形失真度、功率衰减等;很多负载必须 ...

MicroPython ESP32S3 蓝牙 每包字节大小问题求助

求助各位大佬 我用2块ESP32S3开发板(MicroPython 1.22),1块服务端1块客户端,蓝牙通信已经成功,也交换了MTU,但服务端每 ...

关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表