APP下载

基于微信小程序的宠物自动喂食系统

2018-09-29蒲小年戚慧珊李智豪陈泽业梁广彬唐小煜

物联网技术 2018年9期
关键词:微信小程序嵌入式系统自动控制

蒲小年 戚慧珊 李智豪 陈泽业 梁广彬 唐小煜

摘 要:文中设计了一款以STM32F103XE嵌入式系统为核心,将ESP-WROOM-02无线网络模块作为网络接入端,带减速齿轮的直流电机及双门单开结构的料斗为机械驱动结构,以微信小程序为远程控制端的智能家居系统,由此实现对家中宠物按计划定时定量自动投喂、取食反馈等功能。基于μC/OS-II和STemWin搭建本地控制界面,以便同时实现网络远程管理和本地设置计划、覆盖、缓存等功能。实物化后,经过长时间的联网测试表明,该系统已具备较高的稳定性,初步具备了部署能力,可成功实现预期目标。

关键词:物联网;智能家居;微信小程序;自动控制;嵌入式系统

中图分类号:TP273 文献标识码:A 文章编号:2095-1302(2018)09-00-03

0 引 言

现代家庭常有饲养宠物的习惯,但宠物的喂养却成了一大难题,一方面是饲养者通常需要在工作日外出上班导致无法及时喂食;另一方面,人工喂食的量不易控制,饲养者因为其他事情忘记投喂也时常发生。这些问题都极大地影响了人与动物的和谐相处,更增添了饲养者的烦恼。为解决以上问题,笔者基于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所示。

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无线网络模块为关键拓展,以微信小程序为用户顶层界面,从底层到顶层、从具体到抽象,实现了本系统的所有预期功能,适用具体人群的具体问题,具有一定的社会经济效益。

参考文献

[1]凯文.R.福尔. TCP/IP详解(卷一)[M]. 北京:机械工业出版社,2017.

[2]谢希仁.计算机网络[M].北京:电子工业出版社,2013.

[3]荣蓉.实战微信小程序(第六版)[M].北京:电子工业出版社,2017.

[4]杨家军.机械原理(第2版)[M].北京:北京大学出版社,2010.

[5]王田苗.嵌入式系统设计与实例开发(第3版)[M].北京:清华大学出版社,2007.

[6]周鼎,曹以龙.基于Web版微信与ZigBee网络的智能家居设计[J].物联网技术,2018,8(1):105-107.

[7]郑艳华,蔡佳林.一种基于微信平台的智能家居系统[J].物联网技术,2016,6(12):45-47.

[8]张雪云,牟艳,张九博.基于微信小程序的电源监测管理系统设计[J].计算机与现代化,2017(12):98-102.

猜你喜欢

微信小程序嵌入式系统自动控制
简易热水器自动控制设计
基于DCS自动控制循环水液面的改造
当图书馆遇上微信小程序
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
编组站停车器自动控制开通方案