1. 引言
随着国民经济的发展及人民生活节奏的日趋加快,家居景观的个性化与生态化越来越受人们重视,而能给人带来宽松舒适的美感的鱼缸与植物受到人们的广泛喜爱。但由于多数养殖者对鱼与植物的生活环境不甚了解,或因工作繁忙无暇照顾而时常导致所养鱼、植物死亡。目前,国内外市场也相继出现了一系列的“智能鱼缸”,国内外的智能鱼缸所能提供功能有:水温恒温控制、充氧控制、自动换水等,该类智能鱼缸的出现在一定程度上实现了养殖自动化,但其提供的功能过少、功能单一、灵活性差,无法根据所养鱼的种类、数量、大小等灵活变换鱼缸中水体参数,更无法为不懂鱼、植物的用户提供合理的养殖建议 [1]。针对上述问题,本文提出一种基于STM32单片机控制、多种传感器协同工作、可远程控制的家庭景观互联系统。
2. 系统的总体设计方案
智能互联系统在软件和硬件均采用模块化设计,主要由机械结构设计、运动控制系统、局域网通信系统、智能控制系统构成。
3. 机械结构设计
3.1. 智能鱼缸模块
鱼缸跟市面上大多数外观结构相似,但是经过设计加入了进水装置、出水装置、暂储鱼盒,鱼缸内壁装有自动清扫刷,鱼缸上部装有自动投料装置、供氧装置。鱼缸内置水下高清摄像头、温度传感器、pH值检测器等多种传感器。鱼缸的整体设计实现如流程图1所示。
![](//html.hanspub.org/file/3-1541850x9_hanspub.png)
Figure 1. Flow chart of the overall design of the fish tank
图1. 鱼缸的整体设计实现流程图
3.1.1. 自动换水装置
主要利用单片机内部的定时器进行计时,当时间到达设定时间时,出水装置启动,水位减低,直到红外传感器检测到水位下降到设定值时,抽水电机停止工作。此时出水装置工作,水位上涨,直到红外传感器检测到水位上升到设定值时,出水装置停止工作。另外也会根据检测水质的成分,当水质某些指标不符合鱼儿适宜生活时,也可以通过单片机的中断系统进行自动换水 [2]。
3.1.2. 自动清扫刷与自动投料装置
单片机通过输出的数字信号对继电器进行控制,从而继电器控制电机,通过电机的转动实现清扫刷的工作和鱼料的投放 [3]。清刷鱼缸的时间可以设置在换水之前,利用废水进行清刷,实现水资源的多重利用。
3.1.3. 自动供氧装置
由于供氧的气泡会对观赏性大打折扣,因此对供氧时间也会依据观赏者的作息进行定时控制,在不需要观赏的时间供氧,其余时间停止供氧。供氧模块主要是由供氧开关、自动供氧开关以及自动供氧间隔时间来进行控制。
3.1.4. 鱼缸水质浑浊度检测
光信号的强弱可以反映水中浑浊度的变化,若光信号强表明水中透光性强,即水的浑浊度较小;相反,若水不够清澈,浑浊度较大影响透光性,光信号会比较弱 [4]。以此通过对鱼缸内水质采用光敏传感器进行监测,一旦水质参数超过正常范围,立刻将进入单片机中断服务程序,进行换水。
3.1.5. 水温检测
不同种类得鱼儿对水温度得要求有所不同,尤其是观赏鱼对温度得要求更为严格,鱼缸中具有水温检测和水温保持模块。通过温度传感器DS18B20采集温度信号,并对温度信号实时控制,当温度过高时触发降温电路;当温度过低时触发加热电路,保证水温维持合适的范围内 [5]。
3.1.6. pH检测
水体pH值通过E-201型pH传感器进行测量,测量数据传至手机APP显示。硬件接收到pH设置值后先进行一次水体pH值测量,若测量值小于设定值则启动进水装置,通过补充新鲜水源的方式调节pH。
3.2. 景观植物模块
对植物景观的底座加入可驱动装置,加入可与系统进行通信的标签模块,可以实现自由旋转及移动。对花盆的设计参考浇水可循环设计,花盆可满足长期水资源需求。
白天时,当阳光照进家庭阳台的时候,智能管理系统控制景观植物的底盘,利用植物向阳生长的特性,控制底盘运动旋转,合理利用阳光,以及定时定量对植物进行灌溉水(鱼缸所换水)和养料。当用户在书房工作学习时,当眼睛对屏幕用眼过度时,用户可通过智能管理APP控制景观植物自动运动到书房为用户提供更加舒适的工作环境,景观植物模块系统设计图2所示。
![](//html.hanspub.org/file/3-1541850x10_hanspub.png)
Figure 2. Design of landscape plant module system
图2. 景观植物模块系统设计
4. 局域网数据通信系统
4.1. 通信系统框图
整体通信系统框如图3所示。
4.2. 组网基本原理
ESP32是一款高集成度的支持WIFI的SOC,基于ESP32可以将多个模块组网互联,完成局域网组网、访问互联网。
一般,组网可以有两种方式:无线多芯片自组网和指定互联网服务器组网。多芯片自组网一般适用于规模较大,数据量小的场景。在该设计中,互联数少,数据量较大,使用指定互联网服务器组网。免费的服务器平台OneNET,可以轻松建立起多个模块中的互联。在该系统中,OneNET充当了主服务器的角色,其主要作用是通告设备IP地址和作为中介。各个ESP (包括PC)既是可以成为客户端经过OneNET实现传送,也可以直接局域网内通信。
打开PC客户软件终端和各模块的电源,各模块均自动接入家庭的无线路由器,在获取动态IP地址后,可以访问互联网。经由OneNET的互联,各个设备知道在该系统中的其他设备的功能与IP地址信息。对于传感器环境实时数据,经由MQTT协议,各个设备上传到OneNET集中管理并回传给PC。对于PC指令、视频数据、设备管理信息等直接在设备间借由TCP/IP连接在局域网内传送。
4.3. 模块设计
4.3.1. OneNET
OneNET是由中国移动打造的物联网开放接入平台,可以提供许多物联网功能,但是绝大部分需要收费 [6]。该设计只使用其免费的MQTT通信协议功能,将其作为协议中的服务器,中转各IP地址、设备信息和环境数据。系统中设备接入无线路由器时,通过DHCP获取的IP地址因设备与时间而异,由用户去查看并告知其他设备是不现实的。MQTT协议采用设备–服务器–设备的思想,将服务器作为中转,可实现应用层的单播、组播、广播通信。设备将自身的设备信息传至平台上,并在每个新设备接入或自身IP地址变更时广播,这样,局域网内的每个设备都精确知道对方的功能与IP地址,可直接发起通信。同时,由于传感器数据的轻量实时性,采用MQTT队列,可实现时间与速率固定的回传,并显示再终端上,用户可以实时观测并下发指令。
4.3.2. ESP32无线芯片
ESP32作为一款自带WIFI的高性能SOC芯片,不仅负责组网,且实现多传感器的数据采集与花盆底座的机械控制。复杂的鱼缸控制与视频采集,则由STM32单片机来完成。ESP32通过串口与STM32相连,交互指令与视频信息,并回传至终端。
![](//html.hanspub.org/file/3-1541850x12_hanspub.png)
Figure 4. Communication module of terminal software
图4. 终端软件的通信模块
各个ESP设备上电后,便加入无线局域网,接入到183.230.40.33 (OneNET的IP地址),接入MQTT协议,宣告自身的设备信息并获取已加入局域网的设备的信息。开始正常工作后,芯片实时采集各种传感器的数据并经由平台回传至电脑。
ESP32使用MicroPython语言进行编程。MicroPython是面向嵌入式设备的轻量化的Python语言,与其兼容。
4.3.3. 终端软件的通信模块
该部分是终端交互软件中的通信模块,相比与嵌入式端,需要协调所有功能,包括指令下发、数据采集、视频传输等。使用Python编写,便于嵌入到PYQT可视化图形界面中,流程如图4。
MQTT连接connect代码(部分)如图5所示。
![](//html.hanspub.org/file/3-1541850x13_hanspub.png)
Figure 5. MQTT connection connect code (partial)
图5. MQTT连接connect代码(部分)
5. 智能管理系统
该界面是基于Python3.7 + PyQt5进行的软件开发,它具有开发周期短、实现效果佳和可移植性高等特点 [7] [8]。该UI界面程序在PC端运行,实现对家庭景观物联网设备信息数据的实时监测显示,通过界面实现对家庭智能景观系统设备的远程控制,提供用户科学方便的家庭景观养护体验。
5.1. 界面设计
通过使用Qt designer可视化工具来进行界面部件布局,用户界面设计简单、功能明确,数据显示清晰。为用户提供智能管理、一键换水等智能化管理模式,为用户提供智能科学的家庭景观管理。该控制系系统控制主界面如图6所示,智能鱼缸控制界面如图7所示。
5.2. 系统主要功能
实现对家庭智能景观系统网络节点的数据实时监控,完成相应的数据显示以及命令的发送,对家庭智能景观系统设备进行智能化管理。监控软件实行模块化独立设计,采用多线程设计,各个子程序模块都可独立运行,从而降低了程序的复杂度,使程序设计简单化。该监控软件的功能模块结构如图8所示,以及软件流程图如图9所示。
5.2.1. 登录OneNET进行MQTT协议连接
首先在OneNET平台进行注册登陆,创建项目和设备并选择接入协议类型为MQTT。程序中通过设备ID、name以及password登录OneNET平台服务器,添加需要的主题和数据流并订阅远程家居设备端发布的主题,以便于进行远程数据传输,设备接入OneNET平台步骤如图10所示。
![](//html.hanspub.org/file/3-1541850x14_hanspub.png)
Figure 6. System control main interface
图6. 系统控制主界面
![](//html.hanspub.org/file/3-1541850x15_hanspub.png)
Figure 7. Smart fish tank control interface
图7. 智能鱼缸控制界面
![](//html.hanspub.org/file/3-1541850x16_hanspub.png)
Figure 8. Overall functional module structure diagram
图8. 整体功能模块结构图
![](//html.hanspub.org/file/3-1541850x18_hanspub.png)
Figure 10. Steps for device access to OneNET platform
图10. 设备接入OneNET平台步骤
5.2.2. 设备在线情况信息显示
通过控制端程序发布的hello主题,远端设备订阅该主题收到hello数据进行回复,通过回复情况判断在线的设备信息。
设备在线程序(部分)如图11所示。
![](//html.hanspub.org/file/3-1541850x19_hanspub.png)
Figure 11. Equipment online program (partial)
图11. 设备在线程序(部分)
5.2.3. 数据流接收显示
通过对服务器接收发布消息的回调,对数据进行5秒间隔的监测更新显示,应用框架如图12所示。
数据流接收状态程序(部分)如图13所示。
![](//html.hanspub.org/file/3-1541850x21_hanspub.png)
Figure13. Data stream receiving program (partial)
图13. 数据流接收程序(部分)
5.2.4. 视频业务
通过OneNET平台视频能力进行设备通信信道、推流控制及远程控制,可以实现RTMP协议的推流,将远端上传的视频流从服务器通过https协议传输到客户端,同时实现视频业务显示。用户在工作闲暇之余,也可以通过视频观看家中鱼缸内鱼儿的情况,并且可以通过观察进行远程喂鱼、换水等动作,提供用户良好的亲身体验效果。
5.2.5. 控制信息发送
用户通过选择按下界面中的控制按键,向家中的智能景观设备发送相应的指令数据,界面程序通过不同的主题消息来区分想要控制的设备,不同的数据来区分命令。智能景观设备无线模块(ESP32)分别订阅不同的主题,对主题消息进行判别,执行相应的指令。过程如图14所示。
6. 实验原理及特色
6.1. 实现过程
首先通过白天时,当阳光照进家庭阳台的时候,智能管理系统控制景观植物的底盘,利用植物向阳生长的特性,控制底盘运动旋转,合理利用阳光,以及定时定量对植物进行灌溉水(鱼缸所换水)和养料。当用户在书房工作学习时,当眼睛对屏幕用眼过度时,用户可通过智能管理APP控制景观植物自动运动到书房为用户提供更加舒适的工作环境。智能鱼缸自动开始工作,定点定时投喂饲料、充氧、换水,自动检测水中pH值、温度等参数,检测鱼的生活状态并及时呈现在智能管理APP上,整体流程图如图15所示。
本项目的目标是通过对机械设计、图像处理、传感器信息处理、无线通信、PYQT开发以及STM32单片机的学习和应用,实现水生动植物、盆栽植物以及水资源的有机融合,更为有效合理地运用家庭水资源,提升景观观赏的智能化程度,构建舒适、和谐、智慧、高效的基于物联网的家庭景观智能互联系统。相比较而言,市面上缺乏具有高集成功能的智能鱼缸和花卉管理系统,本项目最大的特色就是在智能鱼缸和花卉种植高度集成的基础上,做到了资源的有机融合,构建了一个互联的家庭景观系统,对人们的生活带来了更大的便利和舒适。
6.2. 实验测试结果
通过对系统整个系统的测试,系统显示如图16所示。
6.3. 项目特色
6.3.1. 智能鱼缸
项目中的智能鱼缸,可实现水生动物的智能管理,包括全自动智能换水、鱼缸清理、水环境(如温度、pH值、浑浊度)的监测与提示、鱼健康状况监测与提示。鱼缸的高度智能化不仅使得人们的生活更加便利,还可以更好的为鱼儿提供最适宜的生活环境。高智能化程度符合现代家居的理念。
6.3.2. 智能花卉管理
我们的景观系统中还包括对盆栽植物的智能化管理。盆栽花卉的底部装有可运动的底座,植物花卉的生长需要适宜的阳光和适量的水分,白天时,当阳光照进家庭阳台的时候,智能管理系统控制景观植物的底盘,利用植物向阳生长的特性,控制底盘运动旋转,合理利用阳光,以及定时定量对植物进行灌溉水(鱼缸所换水)和养料。再者,智能化运动的底座还可以实现盆栽植物的动态观赏。当用户在书房工作学习时,当眼睛对屏幕用眼过度时,用户可通过智能管理APP控制景观植物自动运动到书房为用户提供更加舒适的工作环境。
6.3.3. 水资源智能管理
本项目秉持节约水资源的理念,对鱼缸所换的水进行智能化分类管理,从而减少对水资源的浪费。一部分用来对植物花卉浇水,其余的部分可加入到家庭成员的日常生活必备水如马桶水箱用水等,主要循环利用用水分布图如图17所示。
![](//html.hanspub.org/file/3-1541850x25_hanspub.png)
Figure 17. Main distribution of circulating water
图17. 循环用水主分布
6.3.4. 人机交互智能化管理
本项目配备了远程控制APP,方便的用户对家庭景观系统的实时控制。鱼缸和植物花卉中的传感器可以将检测数据传输至APP,鱼缸底部装有水下摄像头,水中鱼儿的生活状况也可以通过视频的形式在APP上显示,方便了用户随时了解系统的状况。用户还可以通过无线通信技术对鱼缸和植物花卉进行远程控制,比如:换水,调节水的温度,投料,控制底座移动等等。真正地实现了万物互联,大大提高的用户的幸福指数。
6.4. 未来展望
加入智能监控系统及模式识别,对鱼类和景观植物的生活状态进行分析,从而更加完善养殖流程,制定专业的养殖方法,给用户带去方便安全。加入大数据管理系统,根据大数据以及专业知识,因地制宜地向每个用户推荐个性化养鱼、护花等家庭景观养殖的最佳方案。
家庭景观物联系统最终将融入到智能家居行业,成为其不可分割的一部分,迎来蓬勃发展。
7. 结语
本文设计的家庭景观互联系统,利用现今的物联网技术,为用户家庭提供了养鱼,养花自动智能的诸多功能,不仅减轻了用户管理的烦恼,还提高了鱼儿和植物的存活率。集养鱼、养花一体化,体现了生态循环和节约用水的设计理念。除此之外,智能管理APP的设计,利用无线通信技术可为用户提供远程控制的服务,为工作繁忙或出差在外的用户提供了便利。
相比较市面上已有的传统“智能鱼缸”,本系统的功能诸多,智能化,集成化程度更高。养鱼—养花一体化设计,具有较高的实用性和市场价值。