一种基于STM32单片机的智能鱼缸控制系统设计
2020-05-18吕杰梁鉴明
吕杰 梁鉴明
摘 要:文章对鱼缸控制系统进行了研究,设计了一套智能鱼缸控制系统,系统将分散的独立模块整合,以STM32单片机作为主控芯片,采用温度传感器DS18B20测量水温,通过触摸屏的图形用户界面(GUI)与鱼缸进行人机交互,实现鱼缸水温检测、加热、换水、供氧、定时喂食等自动控制功能。同时还在手机开发了微信控制小程序,实现对鱼缸的无线远程控制。
关键词:智能鱼缸;STM32单片机;图形交互界面;无线远程控制
中图分类号:TP273 文献标识码:A 文章编号:2096-4706(2020)20-0013-05
Design of an Intelligent Fish Tank Control System Based on STM32 MCU
LYU Jie,LIANG Jianming
(Ningxia Institute of Science and Technology,Shizuishan 753000,China)
Abstract:The fish tank control system is studied and an intelligent fish tank control system is designed in this paper. The system integrates separate independent modules,uses STM32 MCU as the main control chip,and temperature sensor DS18B20 is used to measure water temperature,and carries out human-computer interaction with fish tank through the graphical user interface(GUI)of touch screen,so as to realize fish tank water temperature detection,heating,water change,oxygen supply and timing feeding food and other automatic control functions. At the same time,a WeChat control applet was developed on the mobile phone to realize wireless remote control of the fish tank.
Keywords:intelligent fish tank;STM32 MCU;GUI;wireless remote control
0 引 言
目前观赏鱼养殖业市场巨大,为保证鱼缸中的观赏鱼和水草植物的生活环境能尽可能地模仿自然生活的方式,需对鱼缸定期换水、补氧、保持鱼缸水温的恒定和定期喂食。本文在对国内市场上常见的鱼缸控制系统调研后发现,目前市场上的传统观赏鱼缸的水温检测、水温控制、水循环、加氧、喂食大都需要人手工单独控制操作,自动化程度不高,给观赏鱼的养殖带来了诸多不便[1,2]。已有的鱼缸控制系统大多采用8位单片机作为主控芯片,对水温、换水、加氧、喂食的控制模块通常分别是相互独立的器件,成本较高,且不便于集中统一进行管理控制,缺乏良好的人机交互。
为了能给因工作繁忙无暇照料观赏鱼或者经验不足的观赏鱼养殖者提供一种成本低、操作简单、节能高效的鱼缸控制系统,并且在为观赏鱼提供良好生存环境的同时,也为观赏鱼养殖者提供更加舒适便利的人机交互体验,本文基于嵌入式控制技术与无线通信技术,设计了一套智能鱼缸控制系统。系统以高性能的STM32单片机作为主控芯片,将对鱼缸的水温控制、水循环、供氧、喂食等分散独立功能控制模块整合在一起,通过在触摸屏上开发的图形用户界面(GUI)实现对鱼缸的自动控制。此外,在手机端还可以利用手机微信小程序对鱼缸进行无线远程控制,使鱼缸的控制能够打破时间、地域上的限制。
1 总体设计
智能鱼缸控制系统由上位机和下位机两部分组成。下位机系统结构框图如图1所示。
下位机由STM32单片机、温度传感器、触摸屏、四路继电器模块及四路继电器模块分别连接的投食器、加热器、氧气泵和水泵组成,四路继电器的开关动作分别控制投食器、加热器、氧气泵和水泵的启停。通过温度传感器实时检测鱼缸水温并发送水温数据至STM32单片机,STM32单片机接收并处理温度传感器发送的数据,与设定值对比分析,当水温低于预设值时自动开启加热器。加热器、氧气泵和水泵组成热水流循环系统,当加热器开始工作的时候,氧气泵和水泵也同时工作,实现对鱼缸的温度、氧气、水体循环的自动控制。通过触摸屏可设置更改自动投食时间,实现定时自动投食功能。
上位机系统结构框图如图2所示。上位机由Wi-Fi四路继电器模块和用户手机相连接,用户通过手机微信小程序控制Wi-Fi四路继电器模块实现对鱼缸的投食器、加热器、氧气泵和水泵的远程控制,Wi-Fi四路继电器模块与下位机的四路继电器模块形成互锁。
2 系统硬件设计
下位机主控芯片采用具有1 MB Flash程序存储器和256 kB静态随机存取存储器的SRAM的STM32F429IGT6单片机,下位机STM32单片机最小系统由STM32单片机、时钟电路、BOOT设置电路和复位电路组成。其中,时钟电路用于产生单片机工作时所必需的控制信号,单片机内部的电路在时钟信号的驱动下,严格地按时序执行指令进行工作,单片机的各外围部件的运行都以时钟控制信号为基准,有条不紊、一拍一拍地工作[3]。STM32F429IGT6單片机将时钟电路提供的脉冲信号倍频,最高可倍频至180 MHz[4]STM32F429IGT6单片机的BOOT引脚在单片机复位时的电平状态决定了单片机复位后从哪个区域开始执行程序,通过设置BOOT0引脚的状态,来选择在复位后的启动模式。STM32F429IGT6单片机时钟电路与BOOT设置电路如图3所示,复位电路如图4所示。
复位操作是对单片机片内的各寄存器的初始化操作,STM32单片机为低电平复位,复位电路如图4所示,其中R2作为上拉电阻,SW1为复位按键,需要复位时按下SW1,RESET引脚输出低电平,此时系统复位。当复位按键没有动作时由于RESET引脚接在上拉电阻上,默认状态为高电平,单片机系统进入正常工作状态。
水温检测采用防水型温度传感器DS18B20。DS18B20是一款数字温度传感器,与传统的热敏电阻不同,它不需要模数转换就能读取温度,可直接将被测温度转换为串行数字信号。其电压范围为3.O V到5.5 V,测温范围为-55 ℃~125 ℃,最高分辨可达0.062 5 ℃。DS18B20采用三线制与单片机相连,减少了外部的硬件电路,具有低成本、易使用和精度高等特点,而且可以采用编程的方式实现9位到12位的转换,具有线路简单、体积小等优点[5]。鱼缸水温检测接口电路图如图5所示,DS18B20的数据口通信总线接一个10 kΩ上拉电阻用来保持数据通信的稳定。
显示器采用5寸电容式触摸屏,触摸屏显示器的接口电路如图6所示。
四路继电器模块驱动电路如图7所示。
四路继电器模块作用说明:INPUT1连接投食器,INPUT2连接加热器,INPUT3连接氧气泵,INPUT4连接水泵。其中加热器、氧气泵和水泵构成热水流循环系统。采用底滤、背滤、侧滤等方式的鱼缸,将加热器和水泵放在一个盒子里面,能够在持续供给热水的同时,不会出现鱼种被加热器烫伤的情况。和传统的将器件直接放在鱼缸里面的方法相比,可以为养殖的观赏鱼提供更加安全舒适的环境,提高鱼缸的观赏性,减小触电事故的发生率,合并后的模块也可有效地减少空间的占用。单片机与四路继电器模块实物连接如图8所示。
系统电源采用12 V直流电源,通过电压调整芯片将12 V直流电源调整到5 V,最后经过1086电压调节芯片调整后变为3.3 V,提供单片机正常的工作电压。由MT9700功率开关芯片组成3.3 V电路的过电流保护电路,可以有效防止电流过流造成单片机烧坏的情况发生。
上位机中的Wi-Fi四路继电器模块采用独立的电源直接供电,由用户的手机直接控制,与STM32单片机控制的四路继电器模块采用双模块互锁的方式,能够预防当其中一个模块故障的时候,鱼缸不能够正常工作的困境。
3 系统软件设计
下位机主程序流程图如图9所示。
下位机软件开发采用μC/OS-Ⅲ操作系统,μC/OS-Ⅲ是一种可以基于ROM运行的、可裁剪的、抢占式、实时多任务操作系统,与其他类型的实时操作系统相比,μC/OS-Ⅲ实时性更高,程序的主体可以分为一个个独立的、无限循环且不能返回的系统的任务线程,每个任务线程具有相互独立、互不干扰的特性,且具备自身的优先级,提高了系统的任务调度,特别适合于微处理器和控制器,是目前应用最广泛的实时操作系统(RTOS)[6]。
系统上电后启动执行板层驱动初始化程序,初始LTDC串口驱动以及温度传感器,然后等待数据到来,当接收到采集的温度数值后,将温度发送到数据层进行数据存值,再将数据发送到逻辑处理层进行数据的中转和更新,最后将板级数据处理系统的数据发送到显示层显示数据并实现用户交互。在显示层处理比对用户设定的参数,判别触发事件,并发送触发指令给逻辑处理层。逻辑处理层处理事件转换为二进制值发送给数据层,数据层接收二进制数值判别触发通用型输入引脚的控制,数据侦听函数文件发送引脚控制命令给板级数据处理系统控制通用型输入引脚通断。
温度采集程序流程如图10所示。
由于本设计中温度传感器DS18B20的DQ总线上只有一个DS18B20传感器,故直接DS18B20复位并跳过ROM匹配,接着只需要给DS18B20发送温度检测指令,待测量完成后即可读出DS18B20采集的温度信息值,再根据系数即可转换为实际温度值。
触摸屏图形用户界面设计采用TouchGFX Designer软件,TouchGFX Designer是ST系列芯片的专属GUI设计平台,通过MVP架构连接液晶显示屏和BSP,实现本地数据可视化。TouchGFX Designer软件开发界面如图11所示。
手机端微信小程序开发采用腾讯提供的微信开发者工具,微信小程序控制流程如图12所示。
当用户进入程序后会进行Wi-Fi密码配对,配对成功后会进入添加设备的流程。用户成功添加设备后可以进行设备的重命名操作、配置对应继电器的延时开启时间、设定继电器点动模式和解绑设备操作。程序会判定是否按下开关,当确认按下开关后手机会发送数据到设备上,使对应的继电器的引脚输出高电平。用户进行解绑操作后程序会判别是否已经退出程序,如果没有退出程序,则返回到用户添加设备的流程,重新添加设备,退出程序则程序结束。手机微信小程序控制界面如图13所示。
4 结 论
本文所设计的智能鱼缸控制系统,由上位机和下位机两部分组成,下位机采用STM32单片机作为主控芯片实现对鱼缸的自动控制,上位机通过手机端微信小程序实现对鱼缸的无线远程控制。系统操作简单、性能稳定,触摸屏的图形交互界面(GUI)设计使得人机交互更加直观,切合嵌入式智能家居系统的需求,可降低用户的养殖观赏鱼门槛,为观赏鱼的养殖带来便利。
参考文献:
[1] 葛华.多功能观赏鱼缸智能控制系统的设计 [D].江苏:东南大学,2007.
[2] 杨冬英.基于单片机的智能鱼缸设计 [J].山西电子技术,2017(6):34-37.
[3] 张毅刚,赵光权,刘旺.单片机原理及应用:第3版 [M].北京:高等教育出版社,2016.
[4] ITeye.STM32F4xx HAL驱动说明书 [EB/OL].(2016-03-04).https://www.iteye.com/resource/charmingsun-94526 59.
[5] 周克輝.基于单片机控制的DS18B20数字温度计设计 [J].湖南农机,2010,37(11):61-62.
[6] 刘火良,杨森.μC/OS-Ⅲ内核实现与应用开发实战指南:基于STM32 [M].北京:机械工业出版社,2019.
作者简介:吕杰(1974—),男,汉族,宁夏平罗人,助教,工学硕士,研究方向:嵌入式系统、计算机控制技术。