农田信息监测系统的设计
2018-08-22柯春艳安思
柯春艳,安思
(新疆农业大学计算机与信息工程学院,乌鲁木齐 830000)
0 引言
农田信息监测系统主要监测对象包括土壤水分、含盐度、酸碱度、环境温湿度和光照度等信息,在农业精细化管理中发挥着重要作用。农田信息监测的主要任务是及时、准确、全面地掌握作物生长环境状况,目的是通过监测和分析数据及其变化规律,通过精准管理提高农作物产量和质量、提高生产效率和解放劳动力、减少环境消耗、推进基于大数据的农业智能决策管理应用等。传统的人工观测或者仪器监测的方式成本高效率低且工作繁琐,无法适应农业信息化的发展需要,为此,笔者开发一种基于RF无线通信技术的农田信息实时监测系统,该系统除了能将实时监测到的土壤和环境数据上传到物联网平台,实现数据的远程监控外,长远来看还能为基于大数据的农业智能决策提供数据支撑。
1 系统概述
系统由数据监测中心、汇聚节点和采集节点三部分组成,采集节点将土壤和环境数据通过RF无线通信模块发送到汇聚节点,再由汇聚节点发送到基于开放云平台的数据监测中心。
采集节点以Arduino UNO作为主控制器,包括nRF2401无线数据收发模块,温湿度检测模块、含盐度和电导率检测模块以及光照强度检测模块。汇聚节点也以Arduino UNO作为主控制器,包括Wi-Fi和nRF2401无线数据收发模块。数据监测中心依托中国移动OneNET物联网开放平台,汇聚节点采用HTTP协议接入该平台,在平台上实现数据的存储和可视化。
图1
系统结构如图1所示。采集节点和汇聚节点都要进行数据处理,采集节点要将从各检测模块接收的数据统一转换成一种进制再进行发送,汇聚节点要将来自采集节点的数据按照HTTP协议进行封装处理后再发送到云平台。
2 系统硬件设计
系统硬件包含两个组成部分,分别是作为数据接收主机的汇聚节点和作为数据接收从机的采集节点。系统硬件结构图如图2所示。
图2 系统硬件结构框图
综合考虑价格、功耗、通用性、开发周期等因素后,系统采用Arduino UNO作为采集节点和汇聚节点的主控制器。Arduino具有丰富的数字I/O接口和AD通道,接口资源和精度都满足本系统各种检测模块的需求,此外还具有SPI接口和UART接口,可与本系统选用的RF无线模块和Wi-Fi无线模块进行通信。
2.1 采集节点的硬件设计
采集节点除Arduino控制板外,集成温度传感器DS18B20、数字式光照传感器BH1750、基于RS-485通信的高精度土壤温湿度以及电导率传感器、MGV3810电压转换模块和nRF2401数据发射模块。
(1)温度检测模块的连接
温度检测模块采用常用的数字温度传感器DS18B20,该模块有三个端子,分别是 I/O、GND和VDD,其中VDD接3-5.5V电压。DS18B20有两个主要特点,第一是接线方便,不需要外围元件,只需要一条通信接口,第二是封装方便,进行不同的封装后可适用于多种场合。主控板采用数字接口2与DS18B20进行通信,需要注意的是,I/O口必须经过10K上拉电阻接到VDD,主控板才能读到数据。
(2)光照检测模块的连接
光照检测模块用于检测作物生长环境的光照强度,系统采用数字式光照传感器BH1750,它内置一个16位的AD,可直接得到光照数字值。该模块采用I2C接口传输光照数据,有四个接口,分别是SDL、SCL、VCC和GND,其中VCC接3-5V电压。BH1750的特点是功耗低、误差小。主控板采用模拟接口A4和A5与BH1750进行通信,A4和A5管脚对应着UNO板上I2C总线的SDA信号线和SCL时钟线。
(3)电导率检测模块的连接
采集节点的土壤检测模块信号线长度约1-3米,UART串口通信的可靠性在这种距离下无法得到保障,RS-485接口为差模信号传输,长距离通信时具有更好的抗干扰性,因此系统采用RS-485式土壤EC水分温度三合一传感器,该传感器可同时测量土壤温度、水分以及土壤总盐量和电导率,精度高,响应快,输出稳定,可长期埋入土壤中,耐电解,耐腐蚀。
主控板Arduino是TTL电平,为实现主控板与本模块的数据通信,需要一个RS-485-TTL转换模块进行电平的转变。主控板采用硬件串口RX/TX与转换模块的TTL串口连接,转换模块的RS-485差分信号与电导率检测模块连接。
(4)电源转换模块
采集节点各模块需要不同的电压,系统使用MGV3810电压转换模块进行电压转换。MGV3810模块的输入电压为12V,可得到3.3V、5.0V和12V三种输出电压,误差小于0.05V。系统中需要一路12V供电导率检测模块使用,一路5V供Arduino主控板使用,一路3.3V供nRF2401使用,nRF2401也可由Arduino板载的3.3V电压输出口供电,BH1750模块和DS18B20模块由Arduino板载的5V电压输出口供电。采集节点的nRF2401模块与汇聚节点的nRF2401模块硬件设计类似,将在下一小节中进行介绍。
2.2 汇聚节点的硬件设计
汇聚节点的功能是通过nRF2401模块接收采集节点的数据,经过封装之后通过Wi-Fi模块将数据发到云平台,汇聚节点包括主控板、nRF2401模块和Wi-Fi模块三个组成部分。
(1)nRF2401通信模块与主控板的连接
采集节点和汇聚节点之间采用nRF2401进行通信,nRF2401是Nordic公司生产的2.4G无线射频收发芯片,芯片内置频率合成器、功放、晶振和调制器等模块,该芯片有两个主要特点,第一是没有复杂的通信协议,第二是低功耗低成本,采用板载天线,空旷区实测通信距离达200米以上。nRF2401有5个信号线,分别是CE模式控制线、CSN片选线,与Arduino的数字引脚D9和D10连接,以及3个SPI的接口数据线SCK、MOSI和MISO,与Arduino UNO的SPI接口引脚D11、D12和D13连接。
(2)Wi-Fi通信模块与主控板的连接
ESP8266是无线Wi-Fi模块,具有集成度高、尺寸小巧、低功耗的特点,支持IEEE802.11 b/g/n和完整的TCP/IP协议栈,带有UART/I2C/SPI接口,非常适合用来进行数据传输和物联网应用等二次开发。本设计ESP8266使用串口和主控板进行通信。Wi-Fi模块、nRF2401模块和主控板的连接如图3所示。
图3 nRF2401模块和主控板接口
3 系统软件设计
系统程序设计主要包括采集节点的程序设计和汇聚节点的程序设计两部分。
3.1 采集节点程序设计
采集节点的程序流程图如图4所示,上电后首先对nRF2401和各传感器模块进行初始化,BH1750模块初始化主要完成的是I2C地址和解析度设置,本系统将解析度设置为H-resolution mode,精度为1LUX;DS18B20初始化配置OneWire通信端口;RS-485接口模块初始化内容为差分信号线配置;nRF2401初始化主要内容是标记本节点地址、定义传输数据长度、定义信道号和nRF2401发送模式设置。nRF2401模块有256个信道,在使用时为避免信道间干扰,应尽量避免使用连续信道传输数据,初始化结束后,系统首先需要判断是否接到发数据指令,该指令由系统的时钟管理程序周期性产生。为降低系统功耗,设定每30分钟采集一次传感器数据存入片内EEPOM,接收到发送数据指令后调用nRF2401模块的数据发送函数Mirf.send(),将EEPROM存储的数据发给汇聚节点。
图4 采集节点程序流程图
3.2 汇聚节点程序设计
汇聚节点的ESP8266初始化配置为STA模式。使用ESP8266需要注意两个问题,接入物联网平台前先对申请好的Key进行验证,发送数据前要先计算发送数据总的字节数,否则发送失败。
OneNet平台提供EDP、MQTT和HTTP等几种常用协议传输方案,本系统对实时性要求不高且不需要建立长连接,相对于EDP协议和MQTT协议,HTTP协议实现简单,所以选择HTTP协议发送数据。系统初始化结束后,通过接收数据标志位判断是否开始接收数据,若为是,则开始调用nRF2401数据接收函数Mirf.getData()接收来自采集节点的数据并将写入片内EEPROM。数据全部接收完后调用ESP8266模块的数据发送函数sendmessage(),将从EEPROM读取的数据按照HTTP协议发送到物联网平台。
4 实验结果
测试系统由3个采集节点和1个汇聚节点组成,图5是物联网平台观测其中一个采集节点温度和湿度数据的效果图,实验结果验证了农田信息监测系统能够实现土壤含盐度、电导率和湿度,以及环境光照度和温度等数据的定时采集和传输。
图5 数据采集效果
5 结语
本文设计了一种基于nRF2401的农田信息监测系统,具有体积小、功耗低、传输距离远的特点,能够实现数据远程监测,满足实际应用需求,用户可以通过连接互联网一目了然地查看各监测点的土壤和环境情况,实现农业信息化管理。该系统具有良好的扩展性,同时适用于水环境监测、生态环境监测等其他环境监测领域的应用。