基于OneNET物联网云平台的农田环境监测及远程灌溉系统设计
2023-04-01唐茂淞
唐茂淞
(1.塔里木大学 水利与建筑工程学院,新疆阿拉尔,843300;2.塔里木大学 现代农业工程重点实验室,新疆阿拉尔,843300)
0 引言
农业生产的实践主要集中于田间,农田种植环境数据对农作物的生长与产出至关重要[1],传统的农田环境数据采集需要用户实地读取仪器数据,这种低效的数据获取方式已无法满足现代化农业生产的需求。同时,落后的农田灌溉方式致使水资源的利用效率较低[2],尤其在我国水资源短缺的地区,节水灌溉显得格外重要[3~5]。
在相关研究中,徐仲等[6]使用STM32微控制器和窄带物联网(NB-IoT)技术将空气温湿度数据上传至OneNET云平台;肖汉光等[7]使用STM32和NB-IoT技术将土壤温湿度数据上传至华为云平台;王佳明等[8]使用MSP430单片机和GPRS通信模块完成了远程灌溉控制系统。
随着物联网和无线传感技术的不断发展[9],农业物联网在农业生产工作中的重要性愈发凸显[10],农业物联网包括借助可视化手段显示由微控制器和传感器获取的农业生产环境数据,为调整农作物生长环境提供科学依据,以此助力农业增产、提质,减少人力资源的低效配置,不断提升经济效益。在本设计中运用了低成本物联网方案,监测空气温湿度、土壤温湿度、紫外线强度、二氧化碳浓度,使用WiFi无线通信模块连接Arduino开发平台与OneNET物联网云平台,通过物联网云平台实时显示环境数据以及控制电子水泵开关实施远程灌溉。
1 系统总体框架
本系统采用模块化的设计方案,数据处理平台将各项传感器采集到的农田环境数据处理后,由无线通信模块借助EDP协议将数据打包上传至物联网云平台,通过PC端互联网浏览器和移动端APP访问物联网云平台实时显示环境数据,可在物联网云平台通过数据下发实现电子水泵的开启和关闭。本设计具备良好的扩展性,可在无线网络的信号范围内配置多台环境监测终端设备。系统总体设计框架如图1所示。
图1 系统总体设计框架
2 系统硬件设计
针对基于OneNET物联网云平台的农田环境监测及远程灌溉系统要实现的功能,本系统以Arduino Uno开发平台作为核心控制器件,并配备了温湿度传感器、温度探头、土壤湿度传感器、紫外线传感器和气体传感器,多样化的传感器可满足用户对农田环境数据的基本需求,通过WiFi无线通信模块上传各项环境数据,9V可充电锂电池为系统供电,5V降压模块将9V电源降压为5V单独供给电子水泵,需要开启电子水泵时通过物联网云平台与Arduino Uno开发平台控制继电器打开电子水泵,LED指示灯也随之点亮。系统总体硬件框架如图2所示。
图2 系统总体硬件框架
2.1 数据处理平台
本系统采用了Arduino Uno作为数据处理平台用于处理各项传感器采集到的数据以及控制无线通信模块与OneNET物联网云平台实现交互[11]。Arduino是一种开源的电子设计开发平台,可在Windows、OS X、Linux操作系统上实现创意,完成开发。Arduino Uno基于自带32KB闪存、2KB静态随机存储器和1KB电可擦可编程只读存储器的ATmega328P单片机设计完成,具备14个可直接输入与输出数字信号的数字引脚,6个可直接输入与输出模拟信号的模拟引脚,且兼具串行通信总线和串行通信接口的通信方式,可接入7~12V电源,并输出稳定的5V和3.3V电压为其他模块供电,适合作为本系统的数据处理平台。Arduino Uno开发平台电路原理图如图3所示。
图3 Arduino Uno开发平台电路原理图
2.2 无线通信模块
本系统采用了抗干扰强、性能稳定的ESP8266-01S无线通信模块将监测设备与物联网云平台连接,Arduino Uno通过串行通信接口连接ESP8266-01S将数据上传与下发[12]。ESP8266-01S已经通过了国家无线电管理委员会、美国联邦通信委员会等无线电认证,其工作电压为3.3V。ESP8266-01S无线通信模块电路原理图如图4所示。
图4 ESP8266-01S无线通信模块电路原理图
2.3 传感器模块
农田的环境数据与农作物的生长、代谢、产量以及形态结构密切相关[13]。本系统采用精度较高的DHT22温湿度传感器采集空气的温度和湿度数据,采用防水的DS18B20温度探头采集土壤的温度数据,采用灵敏的FC-28土壤湿度传感器采集土壤湿度数据,采用耐高温的S12SD紫外线传感器采集紫外线指数,采用集成式CCS811气体传感器采集二氧化碳气体浓度。DHT22温湿度传感器通过单总线的连接方式连接数据处理平台输出模拟信号,DS18B20温度探头通过单总线的连接方式连接数据处理平台输出数字信号,FC-28土壤湿度传感器连接数据处理平台输出模拟信号,S12SD紫外线传感器连接数据处理平台输出模拟信号,CCS811气体传感器通过串行总线的通信方式连接数据处理平台输出数字信号。其中,单总线在传输时钟信号的同时传输挂载器件的数据,串行总线包含串行数据线和串行时钟线,通过寻址的方式获取挂载器件的数据。传感器电路原理图如图5所示。
图5 传感器电路原理图
2.4 电源-指示灯-继电器-电子水泵模块
本系统采用了2个独立的9V可充电锂电池供电,其中一个电池为数据处理平台供电,另一个电池结合一个5V降压模块为电子水泵供电,采用5V继电器控制JT-DS3W-3电子水泵开关并通过蓝色LED的亮灭提醒[14]。电源-指示灯-继电器-电子水泵模块电路原理图如图6所示。
图6 电源-指示灯-继电器-电子水泵模块电路原理图
3 系统软件设计
3.1 Arduino底层程序
软件程序是本设计的中枢,需要协调运行,模块化的软件设计思路加强了程序的可移植性和可维护性[15]。本系统的软件代码在Arduino 集成开发环境里借助C语言完成[16]。主要程序为:通过setup()函数进行设备初始化;通过doCmdOk()函数使设备入网;通过loop()函数执行循环;通过edp_connect()函数执行EDP通信协议连接;通过dht.readTemperature()函数获取空气温度数据;通过dht.readHumidity()函数获取空气湿度数据;通过ccs811.readData()函数获取气体数据;通过DS18B20_sensor.getTempCByIndex()函数获取土壤温度数据;通过analogRead() 函数获取土壤湿度数据和紫外线数据;通过sprintf()函数将传感器数据转换为字符串类型;通过packetSend()函数将传感器的数据打包后上传至物联网云平台;通过sscanf()函数接收物联网云平台发送的水泵开关信号。系统主要程序流程如图7所示。
图7 系统主要程序流程
3.2 WiFi通信程序
ESP8266-01S无线通信模块在使用前需要通过串口通信的方式对其写入官方发布的最新版本AT固件以适应电子信息技术领域相关配套软硬件设备的更新,本系统使用前已经对其写入彼时最新的ESP8266_NonOS_AT_Bin_V1.7.3_1版本固件。设备启动时,Arduino Uno开发平台会通过ESP8266-01S无线通信模块完成一些步骤自动接入互联网[17]。无线通信入网流程如图8所示。
图8 无线通信入网程序流程
3.3 EDP通信程序
设备入网后,还要执行通信协议连接才能与物联网云平台进一步交互,EDP协议是一种基于TCP协议的专用于物联网数据传输的开源通信协议。保留了与物联网数据传输紧密相关的数据上传与下发等主要功能。其中,支持上传的数据类型包括浮点类型、整数类型、字符串类型、JSON数据交换格式以及二进制类型的数据[18]。EDP通信协议连接流程如图9所示。
图9 EDP通信协议连接流程
4 物联网云平台连接设置及显示组件
4.1 物联网云平台连接设置
使用OneNET物联网云平台首先要在其官网注册并登录,通过控制台选择EDP协议并添加产品[19]。使用该平台要对自己的设备进行报备,需要填入设备的名称、行业、类别等信息,还需要填入联网方式、设备接入协议、操作系统以及网络运营商等技术参数。一个产品可以绑定多台设备,每次添加设备需要填入设备名称、鉴权信息、数据保密性等基本信息。
4.2 物联网云平台显示组件
OneNET物联网云平台提供了丰富的数据显示组件,组件库分为基础元素和控制元素两大板块。其中,基础元素组件的作用是显示数据处理平台上传的数据,可通过文本、折线图、柱状图、图片、链接、地图、仪表盘、设备及轨迹的形式呈现数据,控制元素组件的作用是将数据下发至数据处理平台,可通过旋钮和开关下发数据。
5 系统功能实现
5.1 数据流展示面板
对软硬件设计整合后,在PC端互联网浏览器登录OneNET,进入控制台就可以看到系统实时监测的环境数据,PC端互联网浏览器数据流展示如图10所示。
图10 PC端互联网浏览器数据流展示
5.2 手机APP显示数据与远程灌溉
打开“设备云”APP输入OneNET账号与密码进行登录,登录成功后在应用列表中选择所设计的应用,即可在手机上实时显示环境数据。当首次点击APP上的开关按键时,电子水泵开始工作,当再次点击APP上的开关按键时,灌溉停止。
5.3 导出历史数据
作为监测农田环境数据的设备,不但被要求监测环境数据,还要能完整地保存测得的历史数据,OneNET物联网云平台可以保存历史数据。通过在PC端互联网浏览器上登录OneNET可在设备列表的数据流展示面板里选择要导出的历史数据,导出的农田环境数据为Excel格式方便用于后期数据分析。
6 讨论
物联网的三层架构:感知层、网络层和应用层相辅相成[9]。
本系统的感知层实现了空气温湿度、土壤温湿度、紫外线指数、二氧化碳浓度的采集,考虑到本系统将长期放置于环境条件复杂多样的农田,因此结合成本、精度、功耗、耐高温抗低温、防水能力等特性决定传感器选型。王兴鹏等[20,21]研究表明,作物对盐分的响应比较敏感,在后续的探究中可以将土壤电导率传感器纳入选择。
侯瑞等[22]研究表明,在对大田环境进行监测时,采用ZigBee无线传感器技术可将环境数据的采集方式划分为3层节点,即终端节点、路由器节点和协调器节点。终端节点使用各种传感器直接采集复杂多样的数据并将数据发送至路由器节点,路由器节点再将数据发送至协调器节点,最后由协调器节点层将数据上传至服务器。其中,多个终端节点对应一个路由器节点,多个路由器节点对应一个协调器节点,层次分明的多分支树形架构为大面积田域的环境数据监测提供了一种可行方案。本系统的网络层采用的是WiFi无线通信技术,单论技术层面,WiFi无线通信技术与ZigBee无线传感器技术相比较各有优势,从成本上比较,WiFi优于ZigBee;从功耗上比较,ZigBee优于WiFi;从组网能力上比较,一个ZigBee网关可以连接上万个子设备,而WiFi联网子设备的增加也要求路由设备成比例地增加。所以在实际应用中可以结合大田面积和成本因素综合考虑后选择实施技术。
李学军等[23]研究表明,将农田蒸发量 ET0、作物蒸腾量ETc和土壤水分的入渗纳入影响作物灌溉策略因素,建立灌溉预测模型可以实现精准灌溉。本系统的应用层借助OneNET物联网云平台实现数据可视化和远程灌溉,在远程灌溉中仅呈现了借助云平台手动控制灌溉,通过对程序的修改可以根据设定土壤湿度阈值自动控制灌溉。在今后的探索中还可以结合测得的小范围农田环境数据将整个大田的气象数据纳入考量,通过机器学习算法深入研究更加高效合理的智能灌溉模式。
7 结论
现代科学技术研究的深入发展推动了不同学科领域的跨界合作,电子信息技术可以广泛应用于现代农业的生产经营与管理环节,农业物联网随着软硬件技术和通信技术的迭代也在同步发展。本设计集成运用传感器、数据处理、无线通信、物联网云平台等信息化技术构建了成本低、可扩展、可重复的农田环境数据监测与远程灌溉系统。