APP下载

基于物联网的智能水族箱系统设计

2021-04-19黎颖聪陈耀林钟佳才梁毅俊朱又敏

海峡科技与产业 2021年11期
关键词:投食水族箱联网

黎颖聪 陈耀林 钟佳才 梁毅俊 朱又敏

广东海洋大学电子与信息工程学院,广东 湛江 524088

随着我国经济的快速发展和人民生活水平的不断提高,人们对室内环境要求越来越高,越来越重视环境的舒适性,更多人选择绿色、智能化的居家设计,由此应运而生的休闲娱乐、居家装饰行业日显蓬勃发展之势。一个“生机盎然、苍翠欲滴”的智能化水族箱不仅可以带给人们无比舒适的居家享受,更能调节室内环境,让自然美景驻留身边。由于现代生活节奏逐步加快,加之人们缺乏水族箱养护技能,而传统水族箱功能局限,因此水族箱往往“好景不长”,最后的结局多是“草枯鱼亡”[1]。近年来,市场上陆续出现了多种控制水族箱水温、排水、充氧和照明等改善水质的设备,如过滤器、加热器、加氧泵等,但是设备品种繁多,而且大多是非智能化的,操作维护不方便,综合性能参差不齐。本系统采用STM32 单片机,搭载温度、光照、人体感应等传感器,辅以水循环系统、投食系统和语音控制系统,设计一款基于物联网的智能水族箱,系统可以发送数据到阿里云平台,并结合自主设计的微信小程序通过MQTT 协议与STM32 单片机进行通信,实现远程监测并控制水族箱各项功能正常运作。

1 硬件设计

智能水族箱系统由软硬件相结合开发而成,硬件系统由STM32 单片机、智能投食系统、人体感应系统、语音控制系统、智能水循环系统、智能照明系统、温度控制系统和Wi-Fi 模块组成。各单元系统通过Wi-Fi 模块无线接入物联网平台。STM32 单片机拥有ARM 和Cortex-M 为基础的微控制器内核,具有稳定的工作状态和较低的功耗,能够快速实现大量数据的运算,非常适合智能控制系统的开发,因此选用STM32 系列单片机作为中央控制系统,系统总体结构如图1 所示。

图1 系统总体结构

1.1 智能投食系统

系统通过微信小程序实现对水族箱进行定时定量投食。定时范围可设定在1 至48 小时之间,每当系统到达设定时间,水族箱内的舵机可让旋转桨叶旋转一圈,当桨叶旋转至小孔位置时,饲料便会自动投放至水族箱内,实现自动投食功能。用户亦可通过需求设定单次投食量,共有4 个投食量等级,第一种模式默认桨叶旋转一圈,每加一等级桨叶旋转多一圈,从而实现智能饵料投食量的控制。

1.2 人体感应系统

人体感应系统控制补光灯自动开关,为观赏提供舒适的照明环境。系统利用HC-SR50 人体红外感应模块有效监测人体是否靠近水族箱,当人体进入感应范围内,系统输出高电平,人体离开感应范围,则自动延时同时关闭高电平,输出低电平。红外感应模块输出高电平将自动打开补光灯,否则补光灯自动关闭。

1.3 语音控制系统

语音控制系统实现对水族箱的智能声控操作。系统采用LD3320 语音识别模块与STM32 单片机进行通信。设置一级语音口令为“水族箱”,设置多个二级口令,如“开灯”“关灯”“恒温处理”“补水”“投食”等语音指令。用户声控操作时,首先呼叫一级口令,让水族箱系统进行语音辨认,系统通过ASR 辨认之后,随后转入二级口令,用户再根据需求对水族箱进行下一步操作,完成灯光、温度、补水和投食等控制功能。

1.4 智能水循环系统

智能水循环系统实现水族箱自动补水和水循环操作。系统通过采集箱体内部水位高度和水体浑浊度数据,实现补水和水循环,保障水生生物健康生长。Water Sensor 水位传感器通过一系列暴露的平行导线线迹测量水位高低。TDS 传感器用于检测水体水质,测量时采用交流信号激励源,可有效防止探头极化,提高水质检测精度。系统通过两种传感器感知水位和水质,检测数据传送至阿里云平台和微信小程序,用户可根据需求自主设置水位或者启动水循环装置,当水质不适宜水生生物生长时,水泵会自动开始工作直至水位和水质达到用户所设定的要求。

1.5 智能照明系统

系统照明单元实现水族箱自动光照调节功能。水族箱内的光照条件是影响观赏体验的重要因素,同时也会间接影响水生生物的生存状态。经过测试表明,当光照强度阈值设定为110 勒克斯(lx)时,最适应水生生物的生长,当水族箱周围光照强度低于110 勒克斯(lx)时,系统将打开补光灯。BH1750 光照传感器是一种用于两线式串行总线接口的数字型光强度传感器模块,具有较高的分辨率,受红外线影响较小,可探测较大范围的光照强度变化,因此本系统采用BH1750 光照传感器来调节光强变化[2]。用户可通过阿里云物联网平台和微信小程序实时监测和控制水族箱的光照条件。

1.6 温度控制系统

温度控制系统实现箱体水体温度的自动控制。系统通过DS18B20 温度传感器实时监测水族箱的水温,DS18B20 具有防水功能且检测精度较高,检测数据发送到阿里云平台和微信小程序,用户可以结合实际情况利用水族箱内部加热器和恒温器对水族箱进行升降温处理[3]。用户还可以通过微信小程序对恒温器进行恒温设置,当DS18B20 温度传感器检测到的数据与所设置的温度值存在差异时,恒温器会自动调节温度。

1.7 Wi-Fi 模块

Wi-Fi模块提供微信小程序和物联网平台接入功能。ESP8266Wi-Fi 模块使用串口与STM32 单片机通信,内置TCP/IP 协议栈,能够实现串口与Wi-Fi 之间转换且支持STA 和AP 模式,模块兼容3.3 V 和5 V 单片机系统,符合本系统的STM32F103 单片机。Wi-Fi 模块作为STM32 和服务器之间的数据交换枢纽,建立STM32 和服务器之间的连接,实现各传感器数据的接收与上传[4]。

2 软件设计

系统软件设计包括单片机程序设计、物联网平台配置、微信小程序设计及配网。开发平台为阿里云物联网平台,该平台可为设备提供安全可靠的连接通信能力,且能连接海量设备,并支撑设备数据采集上传云端。系统通过TCP 和MQTT 协议连接阿里云物联网平台,收发数据与单片机通信,软件系统由微信小程序开发,用户可以通过小程序远程监测各传感器信息并对硬件实行控制。该系统具备智能化、高性价比的特点[5]。

2.1 单片机程序编写

编写调试单片机程序确保整个系统协调运作。将用C 语言编写的程序烧录进STM32 单片机之中,ESP8266 作为从机接入STM32,便于节省资源,Wi-Fi串口的波特率调整为115200B,保证通信成功。为了保证各模块之间能独立工作和相互联系,STM32 移植了RTOS 实时操作系统,实现多任务功能。在信息采集方面,各模块采集到的信息通过高低电平信号传送给单片机处理,单片机通过C 语言程序设置,对信号进行处理,再将采集到的信息通过串口发送给ESP8266Wi-Fi 模块,ESP8266Wi-Fi 模块再将信息发送给网关。

2.2 配置阿里云物联网平台

系统采用阿里云物联网平台作为服务器与ESP8266Wi-Fi 模块进行通信。该物联网平台简单易用,手机APP 端可以免开发,适应本系统的功能需求。MQTT 作为目前应用较广的物联网应用层协议,可进行设备与云端服务之间的通信。MQTT 可传输任意类型的数据,实现简单且可提供数据传输的QoS,使用TCP长连接的应用层协议,通过订阅/发布模式,将消息的发送方和接收方进行解耦,通过MQTT 协议实现云平台与ESP8266 之间的通信[6]。阿里云物联网平台通过ProductKey、DeviceName 和DeviceSecret 设备三元组来进行认证,再通过通信Topic 进行消息的上报与下发。Wi-Fi 模块接入阿里云物联网的基本框架如图2 所示。

图2 Wi-Fi 模块接入阿里云物联网的基本框架

2.3 设计微信小程序

设计系统微信小程序是为了方便用户利用终端操控设备。微信小程序利用基本前端代码来实现,其基本架构为WXML+WXSS+JS+JSON。系统要在JS 上面进行MQTT 协议通信,离不开WebSocket 通信协议,WebSocket 连接阿里云物联网平台MQTT 服务器,需要遵守如下准则:其一,连接的端口是443 且为https 协议,其二,在WebSocket 之上再实现MQTT 协议数据的发送和接收。WebSocket 是一种网络通信协议,虽然已经有了HTTP 协议,但其有一个缺陷,通信只能由客户端发起,轮询效率低,需要不停地连接,非常浪费资源,而WebSocket 可以进行双向数据传输,在进行频繁双向通信时,可以避免打开多个HTTP 连接,因此提高了工作效率,节省了系统资源。本系统在双向通信上比较频繁,故采用WebSocket 通信协议。WebSocket 可以使用WS 和WSS 两种方法连接,WS 是普通连接,而WSS 增加了TLS 加密。连接的主要区别在于MQTT 连接URL 的协议和端口号,在程序编写过程中,注意设置SecureMode 参数,WS 连接时设置为3,WSS 连接时设置为2。另外,WXML 用于构建页面结构,使小程序页面更加美观,WXSS 用于修饰页面视图,JSON 用于小程序全局配置。本系统用WXML、JSON 和WXSS这三种语言来使小程序页面变得更加整洁、美观。

微信小程序设计有登陆、注册、远程操控、环境检测、Wi-Fi 通信设置、蓝牙连接、显示设置等功能主菜单,图3 为微信小程序主菜单界面。单击主菜单进入各功能子菜单,图4 为微信小程序远程操控子菜单界面。在登陆注册的过程中,显示账号密码,用户需要填写Wi-Fi 名称和密码来进行网络配置,设备与物联网服务器后台进行绑定,下次登陆无需再次配置网络,即可实现远程监测和操控[7]。

图3 微信小程序主菜单界面

图4 微信小程序远程操控子菜单界面

2.4 微信小程序配网

微信小程序配网保证终端接入物联网平台。系统采用SmartConfig 配网方法,基本流程是先让设备进入Wi-Fi 混杂模式,在此模式下可以监听捕获周围的Wi-Fi 报文,这时用户通过微信小程序输入Wi-Fi 名称和密码,即SSID 和密码,然后手机微信小程序将SSID 和密码编码至UDP 报文中,通过广播报或组播报发送,物联网生成当次配网Token,设备通过UDP包获取配置信息捕捉到SSID/Password/Token,从而连接路由器。路由器再分配IP,小程序作为UDP 客户端,连接设备作为UDP 服务端,小程序通过UDP将配网Token 发送给设备,并等待回复,设备接收到数据,并回复小程序设备信息和协议版本,设备通过事先保存的三元组信息进行动态注册,物联网后台接收到动态注册请求,给设备返回密钥,随后设备发起MQTT 连接到物联网后台,并上报配网Token,完成配网工作。

3 系统测试

系统测试涉及对象包括水族箱、手机微信小程序、物联网平台以及构成局域网的无线路由器,通过手机微信小程序可查看水族箱的相关生理指标并实现远程控制[8]。

系统测试在微信小程序上查看水族箱的实时温度,水族箱能根据程序提前设定的参数自动进行温度调节,通过移动端的温度控制按钮进行远程温度控制。系统测试水位和水质变化时,可以通过用户判断是否换水,亦可以通过用户移动端加水、排水和换水按钮进行操作。当水体的氧气含量低于设定的标准时,系统会自动启动装置,通过电机打开空气窗口将空气注入水族箱进行充氧。系统测试智能投食时,用户可以通过小程序进行操作,也可以通过外接的TFT 显示屏按钮进行相关操作,或者通过程序设定的时间定时投放饵料。启动投食时,舵机打开饲料出口,饲料自动投入水族箱。系统测试人体感应和语音识别时,系统能在距离水族箱2 m 之内的任意位置便感应到人体的存在,启动照明系统。语音识别系统可在距离水族箱5 m 之内的位置便可准确接收到正常的语音信息。

4 结 论

本文实现了基于物联网的智能水族箱系统设计。首先给出了水族箱系统的总体结构,然后从硬件和软件两方面阐述系统设计方案,硬件设计部分详细描述各单元的功能和设计方法,软件设计部分主要包括单片机程序设计、物联网平台配置、微信小程序设计及配网。最后完成系统各功能单元测试。系统以STM32 为控制中心,集成了智能投食系统、人体感应系统、语音控制系统、智能水循环系统、智能照明系统、温度控制系统,通过Wi-Fi 模块将各系统的传感器数据发送至阿里云生活物联网平台,利用微信小程序实现与STM32 单片机之间的通信,实现各种智能功能。系统设计灵活、操作方便、稳定可靠、性价比较高,具备智能化和远程控制的特点,具有良好的市场应用推广前景。

猜你喜欢

投食水族箱联网
吉林松原志愿者为越冬林鸟投食
投食瞬间
“身联网”等五则
投食
抢占物联网
乱投食现象思考
水族箱
鲨鱼的大小
环保水族箱
可再生能源与物联网