基于微信小程序的宠物自动喂食系统
扫描二维码
随时随地手机看文章
引 言
现代家庭常有饲养宠物的习惯,但宠物的喂养却成了一大难题,一方面是饲养者通常需要在工作日外出上班导致无法及时喂食;另一方面,人工喂食的量不易控制,饲养者因为其他事情忘记投喂也时常发生。这些问题都极大地影响了人与动物的和谐相处,更增添了饲养者的烦恼。为解决以上问题,笔者基于 STM32嵌入式核心设计并制作了一套联网自动喂食系统,不同于以往的脱机自动喂食器,本系统通过接入互联网,可有效将设置计划- 进行投喂 - 宠物取食- 推送通知反馈形成闭环消息链路实现对宠物喂食的自动化控制,将热爱宠物却忙于工作的“上班族”解救出来
1 自动喂食系统的设计
1.1 整体框架
自动喂食系统结构如图 1 所示
1.2 控制部分
自动喂食系统的控制部分以 STM32F103VET6 大容量增强型芯片为核心。该型号的嵌入式核心为 ARM Cortex-M3 架构, 具备 512 kb FLASH,64 kb RAM, 足以支撑 STemWin 图形界面的运转,十分适合移植 μC/OS-II 嵌入式实时系统此外, 该核心还含有 4 个用于控制TFT-LCD 屏幕的 FSMC 接口以及 80 多个I/O 口,能够十分方便地操作市面上常见的TFT-LCD 触摸屏且不会造成 I/O 口紧张。系统会在上电后初始化网络模块和本地 GUI 模块,从服务器获取本设备的计划任务,最后保存至本地,即使网络断开,喂食器也能从本地缓存中读取计划进行投喂
1.3 通信部分
无线网络通信芯片采用国产的 ESP-WROOM-02 模组该模组由乐鑫公司生产。基于 ESP8266EX 芯片设计开发的物联网模组集成有 TCP/IP 协议栈,32 位低功耗单片机,10 bits ADC 及UART,HSPI,I2C,I2S,PWM 接口。此外,该模组的长和宽仅为 18 mm 及 20 mm,易于集成到空间受限的产品当中。ESP-WROOM-02 的低功耗模式性能优异,保持WiFi 连接仅需 1.2 mW,同时,该模组还配置了 16 Mbits 的SPI 闪存可用于存储用户程序和固件
1.4 机械部分
对于定量出料的喂食器,其出料料斗必须具备精准控制出料量的能力,因此参考医院的气闸室,设计双门结构料斗从一个大容器中取料,在保证两个方向的门不会同时开启后,即可实现缓冲及定量取料
2 自动喂食系统的具体实现
2.1 自动喂食系统控制部分的软件实现
系统上电后首先将操作系统及图形化界面(GUI)初始化,若存在已经连接过的无线网络则尝试自动连接,否则等待用户通过本地设置界面连接。联网后将生成两个进程,其中一个使用HTTP 协议访问指定的 PHP 页面,通过 GET 方式获取当前的网络时间和计划任务,在此之后将进入 5 s 一次的轮询状态以随时感知计划变更。另一任务则是判断当前时间是否为投喂时间,如果是则按照设定的次数进行投喂。自动喂食系统控制部分流程如图 2 所示
图 2 自动喂食系统控制部分流程
STM32 主 控 芯 片 与 ESP8266EX 模 组 ( 即 ESP- WROOM-02)通过串口上的字符串指令——“AT”进行控制当系统初始化完毕后,STM32 将发送指令使无线网络模块进入透传模式,此时等效于主控芯片直接与服务器通信,可快速传递数据,包括饲料余量、取食状态等。自动喂食系统状态流程如图 3 所示
2.2 自动喂食系统的电路实现
2.2.1 ESP-WROOM-02电路设计
自动喂食系统通信模块电路如图 4 所示。本电路将 ESP- WROOM-02 的多个 I/O 口引出, 并将 TXD/RXD 串口与CH340G 连接,实现在电脑等上位机中进行程序烧录及协议分析。ASM1117 为正向低压降 LDO 稳压电源,量产时间早,价格低廉,性能稳定,常用于输出电流小于1 A 的场景,本系统将其作为 ESP-WROOM-02 无线网络模块的电源
2.2.2 喂食驱动电路设计
喂食驱动电路采用四 IR2104 芯片及 IR7843 场效应管搭建双 H 桥进行驱动。IR2104 是由美国 International Rectifier 公司生产的半桥驱动器,可通过控制输入 PWM 信号的占空比来控制驱动输出的电流大小,通过IN1,IN2 的反转控制电机的转动方向。自动喂食系统驱动模块电路如图 5 所示,具体组合方式见表 1 所列
2.3 自动喂食系统的机械实现
初始状态时,由于储粮容器中猫粮的重力作用,料斗处于水平状态,并与瓶口紧贴,使得饲料不会外漏。预备存储时的投喂料斗如图 6 所示
投料时,料斗后退,由于斜板的阻挡作用,料斗将顺势上移并开口向下,又因为料斗下方的开口并没有阻挡,因此料斗内的饲料可顺利下落。此时料斗结构的挡板同时后退,封闭储粮瓶口,使得储粮容器饲料不外漏。出料时投喂料斗示意图如图 7 所示。通过反复设计和调整,将每次满载的料斗所能承载的重量设定为 M 克,这样就可以得到投喂量 Efeed 容器内饲料余量 Eremain 与电机运行次数 C 的关系
使用以上两式可以计算出本次投喂电机需要运行的次数及容器内的余量,在饲料余量不足时通知饲养者,同时用于程序计算以显示余量
2.4 自动喂食系统的远程控制端
本系统的远程控制端使用微信小程序实现。每套喂食器拥有唯一的 PIN 码和对应 SN 码,用户注册账号后,输入设备的 SN 和 PIN 码,通过 HASH 计算无误后成功绑定该设备,此后该设备的所有操作及状态都会与绑定的微信号关联,包括投喂、取食、余量不足等信息都会推送至绑定的用户微信,让饲养者随时掌握自动喂食系统的状态。每个用户可以绑定多套设备,分别设置不同的计划,方便使用不同食盆的宠物按照自己的习惯进食。喂食系统的远程控制端界面如图 8 所示。
2.5 自动喂食系统的实物测试
根据上述设计方法,我们制作了如图 9 所示的实物。其中上部为饲料容器,左中部为 LCD 屏幕及开发板,右中部为出料斜坡,左下方为 ESP-WROOM2-02 无线网络模块,右下方为接料容器,宠物将直接在该容器中进食。图 10 所示为本地设置所用的 GUI 界面,使用者可以直接触屏控制,使用自行编写的软键盘进行输入。
完成实物制作后,我们进行了一系列的出料稳定性测试出料稳定性主要由料斗等出料机械设计决定,鉴于存放饲料的容器有两种边界状态,即满载和空载,而实际应用时因为喂食器会及时提醒,所以正常情况下不会出现完全空载的情况使用者加料时通常也不会完全填满容器,所以我们选取了接近临界状态的两种情况进行出料稳定性测试,通过设定不同的出料量,比较实际出料量和理论出料量的差别并计算其误差百分比。稳定性测试结果见表 2 所列
由上文可知,系统在容器较满时更加稳定,单次出料量较大。
3 结 语
自动宠物喂食系统以双门单开结构的出料机械结构为基础,以高性能 STM32 嵌入式芯片为核心,以 ESP-WROOM-02无线网络模块为关键拓展,以微信小程序为用户顶层界面,从底层到顶层、从具体到抽象,实现了本系统的所有预期功能,适用具体人群的具体问题,具有一定的社会经济效益。
5049.5.0