APP下载

基于互联网+及云存储的宠物自动喂食嵌入式系统

2021-06-17胡名睿郝晓健王昊辰李佳静周雨笛张小辉

电子制作 2021年11期
关键词:串口宠物单片机

胡名睿,郝晓健,王昊辰,李佳静,周雨笛,张小辉

(合肥工业大学计算机与信息学院,安徽合肥,230601)

0 引言

随着社会经济的不断发展,越来越多的人选择购买并喂养宠物,宠物已经变成他们的生活寄托[1]。然而我们意识到,现在有许许多多独居,并且养宠物的年轻人,由于繁忙的工作、学习,他们可能没有足够的时间于精力随时照看宠物[2],那么宠物身体不适乃至生病等状况就有可能发生。因此我们认为,在需要宠物独处的这段时间中,如何饲养宠物已经成为了这些用户的一大难题。为此,我们需要设计出一款能够解决用户困难的产品。

经过前期的市场调研,我们发现:随着饲养宠物的人数越来越多,宠物相关行业得到了快速发展,专门为宠物设计的用品呈现多元化,但智能宠物用品的研发情况相对较少。经过我们团队的讨论,我们决定自行设计一款智能宠物自动喂食器,帮助用户仔细照顾宠物,方便用户的个人生活。

1 系统分析

■1.1 系统简介

根据我们团队讨论的结果,我们准备制作的产品如下:利用STM32单片机作为嵌入式开发平台。STM32单片机是以ARMCortex为基础架构的STMicroelectronics嵌入式32位微处理器, 具有成本低、性能高、功能多,能耗少等优点[3],还包含定时器程序存储器等硬件,不需要外接其他存储器芯片和定时器件,方便构成一个最小系统[4];通过连接HX711压力传感器模块、OLED显示模块、SYN6288语音播报模块、DS1302实时时钟模块、HC-SR501红外检测模块、EC20物联网模块等电子元件,实现称量宠物饲料、显示操作界面、语音提示当前操作、显示时间、检测宠物活动以及向用户手机发送短信,提示当前宠物进食数据等功能。在短信的提示下,用户可以对宠物的身体状况做出大致的判断。我们相信,在这些具有强大功能的模块的组合下,我们的产品一定能够代替用户照顾好每一只宠物,能够很好的解决无人在家时的宠物喂养功能, 成为主人和宠物之间良好的“中间体”[5]。

■1.2 原理分析

根据我们团队讨论的结果,我们制作了一张整体工作流程图,如图1所示。

图1 宠物喂食器的整体工作流程图

首先OLED显示模块会显示当前的实时时间。我们采用红外传感器模块探测宠物是否处在喂食器的前方。如果宠物在喂食器的前方停留时间超过5秒,那么我们认为宠物处于饥饿状态,需要进食,此时喂食器内置的存放饲料的储物箱会打开。当饲料投放到喂食器的底部托盘中时,托盘下方的压力传感器模块就会测量饲料的质量,并且显示在OLED显示屏上。当宠物进食完成后,压力传感器模块会再次测量剩余食物的质量,两次测得的值只差就是宠物进食的质量。接下来,EC20物联网4G模块上传至阿里云或OneNet等云端进行处理。当用户登录云端账户时,就能通过这些信息了解所有的进食信息,再根据相关论文支撑能对宠物身体状况做出大致的推测判断。

另外,我们的产品还会提供人工设置功能。产品上自带4个按键,便于用户修改时间、修改食物投放质量等参数;同时,由于显示界面中存在多级菜单,因此按键也有着前往下一级或返回上一级的功能。产品同时自带LED小灯,用于显示供电是否正确、硬件是否存在故障。

图2 宠物喂食器的模块构成详解图

2 系统设计

■2.1 总体设计

根据我们团队讨论的结果,我们利用XMind软件制作了一张所需模块的构思图,如图2所示。

我们给出整体实物图如图3所示。

图3 宠物喂食器整体实物图

■2.2 系统组成模块说明及测试

下面将依次介绍该系统的主要模块组成及测试。

2.2.1 OLED显示模块

OLED显示模块(2.42寸)的核心芯片为SSD1309,该模块具有低功耗、超高对比度等特点,利用IIC协议与单片机进行通信。这里我们采用软件IIC的形式实现通信。

接下来我们对这一模块进行测试。当程序下载入单片机时,OLED会显示当前时间。当我们按下按键后,可以进入初始目录,通过按键的控制,我们可以控制指示箭头指向不同的操作指令,如图4所示。

2.2.2 HC-SR501红外检测模块

HC-SR501红外检测模块的数据引脚可输出高、低两种电平。当模块检测到有物体在模块前活动时输出高电平,若检测不到输出低电平。

接下来我们对这一模块进行测试。我们规定,当模块检测到运动的物体时,绿色的LED灯亮,反之红色LED灯亮。由于初始测试时输出的电平不稳定,LED灯不断变换颜色,因此依照按键的消抖原理,我们在输出电平前添加了延时语句。通过我们的测试,当我们在模块前方活动时,绿色的LED灯能够正常显示;而当我们远离模块时,红色的LED灯能够正常显示,此时模块输出的电平稳定,如图5所示。

2.2.3 SYN6288语音播报模块

SYN6288语音播报模块采用UART通信方式,操作简单,只需要向串口发送固定文本,该模块就能通过外接扬声器播放文本。

图4 OLED模块显示主界面

图5 SYN6288模块检测到人物活动

接下来我们对这一模块进行测试。我们在主函数中设置固定语音文本“温馨提示正在补充食物”,给单片机上电后我们发现模块能够正常阅读文本;另外我们使用串口调试助手软件,可以发现模块的串口能够正常的接收数据,如图6-7所示。

图6 SYN6288模块可播放声音

2.2.4 HX711压力传感器模块

HX711压力传感器模块采用SPI通信的变式方式。根据芯片手册提供的资料,时钟引脚会输出25个到27个不等的时钟脉冲,其中前24位时钟信号用于发送数据,第25位到27位用于选择下一次的A/D转换通道与增益。

图7 串口接收数据为固定文本

接下来我们对这一模块进行测试。我们打开电脑中的串口调试助手,规定波特率115200,8位数据位,1位停止位,打开串口后,我们可以发现在接收窗口中出现了模块上方重物的质量,如图8-9所示。

图8 HX711连接STM32

图9 串口调试助手接收到重物的质量

2.2.5 DS1302实时时钟模块

DS1302实时时钟模块采用SPI通信方式,内置8个寄存器,用于存放年、月、日等时间的BCD码。这里我们采用软件IIC的形式实现通信。

接下来我们对这一模块进行测试。我们首先对DS1302初始化,向其中写入0时0分,我们利用SPI的底层读字节函数,将8个寄存器的值读出,并显示在OLED显示模块上,我们可以发现显示模块能够正常显示,如图10所示。

2.2.6 EC20物联网模块

EC20物联网4G模块采用USB协议进行通信,同时内置了MQTT协议。MQTT传输协议具有简洁、小巧、可扩展性强、省流量、低功耗等特点,可确保MQTT客户端的持久耐用[6]。实现了将其他传感器模块上检测到的数据传送到OneNet云端的功能,通过压力传感器、温湿度传感器等模块采集到温度、湿度以及宠物吃掉的食物的重量,将这些数据传送到OneNet云端做进一步处理。

图10 DS1302模块显示当前时间

接下来我们对该模块进行测试。在单片机上电后会发送注册信息到OneNet,请求注册设备,注册成功会返回设备ID。然后读取温湿度,转换为MQTT数据进行发送,将采集到的温度和湿度的数据通过EC20模块传送到OneNet云端,在相应的OneNet控制端接收到来自单片机传送过来的温湿度的数据,如图11-12所示。

图11 EC20模块连接STM32

图12 EC20模块向OneNet平台传输数据

3 创新点及应用前景

我们研制的产品主要的创新点在于:使用到了EC20模块。我们用到了MQTT协议,将EC20模块与我们的开发板进行相连,使用netassist软件进行数据的传输。将宠物的进食信息上传至云端,并对宠物的健康状态进行初步判断,通过信息处理使得宠物信息数据可视化,便于用户及时发现宠物的身体异常。

在引言中我们也提到,目前养宠物的人越来越多,与宠物相关的市场逐渐扩大,同时,受到越来越大的生活压力以及以996为代表的加班文化的影响,人们越来越倾向于选择机器代替人工,宠物喂食器也会被更多用户选择。同时,我们对宠物喂食器的前景进行了预测。我们认为,将来的宠物家电必将涉足于目前一片空白的宠物健康监测领域。这不仅因为各种健康监测技术的逐步完善,更有我国特殊国情——高额的宠物医疗收费的影响。虽然受制于技术因素,当前宠物健康监测设备还难以推广,但我们的喂食器通过另外一种方式达到了类似效果:喂食器将通过大数据比对,及时监测出宠物异常进食,并对宠物的健康状况做出初步判断,若使得宠物在患病初期便能及时发现异常,做到早发现早治疗,在保护宠物健康的同时减少用户在医疗方面的开支。除此之外,宠物喂食器配套的APP还会添加社区功能,所有用户都能发表心得、宠物常见疾病和相关急救措施,这样能够构建和睦的软硬件生态。综上,我们认为我们的宠物喂食器有着非常良好的应用前景。

4 结束语

本论文详细介绍了以STM32为开发平台的宠物自动喂食器,通过HX711压力传感器、OLED显示模块、SYN6288语音播报模块、DS1302实时时钟模块、HCSR501红外检测模块、EC20物联网模块等电子元件,实现称量宠物饲料、显示操作界面、语音提示当前操作、显示时间、检测宠物活动以及向用户手机发送短信,提示当前宠物进食数据等功能。经过我们的验证,本产品能够初步实现宠物自动喂食功能,方便用户的生活。

猜你喜欢

串口宠物单片机
基于单片机的智能平衡小车设计
MCS—51单片机中的多串口通讯技术的应用
抬起脚来
养宠物
C8051F020与80C51单片机的异同点
全国计算机等级考试机房准备工作探讨
微机串口的测试诊断
基于VC串口通信的实现
单片机I/O口模拟串行通讯的C51实现方法
用PIC单片机制作的时间继电器