陈晓宁,魏 来,王 健,张 磊,孙洁茹,潘瑞娟
(安徽大学 电气工程与自动化学院,安徽 合肥 230601)
自20世纪60年代开始,国内外就开始大力发展现代化农业,将先进的无线传感及计算机技术应用于农业生产[1].农业环境监测是获取农业环境信息的前提[2].文献[3]设计了基于无线传感网络技术的种植环境信息监测系统,该系统实现了设备间的通信,但其中的ZigBee和以太网络只能满足小范围数据的交互.文献[4]设计的环境监测系统能无线实时获取数据,由于没有设计反馈环节,当监测到环境信息异常时,不能及时调节环境参数.文献[5]设计了市电供电的环境监测系统,由于农业监测设备安置在偏远室外,布线困难,而且供电线路在潮湿的农业大棚内,也有安全隐患.以上研究表明,目前的农业大棚环境信息监测系统仍然存在距离短、功耗大、误差大等缺点.鉴于此,笔者设计并实现了一种太阳能供电的农业大棚环境监测系统,将采集的环境数据实时传回监控系统,并通过Web客户端查看被测节点的数据并及时调控.
农业大棚环境监测系统由前端采集模块、中继传输模块、电源模块、执行器控制模块、Web客户端组成,系统的总体结构如图1所示.中继传输模块对前端采集的数据打包,通过GPRS以无线的方式将数据存储至Mysql数据库,Web客户端从数据库获取数据并显示.用户可登录客户端网页查看任意时刻不同节点的环境参数,且能远程控制执行器.该系统实现了大棚环境监测的可视化与智能化管理.
前端采集模块由STM32F103C8T6单片机、传感器、NRF24L01射频芯片、电源构成.
为了避免因数据融合带来的误差,保证数据传输的稳定性,采用温湿度、气体探测一体化传感器.该传感器具有灵敏度高、信号稳定、精度高、测量范围广、传输距离远等优点.传感器与STM32F103C8T6单片机通过RS485实现远距离通信.传感器收到中继设备发来的问询帧后,将包含有效数据的应答帧反馈至中继设备.问询帧和应答帧中包含校验码以确保数据的准确.
选择STM32F103C8T6单片机为主单元,通过SPI串口与NRF24L01射频芯片进行通信[6].NRF24L01射频芯片工作在2.4~2.5 GHz频段,广泛用于无线通信领域[7].射频技术相比于蓝牙、WiFi、Zigbee等,具有功耗低、抗干扰、可自定义协议等优点[8].
中继传输模块由STM32F103C8T6单片机、GPRS模块、NRF24L01射频芯片构成.中继模块为整个系统的数据中转节点,处理采集的节点数据,通过GPRS模块将数据传至后台服务器.
GPRS模块选用SIM900A,SIM900A负责将STM32F103C8T6单片机接收的数据传至后台服务器.SIM900A是一款能在增强型全球移动通信系统(extended global system for mobile,简称EGSM)和数字蜂窝系统(digital cellular system,简称DCS)的频段下工作且支持GPRS多种编码格式的芯片,内部采用ARM926EJ架构,功能强大[9-10].根据实际情况选择SIM卡的类型,把SIM卡插入GPRS模块以供使用.GPRS模块将采集的数据通过AT指令传给服务器,服务器只需监听固定端口即可接收数据.
为降低功耗,将太阳能板作为电源.电源输出电压为12 V,可直接给传感器供电.以STM32F103C8T6单片机为核心的控制器的工作电压为3.3 V,因此需通过三端集成稳压器LM7805将12 V转换为5 V,再由低压差的线性稳压器AMS1117将5 V转换成3.3 V,供STM32F103C8T6单片机使用.
执行器控制模块由STM32F103C8T6单片机、NRF24L01射频芯片、继电器和电机构成.NRF24L01射频芯片接收父节点(数据终端)或中间节点下发的控制指令,执行器控制模块接收并解析指令,实现继电器的导通和闭合.继电器控制卷帘机、补光灯及喷灌设备的工作状态.设备动作后,执行器控制模块将反馈的指令传至其父节点.
系统网络采用树状拓扑结构,如图2所示.一个数据终端可同时与6个中间节点进行点对点通信,此时数据终端最多可同时接收36个采集节点的数据.若6个中间节点不能够满足系统需求,可在数据终端与中间节点之间再增加1级节点,因此该系统拓扑结构具有很好的扩展性.
图2 树状拓扑结构
前端采集软件首先对传感器和STM32F103C8T6单片机进行初始化,然后使STM32F103C8T6单片机与传感器通过MOUBUS进行通信[11].通信采用主从方式进行,主机(STM32F103C8T6单片机)向从机(传感器)发送协议指令,从机接收指令后采集数据,并将包含采集数据、校验码等信息的数据包传给主机.STM32F103C8T6单片机通过SPI串口与NRF24L01射频芯片建立连接,并将数据包发送至数据终端.前端采集程序流程如图3(a)所示.
中继传输软件首先对该模块进行初始化,然后发送AT指令使GPRS模块与后台服务器建立网络连接.中继设备采集上一节点的数据,采集时间可以根据实际需求进行调整,该系统设置为每10 min接收1次节点数据.中继设备收到节点数据包后对其进行CRC校验,如果数据正确则通过GPRS模块传给后台服务器,否则舍弃该组数据并记录.数据传输程序流程如图3(b)所示.
执行器控制软件需要完成模块初始化和接收中继设备下发的控制指令.执行器控制软件可实现对卷帘机、喷灌设备、补光灯等设备的远程控制,并将反馈信号传给中继设备.如果设备工作则停止下发控制指令,否则继续下发控制指令.闭环的控制方式保证了控制功能的稳定性,执行控制程序流程如图3(c)所示.
图3 程序流程图
基于Spring Boot及Vue框架对Web客户端的前后端应用进行开发[12].Web客户端通过TCP协议与中继设备进行通信,实现GPRS初始化、连接、数据存储显示以及设备的远程控制等.Web客户端采用B/S架构,将IntelliJ IDEA作为系统的开发环境[13].
后端应用采用效率高、简单易用的Mysql数据库搭建[14].后端应用基于SpringBoot和Mybatis框架,通过Socket与数据库建立连接.后端应用设置TCP协议、服务器IP地址及端口号.中继设备发送连接请求,后端应用收到连接请求后,以字节流的方式读取数据并存入数据库,再根据前端需求提供相应的接口.
前端应用使用Vue集成的Element UI组件进行网页搭建,便于后期系统的优化[15].用户通过网络请求访问前端应用,前端应用通过Ajax方式访问后端应用.后端应用对数据库进行增删改查,数据库将增删改查结果集以JSON格式传给前端应用,然后进行显示.数据交互过程如图4所示.
图4 数据的交互
用户可以通过账号与密码登录监控系统.主界面将同一时刻不同节点的数据以表格的形式显示,将不同时间的数据以折线图的形式显示,数据的对比及趋势一目了然.通过主界面可监测参数.界面上放置Button控件,用于向下位机发送控制请求.系统的主界面如图5所示.
图5 系统主界面
笔者设计了大棚环境监测系统,并制作出相关设备.设备布置后进行实地测试,实验场地为安徽省阜南县食用菌大棚种植基地.大棚设置3个传感器监测点,分别位于大棚的前、中、后.设备外壳使用了密封圈,能安全应用于大棚潮湿环境.现场布置了前端采集设备和中继设备,二者固定在亚克力板上,再安置于监测点,如图6所示.
图6 现场布置的设备
传统监测采用温度计、湿度计、CO2检测仪测量数据.表1为该文监测系统测量的结果与传统监测的对比.
表1 该文监测系统测量的结果与传统监测的对比
以传统监测得到的数据为实际值,则由表1数据计算可得:1号监测点的湿度、温度、CO2浓度误差分别为0.359%,0.054%,0.286%;2号监测点的湿度、温度、CO2浓度误差分别为0.788%,0.214%,0.305%;3号监测点湿度、温度、CO2浓度误差分别为0.434%,0.158%,0.311%.以上误差均不超过1%,可见该系统测量的数据有较高的准确性,系统达到设计要求.
笔者以STM32F103C8T6单片机为核心,结合传感器、NRF24L01射频芯片和GPRS模块以及Web客户端,设计了监测农业大棚环境的系统.实现了湿度、温度、CO2浓度数据的采集传输.通过Web客户端能实现数据的无线存储及显示、设备的远程控制.该监测系统满足了测、记、分析一体化需求,具有应用推广价值.