APP下载

基于物联网的温室环境监控系统设计

2020-07-01

关键词:网关串口温室

何 勉

(陕西理工大学 电气工程学院,陕西 汉中 723000)

温室作为现代农业的重要组成部分,得到了社会的广泛关注。温室环境中的温度、湿度、光照强度、CO2浓度、土壤湿度等因素对作物的生长产生重大的影响,不同作物对环境参数的需求也不同[1-3]。因此,对温室环境进行监控是非常必要的。传统的温室环境监控系统大多采用有线通信方式,传感器采集节点使用RS-485总线方式将数据传输到主控制器或计算机进行处理,接入互联网也多采用网线连接,这种方式需要进行大量布线,且线路复杂,可靠性差,数据监控需要搭建专门的服务器和开发相关软件,成本高,维护困难[4-10]。

本文设计的基于物联网的温室环境监控系统,采用ZigBee技术建立无线传感器网络,终端节点连接传感器来采集环境数据,并通过无线传感器网络与协调器实现数据的近距离传输,发挥了ZigBee低功耗、低成本、组网功能强大的优势。采用Wi-Fi将网关设备接入互联网,具有传输速度快、可靠性高、无需布线等优点。采用物联网云平台技术将温室环境数据采集并上传到云端,通过云平台提供的设备管理和运维能力实现温室环境的远程监控,使得系统安全稳定,维护方便。

1 系统总体设计

系统由温室环境感知层、网关和远程监控层3部分组成,系统结构图如图1所示。

图1 系统结构图

温室环境感知层是由ZigBee协调器和多个ZigBee终端节点组成,负责采集温室环境数据信息转发给网关,并执行网关发来的控制命令。ZigBee协调器负责建立与管理无线传感器网络,并与网关进行串口通信。ZigBee终端节点连接各种传感器模块构成数据采集节点、连接控制模块构成控制节点,分别负责采集温室环境数据信息(包括空气温度、空气湿度、光照强度、CO2浓度、土壤湿度等)和执行环境调控命令。

网关由STM32微控制器和Wi-Fi模块组成,是连接温室环境感知层和远程监控层的桥梁。网关将环境感知层的数据通过Wi-Fi传输到机智云平台,同时将机智云平台发来的控制命令通过串口转发给温室环境感知层的ZigBee协调器。

远程监控层由机智云平台和手机APP组成。机智云平台提供安全可靠的设备连接通信功能,支持设备数据采集上云和云端数据下发到设备端,同时还提供了手机APP,用户通过手机APP就可以实现温室环境数据的远程监测和实时控制功能。

2 系统硬件设计

2.1 网关硬件设计

网关的主控制器选用STM32F103RET6单片机,该单片机的外围电路包括电源电路、复位电路、晶振电路、RS232串口电路等。STM32F103RET6单片机的工作频率高达72 MHz,内置64 KB的SRAM,512 KB的FLASH,拥有51个通用IO口、5路串口,具有性能高、功耗低的优点,能满足系统需要。

网关接入互联网采用Wi-Fi方案,Wi-Fi模块选用深圳市安信可科技有限公司开发的ESP8266-01模组,该模组使用乐鑫研发和设计的ESP8266EX芯片,性能稳定、功耗低,已被广泛应用于移动设备、可穿戴电子产品和物联网。本文对ESP8266-01模组进行二次开发即可将设备接入互联网。ESP8266-01模组采用3.3 V供电,与主控制器之间采用串口通信方式,其串口引脚RXD、TXD分别连接STM32F103RET6单片机USART2的PA2(TXD)、PA3(RXD)。

网关通过触摸屏实时显示温室环境数据和手动控制调控设备,触摸屏选用深圳市淘晶驰电子科技有限公司生产的3.2英寸串口智能屏,该屏通过串口与主控制器交互指令,其串口引脚RXD、TXD分别连接STM32F103RET6单片机UART4的PC10(TXD)、PC11(RXD)。触摸屏人机界面的制作由上位机软件完成。

2.2 ZigBee无线网络硬件设计

2.2.1 ZigBee协调器

ZigBee控制芯片采用TI公司的CC2530,该芯片集成了8051增强型内核微控制器、RF射频收发器、片内可编程闪存、8 KB的RAM、8路12位分辨率AD、5通道DMA等功能的一款射频单片机。ZigBee 协调器主要由CC2530单片机、电源电路、天线电路、晶振电路等组成。

ZigBee协调器通过串口与STM32F103RET6单片机的USART3进行通信。CC2530的P_2(RXD)、P_3(TXD)分别连接STM32F103RET6的PB10(TXD)、PB11(RXD),设置好串口参数就可以实现数据传输。

2.2.2 ZigBee终端节点

ZigBee终端节点在协调器的硬件基础上增加了电压采集电路、传感器模块、控制模块。根据连接的模块类别,终端节点可分为数据采集节点和控制节点。ZigBee终端节点硬件结构图如图2所示。

图2 ZigBee终端节点硬件结构图

电压采样电路是将Zigbee终端节点的PB1口配置为ADC,不同的节点设置不同的电阻配比,通过在PB1口上采集到不同的电压值,来识别节点类型。

赵京等(2016)根据包裹体资料分析箭猪坡矿床成矿温度在100℃~259℃之间,亦证明本矿床属中低温矿床。

数据采集节点连接的传感器有温湿度传感器(SHT30)、光照强度传感器(BH1750FVI)、CO2传感器(MH-Z19)、土壤湿度传感器(YL-69),用于采集温室的温度、湿度、光照强度、CO2浓度、土壤湿度等数据。

控制节点连接3个继电器模块,分别控制温室内风扇、补光灯、灌溉阀门的打开与关闭,达到调节温室内温度、湿度、CO2浓度、光照强度、土壤湿度的目的。

3 接入云平台及系统软件设计

3.1 接入机智云平台

机智云是致力于物联网、智能硬件云服务的开发平台,为开发者提供自助式智能硬件开发工具和开放的云端服务,开发周期短,效率高。

登陆机智云网站,注册账号,在开发者中心创建产品,本文设置产品名称为“温室环境监控系统”,然后根据系统需求添加数据点,每一个数据点控制产品的一个功能。本文添加了11个数据点,如表1所示。

表1 数据点设置表

创建完数据点之后,可以对设备进行虚拟调试,快速验证接口功能的开发,并在机智云提供的MCU开发服务中生成MCU端参考代码,本文使用STM32单片机的参考代码。

3.2 网关软件设计

3.2.1 烧录GAgent固件

GAgent是运行在Wi-Fi模块上的一款应用程序,可以提供上层应用到产品设备的双向数据通讯,其主要功能是配置设备入网、发现绑定、程序升级等。使用专用下载软件给ESP8266-01模组烧录GAgent固件,网关就可以配置入网、接入机智云,实现设备数据与云端数据的转发。

在机智云平台下载MCU的代码后,需要将其移植到STM32工程文件中,移植内容包括:单片机串口驱动程序、毫秒定时器、单片机复位函数、模块配网、数据处理等。

数据处理包括两部分:(1)实现设备数据到云端的上行处理。STM32的UART3接收到ZigBee协调器发来的采集数据后,存到设备状态结构体currentDataPoint结构体成员中,并调用userHandle函数完成数据的上报。(2)实现云端数据到设备的下行处理。STM32的UART2接收到Wi-Fi模块发来的控制命令后,在gizwitsEventProcess函数中触发相应的事件(风扇、补光灯、阀门的打开或关闭),在事件中将控制命令通过UART3发送给ZigBee协调器,实现控制命令的下行处理。

3.3 ZigBee无线传感器网络软件设计

ZigBee无线传感器网络节点要进行数据传输必须遵循ZigBee协议,Zigbee协议包含了物理层、MAC层、网络层、应用层的技术规范,ZigBee协议栈将各层的协议集合在一起,以函数的形式实现,提供应用层API,方便用户调用。本文使用ZigBee2007协议栈进行软件设计。

3.3.1 ZigBee协调器软件设计

ZigBee协调器上电后首先进行初始化,然后扫描信道,采用一个空闲信道建立网络,同时配置网络参数,监听有无节点加入网络,当终端节点加入网络后为其分配地址,构成星型网络。ZigBee协调器是无线网络中的主节点,为网关与温室环境采集节点提供数据交互。ZigBee协调器程序流程如图3所示。

图3 ZigBee协调器程序流程图

当协调器接收到终端节点发送来的数据后,经过协议栈中其他层的一系列处理后,最后在应用层的任务事件处理函数GenericApp_ProcessEvent中接收AF_INCOMING_MSG_CMD消息,并调用Generic-App_MessageMSGCB函数将无线数据通过串口发送给网关。

当网关给协调器的串口发来控制命令后,协调器调用回调函数rxCB,在回调函数中使用HalUARTRead函数从串口接收命令数据,并通过AF_DataRequest函数将数据广播出去,ZigBee终端节点接收到数据后执行控制命令,并将设备状态发送给ZigBee协调器。

3.3.2 ZigBee终端节点软件设计

ZigBee终端节点上电后主动扫描查找周围网络的协调器,检测到信标后获得协调器信息并发出连接请求,经协调器同意后加入网络。ZigBee终端节点程序流程如图4所示。

图4 ZigBee终端节点程序流程图

如果终端节点是数据采集节点,则在消息处理函数中,完成对网络状态变化事件ZDO_STA-TE_CHANGE中的数据发送事件GENERIC-APP_SEND_MSG_EVT的处理,调用传感器数据发送函数GenericApp_SendTheMessage,在函数中读取温室环境数据(温度、湿度、光照强度、CO2浓度、土壤湿度),然后调用AF_DataRequest函数将数据无线发送给协调器,调用osal_start_timerEx函数,设置发送周期为每5 s发送一次。

如果终端节点是控制节点,控制节点收到协调器发送的控制命令后,根据节点地址判断是否发给当前节点,若是当前节点,则执行控制命令,并将设备状态数据无线发送给协调器。

4 测试结果

系统实物如图5所示,网关由STM32单片机、Wi-Fi模块、触摸屏组成,触摸屏实时显示温室环境数据及设备状态,并可手动控制设备的打开与关闭。温室环境感知层由协调器和终端节点组成,终端节点连接了传感器和继电器模块。点击触摸屏上的开关按钮,可以打开或关闭继电器模块。

在智能手机上安装机智云提供的手机APP,打开APP,进入“登陆”界面,注册账号后进行登陆。然后进入“我的设备”界面,点击“一键配置”,输入Wi-Fi账号和密码,选择模组类型“乐鑫”,这时打开设备电源,手机APP将根据Wi-Fi信息搜索并连接设备。连接成功后,在“我的设备”发现新设备“温室环境监控系统”,点击进入温室环境监控界面,采集的温室环境数据已经显示在手机APP上了,数据每5 s更新一次,当点击打开风扇、补光灯、阀门按钮时,对应ZigBee终端节点上的继电器模块闭合,手机APP上的设备按钮及设备状态显示为开启,如图6所示。

图5 系统实物图 图6 手机APP监控页面

5 结语

本文结合物联网技术设计了一套温室环境监控系统,该系统在温室内布置多种ZigBee终端节点实时采集温室环境数据并获取控制器的状态,利用无线传感器网络将数据传输给网关,并通过Wi-Fi模块传输到机智云平台,用户只需要使用手机APP就可以完成对温室环境的监测,同时可以根据需要发布控制命令,控制ZigBee终端节点继电器模块连接的风扇、补光灯、阀门等设备,达到调节温室农作物生长环境的目的。经测试,该系统运行稳定,采集的数据准确,能够实现温室环境的远程监控功能。

猜你喜欢

网关串口温室
现代温室羊肚菌栽培技术
苍松温室 苍松灌溉
苍松温室 苍松灌溉
浅谈AB PLC串口跟RFID传感器的通讯应用
基于改进RPS技术的IPSEC VPN网关设计
可以避免一个温室化的地球吗?
USB接口的多串口数据并行接收方法探索
基于蓝牙串口适配器的GPS接收机与AutoCAD的实时无线通信
LTE Small Cell网关及虚拟网关技术研究
应对气候变化需要打通“网关”