基于STM32的家用智能宠物投食器的设计与研究
2024-09-14刘俊杰彭琛王丽娟毛小燕梅彬运李杰林
摘要:随着我国社会经济水平的快速发展,国民生活水平不断提高,宠物行业也得到了飞速发展。家庭宠物的饲养已成为城市居民生活消遣的新方式。但宠物的喂养需要花费大量时间,导致人们常常为此而烦恼。本文研究了一款宠物自动喂食系统,以STM32F103单片机为核心,通过手机端微信小程序的设定,发送到云端服务器,服务器再进行简单处理。当到达这一时间点后,云端的服务器向终端的自动投食器发送喂食命令,底层的微处理器控制步进电机转动,从而控制向宠物投喂粮食的进食量。该系统解决了日常生活中无法按时喂养宠物,以及“新手”主人难控制食量的问题。
关键词:宠物喂养;STM32F103;云服务器;智能投喂
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2024)23-0114-03
开放科学(资源服务)标识码(OSID)
智能宠物投食器可用于家养小宠物,例如宠物猫和宠物狗的喂食和喂水,为宠物的小主人提供了极大的便利。目前,市面上已有的宠物投食器在使用过程中存在一系列问题,具体如下:用户在使用过程中需要手动调节,才能实现宠物的定时定量喂食,无法实现智能投喂;当宠物需要喝水时,用户必须手动旋转水嘴开关进行喂水,无法在用户不在家时根据宠物的需求实现自动供水功能;当喂养的宠物种类不同或者随着年龄增长而食量增加时,无法灵活调节供食时间和供食量等参数。王岳等人对野外自动化鸭舍进行了研究,设计的野外鸭舍实现了早晨自动开门、晚上自动奏乐唤鸭回舍,以及自动关门、自动补料和统计回舍鸭子数量等功能[1];孔爱菊等人设计的野外鸭舍喂水控制系统,该系统可以进行水箱液位检测和水泵驱动,具有水箱低水位自动补水和高水位防止溢出等功能,实现了野外鸭舍喂水的自动控制[2];设计了一款可以实现自动投喂的智能化家养宠物喂食器,用户可根据实际使用需求,设置喂食时间、数量、次数等内容,并设有录音等辅助功能,以确保喂食器能够更好地完成投喂工作[3];杨传升等设计的小型全自动喂食机实现了饲料投放、消毒清洁、自动喂水、自动换气和无线信号传输等功能,使整个操作过程基本脱离人工干预[4]。针对现有宠物投食器存在的问题,并结合野外自动化鸭舍的设计经验,本设计提出了一种基于STM32F103微处理器的智能宠物投食器自动控制系统设计方案;设计中使用步进电机控制技术实现了宠物的食物供给,采用电子秤模块来感应投喂食物的量,进而控制步进电机的速度,同时还提供了一款微信小程序来达到远程控制。
1 系统构成
本设计中包含电源电路模块,为系统提供稳定的电源输入;电子秤模块,用于测量喂食桶中的剩余量;语音输出模块,在投喂器执行喂食动作后,用于提示小宠物进行喂食;温湿度模块,用于检测投喂器周围的环境温湿度;Wi-Fi模块和电动机模块。通过Wi-Fi模块与服务器对接微信小程序的设置,达到设定时间后向微处理器发送命令,从而控制电动机模块向宠物投喂食物。
2 系统功能
基于STM32的智能宠物投食器系统设计基于物联网技术进行设计,以底层硬件设计为主,辅以微信端小程序应用程序的软件设计。硬件设计根据智能自动宠物投食器系统实现以下功能:可定时自动添加食物到喂食盘,通过电机的转动将食物运送到喂食盘;可以显示存量桶(6KG以内)和喂食盘(0.5KG以内)中的重量;能显示室内温度(-50~70℃)和湿度(10%~99%);可以连接网络在手机上显示与设置。
3 软件设计
主程序以人机交互为主线,分为物理层、网络层和应用层三部分。物理层包括数据采集、语音播报、信号发生和信号检测等功能;网络层由新大陆云平台提供的服务器和Wi-Fi组网等组成;应用层则为手机端的微信小程序。整个设计的主程序详细流程如图3所示,其开始是3dklNOO15c2xD4VUAc/ITriTAb8QxgZeeh/Y4YH3/dY=由底层硬件层和微信小程序的应用层一起完成初始化。在底层方面,打开电源,等待系统初始化完成。底层的Wi-Fi模块开始连接网络,连接后登录到设定好的新大陆云平台。然后检测存量桶粮食的重量和喂食桶周围环境的温湿度,并将数据发送给服务器。底层硬件在上传数据之后,检测是否收到服务器下达的命令。当没有收到时,则继续进行数据检测并上传。当收到命令后,电动机开始工作,同时喂食盘下的电子秤也开始检测数据,并实时对比。当检测到的重量与服务器命令中的重量一致时,电动机和喂食盘下的电子秤模块停止工作,并打开语音模块播放音乐吸引宠物过来进食,之后继续回到等待命令的过程。这样完成了整个喂食过程。
4 实物制作及数据分析
通过上述对智能宠物投食器的方案论证、硬件设计分析和软件设计分析,制作出智能宠物投食器的大致模型。使用KILE5软件的C语言编写底层由微控制器STM32F103控制的相应模块。
4.1 微信小程序的制作
根据上述所需功能,使用微信开发者工具通过JavaScript简单制作了一个微信小程序界面。借助新大陆云平台提供的服务器,建立了网络连接。在设计了喂食时间后,应用程序将数据发送至新大陆云平台,以保存喂食时间和重量。当达到设定的时间后,平台会向底层的微处理器发送数据,微处理器随即开始工作。
4.2 新大陆云平台服务器调试
新大陆云平台是国内物联网企业——新大陆科技集团下的一款可供免费使用的服务器。本设计运用新大陆云平台的服务器完成了微信小程序和微处理器的数据交换,并进行了相应的处理。微信小程序端发送过来的定时喂食时间和数量的数据上传到新大陆云平台的服务器,经过一些简单的处理,形成一个个策略。策略的作用是在达到设定时间后,将发送一组数据给底层微处理器,即喂食命令。底层微处理器检测到数据,通过Wi-Fi模块上传到新大陆云平台的服务器。它会将获得的数据保存,并刷新之前的数据,等待微信小程序来获取。
4.3 硬件制作
通过KILE5创建工程,对各个模块进行程序编写和调试,完成实物的制作。在使用串口调试Wi-Fi模块的过程中,首先向其发送AT命令,如果连接成功,则会回复OK。然后可以进行一些基础设置。而在使用微处理器对其初始化时,首先要设置STK,STK的作用是连接热点。连接热点后,就可以发送和接收数据了。
在本设计中,Wi-Fi模块在接收到数据后会进入中断模式,优先处理接收到的数据信息。图5展示了使用新大陆云平台服务器向Wi-Fi模块发送喂食21克粮食的指令。电子秤模块初始化时,GPIO口的两个数据端口分别设为一个输出和一个输入。将SCK端口设置为推挽输出50Hz模式,而B+数据口则设置为输入模式。在获取数据时,首先将SCK连接的PB8拉高,延时2毫秒后,可以在B+数据IO口获得相应的数据。温湿度模块的初始化相对复杂。该模块只有一根数据总线,需要同时用于发送收集模块数据的命令和接收数据。因此,对这根数据线的初始化需要反复调整。在未发送获取数据指令之前,默认设置为输出模式。在发送获取数据指令后,则须更改为输入模式。待40位数据获取完毕后,再将IO口设置回默认的输出模式。图6显示,在调试过程中,电子秤模块偶尔出现灵敏度变化,导致测量值忽大忽小。这一变化在整个调试过程中花费了最长的时间进行调整。最终,根据多次的调整,取其多次平均值作为最终换算数值。
5 结论
本设计共分为三层,分别为物理层、网络层和应用层。首先,在物理层上,采用以STM32F103为核心的最小系统,结合Wi-Fi技术、传感器技术和电机技术等制作而成,实现了室内温湿度的检测、存量桶内部重量的检测、语音播报功能以及Wi-Fi数据上传功能。在网络层上,以新大陆云平台提供的免费服务器作为平台,连接了物理层的硬件和应用层的微信小程序,主要进行双方的数据交换和简单处理工作。应用层的微信小程序是基于微信载体的一种无须下载的应用,主要功能是为了让用户随时随地控制家中的智能宠物投食器。系统通过仿真调试和实物制作基本上完成了设计要求。
由于知识储备不足,本设计仍存在一些缺陷:1) 实物制作较为粗糙,在某些细节处理上未能做到位,例如食物运送盘的螺旋桨应紧贴容器壁;2) 语音模块的异常触发,设计中应使用上升沿形式触发并发出语音。但在某些特殊情况下,当控制端接了一根杜邦线而另一端悬空时,语音模块也会被意外触发;3) 设计初期考虑加入摄像头模块以观看宠物,但由于知识体系的不足,最终只能选择舍弃该模块。本设计在细节上仍有很大的改进空间,未来在参加工作后,丰富知识储备后将回过头来完善本次设计,努力将其推向市场。通过此次设计深入了解物联网,使人们领略到物联网在生活中的强大之处,科技的进步引领人们过上更加舒适的生活。相信在不久的将来,所有人都能享受到物联网带来的便利,所有的小宠物都会拥有更精良的投食器。
参考文献:
[1] 王岳.野外自动化鸭舍的改进设计与研究[D].沈阳:沈阳农业大学,2016.
[2] 孔爱菊.适用于鸭稻共作技术的野外自动化鸭舍设计与应用研究[D].沈阳:沈阳农业大学,2016.
[3] 白亚梅.智能化的家养宠物喂食器设计[J].电子世界,2021(6):192-193.
[4] 杨传升,顾宗磊,刘凤玲,等.一种小型全自动喂食机[J].科技创新导报,2020,17(7):66,68.
【通联编辑:梁书】