DIY一个远程宠物投喂装置
简介
最近一个月都没有更新,原因是开始忙毕设和一个嵌入式课程设计。最近终于完成了基础功能,打算总结一下这个设计的实现过程。至于为什么想到设计这样一个东西,主要是从实用方面考虑,家里有宠物的朋友估计也会希望能够远程投喂,因此我就想自己diy一个拿回家用。
下面将会分四个方面:结构、MCU、服务器和安卓 来进行介绍。
结构
本人不是机械专业的因此结构设计也是业余的,我一开始设计的结构是这样的:
然而,这套装置私人定制会非常贵,全部3d打印也是不切实际的。因此,最终我把大件的使用现成材料代替(也就是生活中可以买得到的材料),而小零件则使用3d打印。
材料清单
原结构实现方式饲料罐怡宝4.5L桶装水四根支撑柱可定做也可现找底座陶土自己捏管道PVC胶管(很便宜)小阀门3D打印舵机架3D打印罐子支撑板亚克力板定做(不贵)MCU支撑板亚克力板定做M3x8螺钉螺母T宝 x4M3x20尼龙螺钉T宝 x4需要3d打印的部分:
亚克力板定做部分:
几点说明:
怡宝桶装水瓶口螺纹有两种(目前发现),我自己画的只支持单螺纹的,其他螺纹可能扭不紧,这个需要自己改改。支撑柱我是用一个干衣机配的支撑住拆下来的,这个自行解决把。用陶土捏出的底座非常结实,而且很好玩!!小阀门和舵机架与MG995舵机完美配合亚克力板的四个孔需要和你的支撑住直径配合。实际做出来的结构
MCU
清单
正点原子stm32f1开发mini板 MG995舵机 DHT11温湿度传感器 ALK8266 WIFI模组几点说明:
板子完全可以自制PCB,会有更大自由度,但我时间不够。WIFI模组安利一下这个link。店家提供配网和远程通信的API,支持各种常见MCU,而且店家售后技术支持非常友好。Kernel
RT-Thread Nano为了符合嵌入式课程的要求,我在stm32f103上移植了一个迷你的os内核——RT-Thread Nano。
Features
USART1串口用于输入输出调试信息,RT-Thread的msh/finsh命令行工具支持命令行查询运行状态。搭配正点原子的XCOM串口调试助手使用。通过舵机控制投喂阀门的开启。通过温湿度传感器获取环境温湿度。WIFI模组目前还没发挥其高速传输的优势,因为图片/视频传输还没开发。配合AutoPet/Server和AutoPet/Android,实现远程控制。Code Structure
Modules init
延时初始化串口初始化PWM初始化DHT11初始化wifi模块初始化SetupTCP
建立TCP连接需要指定远端的服务器IP和端口,连接上以后需要发送身份码表明客户身份,否则会拒绝连接。发送和接收线程
初始化操作完毕后启动接收线程接收服务器发送的消息,通过邮箱与发送线程通信。发送线程接收到投喂指令则执行投喂函数,接收到获取温湿度指令则读取温湿度传感器并发送给服务器。检查连接线程
初始化操作完毕后启动隔一段时间检查一次模组的工作状态和TCP连接状态,进行异常排除。服务器
我这里使用最简单的一种p2p通信方式,就是通过一个处于公网的服务器中转的方式来实现。因此你需要一个服务器。p2p通信技术可以看看这个博客
Features
使用Socket通信,服务器和客户端建立TCP连接。 只支持两个客户端,一个是MCU,一个是Android。 稳定运行只跟服务器有关,与客户端状况无关。Code Structure
socket(); setsockopt(); //设置socket bind(); // 绑定到端口 123
等待客户端
这里只允许两个客户端,使用资源量为2的信号量,当指定客户端都与服务器建立TCP连接后,使改线程挂起。accept出错记得释放信号量。accept之后需要确认客户端身份,MCU端连接后需要发送“mcu”,而Android端需要发送“and”。心跳线程
服务器不断接收标记信号,并设置一个计数变量每秒加一。若收到一次标记信号变量置零。如果大于变量大于某个值,可以认为TCP连接断开。接收线程
接收心跳标记信号。接收安卓端控制信号后,发送到MCU客户。接收MCU发送的温湿度信息,发送到安卓客户。安卓
Recommend
安卓 9.0 +
Features
与服务器建立TCP连接,并监听连接状态 实时检测远端MCU与服务器的连接状态 点击“投喂”按键,控制远端设备自动投喂 点击“室内环境”按键,实时获取远端温湿度传感器的数据 视频环境传送(未实现,待续)Code Structure
Logical process
点击app
初始化工具栏菜单初始化网络环境监听初始化进度条通知初始化MCU状态监听器初始化按钮点击TCP连接
启动心跳线程启动读数据线程若TCP断开,重置Socket点击投喂按钮
发送投喂命令阻塞5s点击室内环境按钮
启动发送获取温湿度命令线程,每5s发送一次当读到温湿度数据,更新列表Screen
Codes & Files
代码和文件:https://github.com/Rick0514/AutoPet
https://github.com/Rick0514/AutoPet-MCU
https://github.com/Rick0514/AutoPet-Server
https://github.com/Rick0514/AutoPet-Android
相关知识
基于STM32的宠物远程投喂和监测系统设计
开发者案例:智能宠物屋,智能投喂、自动清洁、APP远程控制
能陪玩、会投喂、还可远程控制,这款为宠物服务的Rocki机器人也能这么魔性?
专为萌宠而生 宠物摄像头远程投食互动
基于机智云+Shineblink的智能宠物屋,智能投喂、自动清洁及APP远程控制
Furbo宠物智能喂食器 支持远程互动
一种基于互联网的远程宠物喂养方法
宠物自动喂食器哪个品牌质量好?热销品牌推荐,远程轻松控制投食
Furbo 宠物智能互动玩具 远程摄像机【报价 价格 评测 怎么样】
宠物的“智能生活”:主人出差可远程投食 控温除味猫狗舍
网址: DIY一个远程宠物投喂装置 https://www.mcbbbk.com/newsview192795.html
上一篇: Petnet智能宠物喂食器 远程 |
下一篇: 开发远程兽医app定制开发软件制 |
推荐分享

- 1养玉米蛇的危害 28654
- 2狗交配为什么会锁住?从狗狗生 6922
- 3我的狗老公李淑敏33——如何 6215
- 4豆柴犬为什么不建议养?可爱的 4597
- 5南京宠物粮食薄荷饼宠物食品包 4549
- 6中国境内禁养的十大鸟种,你知 4418
- 7湖南隆飞尔动物药业有限公司宠 4247
- 8自制狗狗辅食:棉花面纱犬的美 4241
- 9家养水獭多少钱一只正常 4194
- 10广州哪里卖宠物猫狗的选择性多 4102