APP下载

宠物喂养远程控制系统设计

2023-11-19焦嘉伟刘华常若葵

电子制作 2023年21期
关键词:温湿度串口宠物

焦嘉伟,刘华,常若葵

(天津农学院 工程技术学院,天津西青,300380)

0 引言

随着我国社会经济的快速发展,人们休闲消费和情感寄托方式呈多样化发展,因此许多家庭都会饲养宠物作为自己或孩子休闲的玩伴,宠物业也成了一种新兴的产业。生活和工作的快节奏让人们无法有充裕的时间照顾自己的宠物,甚至是无法按时喂养宠物,使得宠物出现食源性疾病[1]。特别是当人们出差在外或者是旅游度假时,经常不能及时地对家中的宠物给予很好的照顾,因此宠物的规律饮食成为困扰人们的主要问题。

2019 年杨琳、李媛等人[2]设计了一款自动、定时、定量喂养宠物的喂食器,但需要按键手动控制喂食时间。2021 年白亚梅[3]设计了一款控制电机运行时间来控制喂食量的宠物喂食器,但容易造成过量从而浪费。2022 年谢泽健[4]运用物联网技术和单片机技术设计了远程宠物智能喂养系统,但功能单一。本文将以实际需求为根本,人性化设计为理念化,设计一款宠物喂养远程控制系统,为需要外出的宠物饲养者解决后顾之忧。

1 系统方案设计

系统由传感器采集温湿度、重量、水位等信息,发送到STM32F103ZET6 单片机,单片机将数据打包成TLINK 平台设定的协议格式,通过ATK-ESP8266 发送到TLINK 平台。达到设定的时间后,TLINK 平台向单片机发送指令,控制舵机及水泵工作以达到出食及出水的效果。本系统结构框图如图1 所示。

图1 系统结构框图

2 硬件设计

■2.1 核心控制单元

本系统选用STM32F103ZET6 最小系统板作为核心控制单元。相较于Arduino、51 系列单片机,STM32 系列单片机性价比高、功能丰富。STM32F103ZET6 微处理器为LQFP 封装的通用型144 引脚的芯片,其工作温度区间为-40℃~85℃,主频72MHz。

■2.2 称重模块

称重模块选用的是全桥式电路搭配24 位高精度A/D 转换器芯片HX711 称重。传感器的上下表面各有两个电阻,当外界载荷作用到承压面时,电阻两端电压会发生变化,由于变化非常小[5],因此使用高精度A/D 转换芯片HX711 放大信号并将其转换为数字信号。与同类型其他模数转换芯片相比,HX711 芯片内部嵌入了包括稳压电源、片内时钟振荡器等器件,减少了系统对外部资源的需求,具有集成度高、响应速度快、抗干扰性能强等优点[6]。

■2.3 水量检测模块

水位检测模块使用液位传感器,其实物如图2所示。

图2 液位传感器实物图

该模块利用三极管电流放大原理,当液位足够高时,电源正极与三极管基极导通,三极管的基极和发射极之间会产生一定大小的电流,此时三极管的集电极和发射极之间会产生一定放大倍数的电流,该电流经发射极电阻产生电压供AD 转换器采集[7]。

■2.4 温湿度采集模块

温湿度采集模块使用的是DHT11 温湿度传感器模块,该模块优点有:

(1)同时测量相对温湿度;

(2)可靠性强、性能高、抗干扰、功耗低;

(3)独立性高,体积小;

(4)无需AD 转换,直接获取温湿度数据。该模块被广泛应用于气象、家电、医疗、室内环境检测等领域,图3为DHT11 模块实物图。

图3 DHT11 实物图

■2.5 语音模块

语音模块使用的是JQ9800-16P,该模块选用SOC 方案,内部集成了16 位的MCU 及具有音频解码功能的ADSP,保证了系统的音质及稳定性[8]。模块具有内部存储功能,使用数据线连接电脑即可将需要播放的音频传入模块。模块共7 个I/O 口,可支持触发播放19 段语音,使用时,只需为对应I/O 口输出低电平即可播放指定语音。

■2.6 执行机构

本系统的执行机构包括两部分,分别是舵机和继电器控制的水泵。舵机用于喂食,一般需要20ms 的时基脉冲控制,该脉冲的高电平部分一般为0.5ms~2.5ms 范围内的角度控制脉冲部分。当需要供水时,STM32 向继电器发送信号,控制继电器闭合进而控制水泵出水。

■2.7 ATK-ESP8266WIFI 模块

联网模块使用的是高性能UART-WiFi 模块ATKESP8266,该模块网络标准支持IEEE 802.11b/g/n,频率可达2.484GHz 工作模式有三种,分别是WiFi STA 模式、WiFi AP 模式、WiFi STA+WiFi AP 模式。ATK-ESP8266 实物如图4 所示。本设计使用了ATK-ESP8266 模块的RX、TX 引脚,用于ESP8266 芯片与STM32 芯片之间串口通信。

按一般大田进行田间调查和统计。在小麦成熟后,每小区随机选取10株进行考种,测量其株高、整齐度、穗长、穗粒数、分蘖数等指标。同时,将每个小区分开,单收、单脱、单计产。

图4 ATK-ESP8266 实物图

3 软件设计

■3.1 主程序设计

系统主程序流程图如图5 所示。

图5 主程序流程图

首先对STM32 的系统时钟进行初始化,确保其正常运行。其次对串口1 和串口2 初始化,并配置中断优先级,确保其正常接收数据。然后对定时器3 初始化,确保其可以正常发出PWM 波控制舵机旋转。再依次初始化HX711、DHT11、ADC1 和ESP8266,确保各部分功能正常使用。然后向ESP8266 发送AT 指令,使其连接WiFi 及TLINK 物联网平台。再控制舵机回到初始位置,获取毛皮重量。最后一步进入循环:称重—>液位检测—>温湿度检测—>发送数据—>延时。

■3.2 数据采集程序设计

(1)HX711 数据采集

HX711 完整的获取数据需经过以下几个步骤,首先使能PB 端口时钟,其次将SCK 和DOUT 对应的PB0 和PB1端口进行配置,设置为推挽输出。读取一次重量,将该重量设为毛皮重量,再次读取时,判断该重量是否大于毛皮重量,若是,则将该重量减毛皮重量即可得到实物重量,若不是,则继续读取数据。

(2)液位传感器数据采集

当液位高度到达一定值时,集电极和发射极产生的一定放大倍数的电流经过发射极电阻会产生电压,想得到液位传感器的数据只需要进行AD 采集即可。ADC 进行采集时,首先要使能端口,对其用到的端口进行配置,将其优先级分组设为1。其次要配置ADC,过程包括:使用软件开启连续转换模式,设置转换通道为1,分频因子为8,72MHz/8 即9MHz,并将转换结果右对齐,设置采样周期为55.5 个时钟周期,校准ADC。最后进行数据的采集及处理,完成后清楚标志位,中断返回。

(3)DHT11 数据采集

DHT11 传感器采用单总线数据格式,因此程序需严格按照时序要求设计。配置完端口后,主机需向DHT11 发送开始信号,DHT11 只有接收到主机发送的开始信号后才会触发温湿度采集。接收到信号后,拉高电平等待DHT11 响应。响应后,共需接收5 次数据,最后一次数据接收完毕后,DHT11 需拉低总线55μs,随后上拉电阻拉高总线进入空闲状态,等待下一次传输数据。接受完数据后,与检验位对比,检查数据准确性。

■3.3 执行机构程序设计

STM32接收到云平台发出的指令后控制执行机构工作。执行机构工作流程图如图6 所示。

图6 执行机构流程图

“111”指令是控制出食的指令,当单片机接收到该指令后,首先给语音模块引脚一个低电平,使其播放吸引宠物进食的语音,然后定时器输出PWM 波,控制舵机旋转出食。

“222”指令是控制出水的指令,单片机接收到指令后,给继电器引脚输出电平,继电器工作后控制水泵出水。

■3.4 WiFi 通信程序设计

STM32 与ATK-ESP8266 连接及发送数据都需要使用串口2,因此需要对串口2 进行配置。首先配置USART2 和GPIO 时钟,将PA2 设置为推挽输出,速率50MHz,用于发送,PA3 设置为浮空输入,用于接收。然后对串口2 进行设置,波特率设为115200,8 个数据为,1 个停止位,没有奇偶校验位,不使用硬件流控,只能发送和接收。向串口发送字符串使用sendString(USART_TypeDef *USARTx,char *str)函数,USARTx 中的x 为目标串口(1~3),str为字符串指针,例如sendString(USART2,"AT+RST ");的意思就是向串口2 发送AT+RST。

■3.5 TLINK 物联网平台设计

TLINK 是一个开放并且专注于物联网服务的物联网接入云平台,目的是服务所有的工业、农业、环境类传感器使用者,使传感器数据的接入、存储和展现变得简单[9]。ATK-ESP8266 配置完成连接云平台后,向云平台发送专属序列号,即可连接设备。

本系统仅需一个设备即可展示各项参数,因此将添加的设备命名为“Pet Feeding”,链接协议选择“TCP”,同时可以设置掉线延时,当TLINK 平台1000 秒内无数据接收,自动断开连接。

STM32 要向云平台上传的数据有食物剩余量、食物投喂量、剩余水量、温度、湿度。云平台可向单片机发送指令,分别是开始喂食和开始喂水。编辑好设备后需要配置TLINK 的连接协议,TLINK 的IP 为“tcp.tlink.io”或“112.74.142.132”,TCP 连接的端口号为8647。用户可以在TLINK 平台使用“协议标签”自由编辑应用协议,STM32 根据应用协议发送数据,TLINK 平台即可根据协议解析需要的数据。数据头标签和结束符标签用于数据包的开头和结尾,数据标签用于传输有效数据,每个数据标签后需紧跟一个分隔符标签。本系统使用的协议标签为[H:PF][S::][D?][S:;][D?][S:;][D?][S:;][D?][S:;][D?][S:;][D?][S:;][D?][S:;][T:#]。如收到的协议为PF:1864;120;50;1;0;52;25;#,代表此时系统对应的各项参数为:食物剩余1864g,食物投喂120g,剩余水量50%,开始喂食,停止喂水,湿度52%RH,温度25℃。

TLINK 平台为设备事件触发机制提供了触发器功能,当某个传感器数据触发设定阈值时,TLINK 云平台根据用户设置的报警方式自动发送报警信息给用户,平台共四种报警方式,分别是:短信、微信、邮箱、语音。在本系统中,需添加三个触发器,用于监测食物剩余量、剩余水量及温度,方便主人根据报警信息采取下一步措施。当剩余食物少于100g、水量低于20%、温度高于30℃时,触发报警,通过微信公众号发送报警信息。

除触发器功能外,TLINK 平台还提供定时任务功能,本系统可使用此功能实现定时喂食的功能。原理是当达到设定时间时,TLINK 会发送设定的指令给STM32 单片机,单片机接收到指令后,即可控制执行机构工作。

4 系统测试

系统整体测试方案:将模块整合到一起,整体验证系统功能,检验云平台中数据是否准确,云平台下发的指令执行机构是否正常工作。

当某项数据超出阈值时,平台会向用户发送报警信息。数据超出阈值时显示界面及报警信息如图7 所示。

图7 数据超出阈值时显示界面及报警信息

经过各个模块的分别测试及整体测试后,最终成功实现了在物联网平台查看数据、平台控制喂食、喂水的功能,系统长时间运行后,各项传感器数据正常。

5 结论

本文介绍了一种宠物喂养远程控制系统,以ATKESP8266WIFI 模块为桥梁,实现STM32 单片机与TLINK云平台的交互,可以通过手机或网页实时查看喂食装置中食物和水的剩余量、当前环境的温湿度,并控制执行机构喂食、出水。经过一系列地调试与优化,最终设计圆满完成,解决了用户离家时的宠物喂养问题,系统稳定可靠,具有良好的应用前景。

猜你喜欢

温湿度串口宠物
温湿度控制器在回收砂冷却系统中的应用
浅谈AB PLC串口跟RFID传感器的通讯应用
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
蒸发冷却温湿度独立控制空调系统的应用
抬起脚来
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
养宠物
基于并行控制的FPGA多串口拓展实现