基于GPRS和Yeelink网络平台的作物生长监控系统研究
2019-05-31
(天津市武清区职业中等教育学校,天津 301709)
随着我国社会经济的快速发展与科学技术的全面进步,现代农业正在向精准农业方向发展。我国虽然是一个农业大国,但是相对发达国家来说,我国农业生产的整体自动化水平与生产方式还处于较低阶段。目前,农业生产已经引起并受到了国家的高度重视,“智能农业”作为一种提高农业生产信息化水平的方式,受到了国家的极大关注。物联网(Internet of things,IOT)是一种集传感技术、射频技术(RFID)、网络传输等技术于一体的综合性技术体系,能够对现实世界进行信息采集、处理和传输,实现物体“智能化”。获取准确、实时的作物生长环境信息并加以信息处理与分析,对现代农业生产管理、提高农业生产率有重要的意义。
一、总体设计方案
基于GPRS与Yeelink网络平台的作物生长监控系统。由主控节点以及信息采集节点组成,主控节点以ARM处理器STM32为核心组成主控系统,搭配GPRS模块,完成数据信息的上传;信息采集节点采用Arduino控制器,通过配置温湿度传感器、CO2浓度传感器、光照度等传感器以及ZigBee模块,完成自然环境的温度、湿度和光照等信息的采集与传输,通过GPRS模块借助互联网发送到Yeelink平台,以便在PC机上实现远距离的查看信息和调用。同时记录下的数据建立一个库将作物的生长情况录制下来,这样就可以对作物的育苗、生长等研究进行统计和分析。也可在互联网上将提前设定好的参数和控制命令通过GPRS进行操作,这也保证了对作物生长的无人干扰。在环境变化的同时自行的进行调节。通过对监控系统的功能与结构的分析,确定了基于GPRS与Yeelink网络平台的作物生长监控系统的系统总体方案。主要包括主控单元模块、传感器模块、ZigBee无线传输模块、GPRS网络传输模块以及电源等模块的电路设计,硬件系统总体设计框图如图1所示。
图1 系统总体设计框图
二、硬件设计
主机单元采用芯片为STM32F103VBT6,其工作电压为3.3V,外部采用8M无源石英晶体震荡器为高速主时钟震荡器,采用32768手表晶体震动器为低速时钟。
作物生长监控系统环境参数采集从机单元采用Arduino控制器,控制器采用的处理器核心是ATmega328,ATmega328处理器包含14路的I/O端口,其中包括6路作为AD转换器的模拟输入端口,6路可作为PWM输出的数字输出端口;ATmega328处理器采用16MHz的晶振频率,运行速度相比普通AVR单片机有较大提高;同时ATmega328还包含1个方向USB接口,1个电源输入接口,1个ICSP接口以及一个复位按钮。
红外测温传感器采用非接触式类型 TN901模块,数据接口采用串行外设接口SPI,将Arduino控制器配置为从机,这与实际意义的从机有所不同,只是在SPI同步串行通信时是作为从机接收数据,实际应用中还是通过处理器拉低TNR红外测温传感器的测温启动信号引脚A,从而TNR红外测温传感器通过SPI同步串行的方式给单片机发送测量温度数据,这里采用Arduino控制器的SPI接口,测温启动信号引脚接Arduino控制器的PB1接口。
温湿度传感器选用的是含有校准数字信号输出的数字温湿度传感器芯片SHT11,内含14位 A/D 转换器并采用准I2C接口传输数据,这里采用Arduino控制器自带的I2C通信接口。
二氧化碳传感器选用对二氧化碳具有良好灵敏性的NDIR红外型CO2传感器COZIR-A,该传感器自带温、湿度补偿功能,有效提高了检测精度;数据通信接口采用串口通信方式,方便各种控制器的连接。本文选择的Arduino控制器可以通过串口直接与COZIR-A相连而获取二氧化碳数据。
模拟信号采集模块输出的数据信号为模拟信号,需要经过模数转换(A/D),将模拟信号转换成数字信号,再进行数据的处理。本作物生长监控系统环境参数采集从机单元中的模拟传感器包括光照、土壤温湿度传感器。获取这些传感器的数据需要通过Arduino控制器自带的A/D转换单元将模拟信号转换成数字信号,再经过数据处理,得到最终的光照及土壤温湿度信息。
在作物生长研究中负责与互联网进行数据交互的为Yeelink GPRS Connected是一款RS232/RS485/TTL 接口的GPRS模块,只需通过3种接口输入简单的命令即可将数据上传到Yeelink平台或者下载Yeelink历史数据,并提供添加设备、删除设备、添加传感器、删除传感器等全部API命令。Yeelink GPRS 模块拥有宽电压范围的电源管理芯片(电源接口工作电压范围 5V-12V)。Yeelink GPRS模块提供的RS-232 9针接口还可以直接连在电脑上,用上位机控制模块,为二次开发提供便利。GPRS模块的主要功能是将现场采集到的作物生长环境数据通过移动通信网上传到互联网网络平台或将接收到的远端监控中心发送的数据或命令进行相应的协议处理后,通过不同的串行接口方式(RS232、RS485、TTL等)传递给Arduino控制器实现整体控制功能。
三、软件设计
作物生长监控系统包括硬件系统与软件系统,两者缺一不可,软件系统建立在硬件系统基础之上,两者结合在一起,共同完成相应的功能。本设计中的软件系统根据硬件系统的配置采用模块化的设计思想,整个软件系统主要包括主机单元、从机单元应用程序以及上位机软件的设计,其整体结构图如图2所示。
图2 软件系统整体结构图
主机单元的初始化程序首先是要将处理器自身初始化,在之后要对GPRS进行初始化配置,成功完成后再将GPRS连网,当网络连接成功之后便可以向对应从机单元发送地址进行呼唤,呼唤完成后自动进入接收模式,等待对应从机上传的数据包,在接完数据包后进行解压处理,将处理分析所得结果用GPRS模块向Yeelink平台无线上传数据。主机单元系统主程序流程图如图3所示。
图3 主机单元主程序流程图
图4 从机单元主程序流程图
从机单元的主要功能是完成作物生长环境参数的采集与传输,因此主程序首先是要将处理器自身初始化,然后响应主机信号,收到信号后按照标志位去执行相应的子程序,从机单元系统主程序流程图如图4所示。
本作物生长监控系统中采用的数字传感器包括红外测温传感器、温湿度传感器、二氧化碳传感器。红外测温传感器的数据输出采用的接口为SPI接口,利用串行协议进行数据的数据。因为Arduino控制器自带SPI通信接口,因此可以很方便的进行测温程序的设计,将传感器内部寄存器中的数据读取出来。当需要进行红外测温时,只需将Arduino控制器的SPI选择引脚拉低即可。当启动测温后,Arduino控制器会接收到5个字节的温度数据,其中:Item为0x4c表示测量目标温度;MSB为接收温度的高八位数据;LSB为接收温度的低八位数据;Sum为验证码,接收正确时Sum=Item+MSB+LSB;CR为结束标志,当CR为0x0dH时表示完成一次温度数据接收。当数据接收完成之后,需要对数据进行标度的变换才能够得到正确的温度数值,转换公式如公式(1)所示:
其中,Temp代表采集到的十进制温度值,而测量结果为16进制,把它直接转换为十进制即可。
温湿度传感器SHT11的数据通信接口为二线制数字串口,通信协议由芯片生产商仔细定义。获取SHT11传感器的温湿度信息需要控制器产生与之相匹配的工作时序来完成。本系统中,Arduino处理器的I/O口PC4、PC5分别与SHT11传感器的SCL、SDA接口相连,依据SHT11的工作时序,Arduino处理器模拟产生对应的数据通信协议完成数据采集。为了提高数据的准确性,通常需要对数据进行补偿转换,温度转换公式为:
Temperature=0.01*SOT-39.60其中SOT为传感器采集的温度值;
湿度传感器的输出非线性补偿公式:
RH_linear=0.0405*SO_RH-2.8*(SO_RH)2-4.0
相对湿度对于温度依赖性的补偿公式:
RH_true=(T-25.0)*(0.01*0.00008*SO_RH)+RH_Linear
其中SO_RH为传感器输出的湿度值。
二氧化碳浓度传感器与微控制器的连接采用数字串口通信接口,因此只需利用Arduino的串口即可完成二氧化碳浓度的数据接收。
在应用的Yeelink平台当中,用户不需要对网页IP地址进行获取,所以也不会存在搜索、设置IP地址,只需要获取该网络平台用户自身的钥匙KEY便可以。所以在GPRS 远程通信模块和用户网络钥匙KEY配置一致便能够实现成功连接,形成一条数据传输无线链路,且用户可以不受地点、不受服务器IP地址的影响随时随地对用户自己的上位机系统进行登录。所有的配置工作完成后,GPRS设备通过移动通信网络接入Internet网络,完成与上位机系统的数据通信。
通过GPRS的无线网络数据传输后,数据将自动存储到物联网公共平台Yeelink当中,在Yeelink中对数据曲线的绘制记录,用户可以在任意有网络的地方更方便地对其查看、分析。
上位机软件设计采用国内一款提供免费接入数据的互联网网络服务平台Yeelink。Yeelink网络平台用于给普通用户提供一个数据输入输出的网站平台,用户在网站上可以接入采集到的传感器数据,通过实时曲线和数字将数据显示出来;同时在网站上可以通过按钮、对话框等实现控制指令的下发,用于远程操作设备。该网络平台借助于各种通信网络,只要能够接入网络,就能够随时随地的查看我们自己网站上的传感器数据,同时控制远程开关。本作物生长环境监控系统的主机单元配置有GPRS模块,通过GPRS模块借助移动通信网络就可以接入到Yeelink网络平台,然后将传感器采集到的数据进行上传并在网站上显示出来。使用Yeelink网络平台首先需要注册个人账号,创建属于自己的个人网站,然后添加相应的传感器设备,获取唯一的设备编号(Api-Key),这样使用任意的浏览器打开网站就能够看到传感器采集到的数据了。
主机单元为了能够向Yeelink平台上传数据需要在程序中,将主机单元本身设置为WEB服务器,此时需要创建服务器对象,同时将网络通信模块的IP地址设置成合适的地址,主要程序如下所示:
#include
#include
Byte Internet_mac [0x7E,0x5D,0xAE,0xEF,0xFF,0x2A]
Server_IPAddress_ip(192.168.1.124)
四、系统调试
该系统选择在学校实验室进行调试并成功,正常运行一定的时间,并在一定时间内实时记录温度、湿度、二氧化碳浓度、光照强度等数据。表1为一个作物生长柜的部分实验数据。
表1 物生长柜的部分实测实验数据
五、结论
本系统通过设置多个信息采集节点,同时作用于监测农作物生长环境中的空气温湿度、光照度、二氧化碳浓度、土壤温度、土壤湿度等参数,从而达到通过各类各类传感器技术、GPRS无线网络通信技术的方法,建立远程的作物环境参数检测系统,利用物联网公共平台,对参数绘制曲线图,以此来研究作物生长所处的环境对作物生长的影响,并建立农业研究数据基础的目的。本文将作物生长环境的模拟硬件设计方面和软件人机交互界面设计方面结合起来,并进行了系统测试与试验研究。经过大量实验证明系统测量的数据较稳定,Yeelink平台中数据绘制的曲线准确、直观,为用户提供了大量数据支撑。