基于手机遥控的智能鱼缸控制系统的设计
2024-07-23何锋兰慧
关键词:鱼缸水温控制;自动换水;自动喂食;Wi-Fi通信;手机遥控
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2024)18-0040-03
0 引言
随着人们生活水平的提高,对生活品质的追求也越来越高,许多人开始在家中饲养观赏鱼。不同类型的观赏鱼对生活环境的需求各异,例如淡水鱼与深海鱼需要不同的水温,食物也不相同。为了满足不同客户的需求,目前市场上的鱼缸通常增加了如水温控制、充氧控制、过滤控制等功能[1-2]。然而,由于产品繁多且功能未集成在同一个系统内,本文根据当前市场需求,设计了一种集水温控制、自动换水、自动喂食等功能于一体,并具备手机遥控功能的智能鱼缸控制系统。
1 整体设计
智能鱼缸的原理框图如图1 所示,主要包括:STM32F103C8T6 最小系统、水温检测、水位检测、OLED显示、自动喂食、自动加热、自动换水、Wi-Fi通信、手机App等模块。
1.1 主控电路
本文采用STM32F103C8T6最小系统板作为主控电路。该最小系统主要由STM32单片机、电源、时钟电路和复位电路组成。其特点是体积小、功耗低、性价比高、计算能力强,内部自带12位AD转换,数据处理速度快,精度高[3,7]。
1.2 温度采集电路设计
温度采集电路采用NTC热敏电阻作为水温传感元件。通过单片机ADC采集其变化的电压并转换成对应的ADC 值,最终根据公式计算出当前的水温。NTC热敏电阻在本系统中连接如图2所示,其中ADC 接口为STM32的PA3口,NTC的两个接口分别连接热敏电阻的两端。
1.3 水位采集电路设计
水位采集电路采用HC-SR04超声波测距模块,其Trig与单片机的PA5引脚相连,Echo与STM32单片机的PA4引脚相连。超声波通过其中一个发射管发射出去,当超声波接触到被测面后反射回来进入接收管。距离计算公式为:
S = C × T/2 (3)
其中S为计算的距离,C为声速(340m/s) ,T为时间差。
1.4 自动喂食转置的设计
自动喂食装置采用SG90舵机带动喂食盒旋转来实现。SG90舵机是一种位置伺服驱动器,通过接收IO口发出的PWM信号,使其产生偏置电压,从而触发电机通过减速齿轮带动电位器移动。当电压差为0 时,电机停止转动,从而达到伺服的效果[4]。SG90舵机实物如图3 所示。该舵机有三根引线,分别是GND、VCC、信号线。VCC须接5V电压,信号线接单片机PB5引脚。
对于自动喂食盒,考虑到节能环保和成本节约的因素,本文利用废弃的果脯盒来完成。该盒子为圆柱形,如图4所示。在盒子靠近底部的侧面开一个直径约为5 mm的小圆孔,再将盒子底部与舵机通过热熔胶相接。舵机转动前,小圆孔朝上。当舵机转动时,带动喂食盒转动,当喂食盒转动到下方时,饲料从小孔中落入鱼缸中。舵机每转动一圈回到原来的位置,完成一次喂食操作。根据鱼的数量,可以设置转动的圈数。
1.5 自动换水电路设计
该电路使用继电器控制水泵的开关进行自动换水。当鱼缸的水位低于设定的下限值时,控制抽水继电器接通,抽水水泵开始抽水进鱼缸。抽水信号通过单片机PB5输出,经三极管放大电流后接到控制抽水的继电器。排水信号通过单片机PA9输出。
1.6 Wi-Fi 通信电路
该电路采用ESP8266-01S实现STM32单片机与阿里云的通信,其外观尺寸如图5所示。
MQTT协议是一种基于发布和订阅模式的轻量级通信协议。其优点在于以少量代码和有限的带宽也能提供实时消息的传输,且花销低、带宽占用低[5]。
ESP8266-01S Wi-Fi 模块支持多种协议。本文中,下位机STM32 通过串口发指令到ESP8266中,ESP8266 收到指令后执行对应的工作模式,再通过MQTT协议与阿里云服务器通信。手机App通过调用相应的API函数与阿里云通信。
2 软件设计
2.1 系统工作流程图
首先对各种参数进行初始化,然后单片机开始接收传感器传来的采集数据并进行相应的处理。处理后的数据再送到OLED显示屏上显示,同时通过串口将数据和指令发送至Wi-Fi 模块ESP8266-01S上。FWii名-F称i模、W块i-进F入i密到码对、域应名的、工用作户模名式、用,输户入密对码应、连的接W服i-务器,最终客户订阅好消息,实现ESP8266与手机App相连。手机端也可以发送指令控制鱼缸加热、喂食、换水等。系统工作流程如图6所示。
2.2 水温采集与加热流程图
首先检测水温,若温度低于设定的低温阈值则启动加热棒进行加热,若高于高温阈值则关闭加热[7]。流程图如图7所示。
2.3 水位测量与自动换水流程图
水位测量后与设置好的换水阈值进行比较,若低于换水阈值则启动继电器进行自动换水。当抽水到鱼缸的1/4左右时停止抽水,开启注水,当注入的水达到鱼缸的3/4时停止注水,至此完成自动换水功能。水位测量与自动换水流程如图8所示。
2.4 手机App的设计
本文使用阿里云平台作为接入的服务器。首先在阿里云中物联网平台创建一个新项目,再创建一个智能鱼缸的产品。创建好产品后对其进行功能的自定义,对于水温与水位监测设置为只读,即只能从下位机读取数据,而定时喂食则在上位机设置好时间之后交由下位机进行执行。当达到定时时间,舵机根据设置好的转动角度进行转动,水温的低温阈值与高温阈值也可以由上位机设置,再将设置好的值返回下位机执行。
在选择好产品后创建手机App,本文采用阿里云公版App云智能进行创建。功能定义结束后进行人机交互设置,创建App时对其产品的品牌、名称、型号进行设置。对于App的账号绑定则设置为授权式,之后对手机App面板进行设计。设计后的面板如图9所示。
App设计完成后进入设备调试阶段,每个产品都会生成一个专属的本设备三元一组信息,通过该三元一组信息可以组成一系列指令,再从下位机通过串口将这些指令发送至ESP8266模块,ESP8266收到指令后通过MQTT与上位机进行通信,通信成功后,可在设备调试部分看到对应设备在线。
下一步进行产品发布,确认设置好的信息,点击产品发布,自动生成一个二维码,使用云智能App扫描该二维码,手机App出现之前设计的产品的图标,点击该图标后出现一个与之前设置的手机面板相同的界面。
3测试结果
通过测试验证,本系统实现了温度监测、水位测量、自动换水、自动喂食、手机遥控等功能。智能鱼缸控制系统实物图如图10所示。
4结论
综上所述,本文设计了一种基于手机遥控的智能鱼缸控制系统。该系统的下位机部分能够测量温度以及水位并显示在OLED上,同时根据测得的温度或水位与设置的阈值进行比较,若低于阈值则启动加热棒加热或进行自动换水;可以通过设定喂食时间来实现自动喂食,也可以通过手机App点击立即喂食按钮来远程控制喂食。
本设计具有以下两点创新:
1) 与传统鱼缸相比,实现了自动喂食功能,可防止因主人忘记喂食,或长时间出差未喂鱼而导致鱼的饿死现象发生。
2) 手机App 操作简单,可随时查看鱼缸参数信息,并进行远程控制。