基于Arduino与Blinker云平台的农业物联网系统设计

2022-01-06 06:40陈淑花
武汉工程职业技术学院学报 2021年4期
关键词:传输层应用层联网

郝 刚 陈淑花

(武汉城市职业学院 机电工程学院 湖北 武汉:430064)

0 引言

随着科技的发展,信息化技术在农业中的应用已经从零散的点的应用发展到全面应用。信息的有效利用使得农业生产系统、农业管理系统、农业市场系统、农村生活系统等农业系统的运转更加有效、智慧。物联网技术的发展促成了智慧农业的诞生。

智慧农业跟现代农业和传统农业存在着很大不同,智慧农业是农业开发与生产中的高级阶段[1-2],它集节点、互联网、GPS、GPRS、云计算、云存储以及现代新兴物联网技术为一体,可以很方便地实现对用户对农作物生长现场环境或者农产品的全方位监测、管理,对建设现代化高水平智能农业有着重要意义。郝雅洁等基于农业物联网搭建的水肥一体化灌溉系统,既能提高灌溉利用率、节约水资源,又能提高作物品质,改善生态环境[3]。李道亮认为5G与数字农业的融合给智慧农业的发展带来新的机遇和挑战[4]。冉彦中等选用Arduino和raspberry实现农业物联网,利用Arduino进行数据采集,利用raspberry进行网络连接,开发APP上位机[5]。毛敏、赵云娥等选取Arduino作为数据采集端,利用Labview开发上位机实现远程智能农业监控系统[6-7]。智慧农业的物联网系统还可以精准采集农业苗情、墒情等相关信息[8]。本文设计了一套农业物联网系统方案,依托5G移动互联网和物联网新兴技术,实现了农业生产和环境监测的自动化与智能化。

1 农业物联网系统总体架构

结合目前主流信息架构,农业物联网系统设计总体架构分为感知层、网络层和应用层三层[9],系统总体架见图1。

图1 农业物联网系统总体架构

(1)物联网感知层:感知层对于物联网系统而言,类似于人类的感觉器官,主要是用于识别物体并进行信息采集,负责对农田环境重要的参数进行采集。优选适用于农业工程应用的常用、稳定、可靠的传感器,实现低成本多传感器系统。

(2)物联网网络层:中间传输层位于物理感知设备和上层应用系统之间,负责采集物理数据并进行过滤解析以及处理,形成有效的信息传给上层应用,即将各种传感器传回来的模拟信号通过Arduino把这些转换为数据进行上传。考虑农业工程中现有的4G无线网络和未来5G应用中实现覆盖,因此选用WiFi作为传输层网络。

(3)物联网应用层:现代农业管理者通过手机端或电脑网页Blinker登录系统,实时掌握农田环境参数和农作物生长情况,同时Blinker后台可以设置自动控制系统,实现农业生产的自动化与智能化管理。

系统总体架构的层次化设计,使得各层次的功能更加明确,同时各层次之间又能高效的交互和传递信息。依托此架构逐层实现从硬件到软件的设计,最终实现农业物联网的设计与应用。

2 多传感器数据采集系统设计

多传感器数据采集系统的目的主要是采集农业现场的气象环境信息、土壤实时墒情、大气环境信息等参数数据,为决策提供依据。气象环境信息和大气环境信息可以通过搭配不同类型的智能型传感器实现对空气温湿度、光照、二氧化碳浓度、风速、风向、气压等实时采集[10]。土壤墒情监测系统主要负责采集土壤环境信息,包括土壤水分、土壤温度等环境信息采集。

针对多传感数据采集系统部署和应用的需求,选取传感器如表1所示。

表1 多传感器数据采集系统传感器介绍

DHT11型温湿度传感器是常用的、已校准的数字型传感器,测量湿度精度范围±5%RH,测量温度精度范围±2℃,具有高速精确的特点。在硬件电路设计上,DHT11型温湿度传感器供电电压范围3.3V-5.5V DC,采用单总线协议,串行通信。

SGP-30型数字气体传感器是第一款单一芯片集成多传感器的金属氧化物气体传感器,能够提供二氧化碳和挥发性有机化合物的测量。

BH1750型环境光强度传感器是16位数字输出型传感器,测量光强度范围1 lx-65535 lx,具有精确高速的特点。在硬件电路设计上,BH1750型光强度传感器供电范围2.4V-3.6V DC,采用两线式串行总线。

DS18B20型温度传感器是常用的已校准的数字型传感器,考虑到农业信息采集的环境,选用铠装型DS18B20型温度传感器,测量温度精度范围±1℃。在硬件电路设计上,DS18B20型温度传感器供电电压范围3.3V-5.5V DC,采用单总线协议,串行通信。

YL-69型土壤湿度传感器是常用的模拟量传感器,利用插入土壤探针的阻值变化转换成为土壤湿度值。在硬件电路设计上,YL-69型土壤湿度传感器供电范围3.3V-5V DC。

多传感器接入Arduino UNO R3主控板,该主控板的数字I/O口和模拟量I/O口能够满足以上五类传感器的接入,同时能够提供3.3V和5V的供电电源驱动传感器。

3 基于Arduino和ESP8266物联网传输层设计

农业物联网系统采用 Arduino UNO R3作为主控板和ESP8266作为传输层的核心[11]。Arduino是以 Atmege单片机为控制核心的单片机控制板,其中 Arduino Uno R3的处理器核心为 Atmega328,具有14路数字I/O口,其中6路可用作PWM输出,另外具有6路模拟I/O口。Arduino UNO R3具有串口通信、I2C通信和SPI通信接口,能够满足农业物联网所需的数字量、模拟量信号采集处理和信号的通信。在软件开发上,Arduino具有成熟的硬软件库函数,能够实现快速的软件开发。

WiFi通信模块ESP8266是乐鑫公司推出的一款廉价、超低功耗功能丰富的WiFi芯片,支持SPI、I2C、UART等方式进行通信。UART通信时,可直接支持AT指令,大大简化开发难度。ESP8266WiFi通信模块是目前工程应用中较为成熟的组网模块,具有丰富的端口资源,满足多种类型信号传输。ESP8266与Arduino的串口通信易于实现且通信稳定。在系统开发方面,Arduino拥有ESP8266库资源,使用时直接调用库函数即可,简化和优化开发流程。

基于Arduino和ESP8266物联网传输层设计一方面满足农业工程应用中相关信息的传输,另一方面满足农业作业现场的远程控制,如图2所示。未来应用中,通过物联网数据的传输,依托云存储技术,能够储存农业生产的相关数据,实现农业作业的数据化和农产品的可溯源管理。

图2 农业物联网数据流

大型农村和农业合作社的种植模式一般分为大面积温室群种植和露天种植,两种模式下部署农业物联网节点的方法不同。对于大面积温室群,温室内可设置网络节点,单个无线网关节点的WiFi传输信号传输距离不超过200m,一种方式可以设置ESP8266为AP模式作为节点网关,单个节点网关的ESP8266最多可以连接8个ESP8266节点,建立分布式网络节点,另一种方式可以采用成熟的AP路由器作为节点网关,多个ESP8266接入节点网关。从物联网传输层稳定性的角度考虑,成熟AP路由器作为节点网关稳定性好,可拓展性强,交互友好,更适用于温室群物联网传输层。对于露天种植,针对距离传输远的情况,可以采用成熟AP路由器作为节点网关的方法,也可以采用ESP8266通过软串口,连接NB-IoT通信模组或者LoRa通信模组的方式传输数据。由此完成底层数据采集,并通过ESP8266的WiFi通信,通过网关节点实现数据的汇总和上云,依托数据可视化在应用层展示。

4 基于Blinker物联网应用层设计

农业物联网系统使用 Blinker作为物联网接入方案。Blinker是一套跨平台、跨硬件的物联网解决方案,提供手机APP端设备端、服务端支持,能够与公有云服务进行数据传输存储[12]。

为了对接Arduino和ESP8266,Blinker提供Arduino的连接支持库,能够方便实现接入。使用Blinker. begin()函数来初始化WiFi设置,并连接网络广播设备信息,等待APP连接。Blinker. run()函数需要频繁调用以保持设备间连接并处理收到的数据。手机APP通过定时向设备发送心跳包,设备收到心跳包后会返回设备当前状态。如果用户有自定义状态需要在收到心跳包时返回,可调用 Blinker. attach Heartbeat()函数。设备建立后,APP会立刻发送心跳包,此后每30s~60s发送一次,监测数据随心跳包发送至云平台。虽然手机客户端不能实现实时监测,但是更新的频率能满足农业监测的基本需求。下面是Blinker私有云端口连接核心代码:

void setup(){ Serial.begin(9600); BLINKER_DEBUG.stream(Serial);//开启debug BLINKER_DEBUG.debugAll(); Blinker.begin(auth,ssid,pswd);//连接wifi Blinker.attachData(dataRead); Blinker.attachHeartbeat(heartbeat);//心跳包 Blinker.attachDataStorage(dataStorage);//云端数据 Blinker.setTimezone(8.0);//时间 SW.attach(SW_callback); HL.attach(HL_callback); //DELETE.attach(DELETE_callback);}

在应用层设计方面,Blinker提供了一套物联网设备开发API,其封装了不同平台的底层代码,极大地方便了开发者。在手机APP开发上, Blinker提供了自定义布局来让开发者定制自己的APP操作界面(见图3)。而且Blinker可以同时读取多台Arduino的数据,实现快速开发、分布式控制和远程管理。

图3 农业物联网系统Blinker云平台

在系统集成应用中,将各类传感器布置在农业工程现场的固定区域,Arduino和ESP8266作为硬件控制的核心,设置防水防尘外壳,并采用太阳能供电系统对主板进行供电。

Blinker应用层针对用户的实际传感器部署需求和远程控制的需求,利用自带开发工具开发上位机APP。利用移动互联网,实现手机APP的发布,在APP端可以远程查看系统数据,另外也可以远程操作,控制相关的农业设备工作。为测试系统集成应用效果,对农业物联网系统开展实测。

5 小结

针对农业物联网系统的设计,本文提供了从农业信息采集的传感器选型与物联网感知层的构建,到以WiFi为载体的传输层的搭建,最后到以Blinker云平台为核心的物联网应用层部署的完整解决方案。并且,通过基于Blinker云平台的农业物联网与农业设施设备的交互实现远程控制,实现从采集到控制的闭环管理和数据可视化。该研究在科技助力乡村振兴的目标下,为农业物联网的应用、智慧农业的研究提供新的研究思路。

猜你喜欢
传输层应用层联网
“身联网”等五则
《物联网技术》简介
《物联网技术》简介
基于Python语言的网络传输层UDP协议攻击性行为研究
ZnO电子传输层在有机无机杂化钙钛矿太阳能电池中的应用
抢占物联网
物联网无线通信传输层动态通道保障机制
基于物联网GIS的消防智能巡检系统设计与实现
基于分级保护的OA系统应用层访问控制研究
物联网技术在信息机房制冷系统中的应用