基于Wi-Fi的农业环境数据远程监控系统研究
2021-08-28徐识溥胡雯雯吴颖静王运圣
刘 勇,徐识溥,胡雯雯,吴颖静,王运圣
(上海市农业科学院农业科技信息研究所,上海数字农业工程与技术研究中心,上海201403)
随着信息技术和网络技术的发展,近几年兴起的物联网技术正在各行各业中得到越来越广泛的应用,其中就包括在农业生产上的应用[1-6]。物联网是诞生于互联网基础之上的,是对互联网的扩展,它将计算机网络扩展为物-物相联的更大的通信网络。在扩展联网对象的同时,也依然要接入传统互联网,而接入互联网的方式目前主要有三大类:有线的以太网、基于移动运营商基站的无线接入方式(GPRS、4G、5G等)、以及以Wi-Fi为代表的无线局域网接入。农业物联网作为物联网技术的一个应用分支,除具有物联网技术的共性特征之外,还有为适应农业生产这一特殊的应用环境而产生的特殊性,比如联网方式。由于农业生产环境通常都地处偏远,有线以太网具有不适用性,所以,基于移动运营商基站的无线接入方式成了首选,只要有手机信号覆盖的地方,就都能应用这种方式。因此,目前农业物联网的组成结构大多是由现场采集或控制设备加上一个带流量卡的DTU(Data transfer unit,数据传输单元)组成,但随着通信政策的改变以及应用场景的扩展,其固有缺点也逐渐暴露出来。
农业物联网的组成结构因其接入互联网的便利性而大为流行,但是,近年来随着Wi-Fi网络的普及,结合作者多年的应用经验,对比之下其缺点也越来越明显。首先,移动基站接入方式需要消耗流量费,虽然流量单价不高但随着节点数量的增多也将造成不小的开支;其次,由于近年来电信诈骗案件的增多,国家加强了对流量卡的管控,开卡手续更加繁琐;最后,这种接入方式除了流量卡之外,还需要相应通信模块的支持,而模块的价格也需几十元或数百元。反观Wi-Fi,其不需要消耗运营商流量,模块单价只需要几元到十几元,除此之外,Wi-Fi网络的覆盖范围也已扩大到触手可及的程度,其在工业生产上已有了多方面的应用,但却鲜见农业生产上Wi-Fi的应用[7-10]。目前,越来越多的设施农业基地或者农场均实现了网络覆盖,或者只需增加几台无线路由器即可实现Wi-Fi信号覆盖,而且Wi-Fi设备都是基于IEEE 802.11系列协议的,可与手机、笔记本电脑等设备实现无障碍连接,基于Wi-Fi的农业物联网在使用上也更加便利。随着互联网和智能手机的普及,无线互联网得到极大的发展,其中Wi-Fi网络更是逐渐覆盖各大广场、公园、办公场所等,同样,在温室大棚这种农业设施里也能很方便地实现Wi-Fi网络的覆盖,本研究旨在利用Wi-Fi技术,实现农业物联网温室环境远程监控系统。
1 系统设计
1.1 系统总体架构
温室作为设施农业的方式之一,可使农业生产摆脱自然环境和传统生产条件的束缚,是一种更为高产、优质、高效、安全的农业生产方式。温室技术经历了小棚、中棚、塑料大棚、普通温室、现代化温室等发展阶段,其科技含量和自动化水平不断提高。目前在温室环境监控方面已有一些研究成果[11-16],但在远程控制方面尚有欠缺。本系统针对温室环境的监测和远程控制而开发,主要功能为采集温室的空气温度、空气湿度、光照强度,实时远程传输采集数据,远程控制灌溉水阀、天窗开关、通风、补光灯等。所有远程数据的传输均通过Wi-Fi网络实现,系统总体结构如图1所示。
图1 系统总体结构Fig.1 Framework of this system
以MCU(Microcontroller unit,微控制单元)为核心的本地系统将采集的传感器数据上传给Wi-Fi模块,Wi-Fi模块通过无线路由器将数据发送到云服务器,继而展示给用户终端,本研究开发的用户终端是手机APP,但APP也可以变为电脑客户端、浏览器、微信小程序等多种形式。如果想要调控温室的某个参数,可以通过用户终端将控制命令发送到云服务器,进而通过Wi-Fi网络传送给MCU,从而通过具体执行机构实现对相应环境参数的控制。
1.2 硬件系统架构
硬件系统为基于ARM处理器的嵌入式系统,组成包括STM32F103微控制器、空气温湿度传感器、光照度传感器、ESP8266 Wi-Fi模块、继电器、灌溉阀门、补光灯、排气扇、天窗开闭电机、市电或太阳能供电系统等(图2)。
图2 控制器硬件架构Fig.2 Hardware architecture of this controller
需要特别指出的是,本系统是通过两级继电器实现对温室设备的控制的,由于STM32主控制器的驱动能力最大为5 V(常规3.3 V),所以与主控制器直接相连的是第一级继电器:干簧管继电器可由控制器的IO口直接驱动,控制信号经干簧管继电器进入驱动能力更强的第二级继电器,继而实现对大功率设备的开关控制。本系统还有一个特别的设计,即实时检测被控设备的工作状态,从而了解控制命令发出后对设备的控制是否达到相应的效果。实现方法为在灌溉阀门、补光灯、排气扇等设备电路中加装电流传感器,以检测这些设备是否在工作以及工作是否异常(如电流是否超过额定值),在天窗舵机上加装角度传感器,以监测天窗的开启度,从而判处天窗是否正常开启或闭合。
1.3 嵌入式软件设计
嵌入式软件是运行在微控制器上的固件,本系统中嵌入式软件主要实现传感器数据采集及打包上传、控制命令的解析及功能执行,Wi-Fi接入互联网功能在Wi-Fi模块内部通过编程实现。嵌入式软件使用ANSI标准的C语言开发,为无操作系统的前后台程序,前台程序主要实现串口数据的中断接收,后台死循环执行数据采集和命令解析。嵌入式软件与Wi-Fi模块通信方式为串口透传,故程序设计上无需关注Wi-Fi模块,但是软件启动后要对传感器和串口等其他外设进行初始化,并配置IO口、定时器、中断系统等,本研究主要关注数据采集和控制命令解析与执行的逻辑,即死循环执行的内容,该部分功能的具体实现流程如图3所示。其中需注意的是,若有控制命令下发,则执行完命令后更新传感器数据和相关设备状态;若长时间无控制命令,则系统每隔2 s更新一次传感器数据和设备状态。软件的核心功能在“关键技术”部分进行详细介绍。
图3 嵌入式软件主程序流程Fig.3 Main program flow chart of embedded software
2 关键技术
2.1 Wi-Fi模块配置入网
本研究选取Wi-Fi作为接入互联网的方式,而Wi-Fi入网首先要对其参数进行配置,所以Wi-Fi模块的配置入网是本研究的关键技术之一。“Wi-Fi”这一名称的灵感来源于“Hi-Fi”,是一种无线局域网(WLAN)的接入技术,IEEE 802.11系列协议的别称。Wi-Fi通信的双方需区分AP(Access point,接入点)和Station(站点),本研究中使用的Wi-Fi模块是乐鑫公司的ESP8266,工作在Station模式,相应的无线路由器即为AP。Station要接入AP需要知道AP的SSID(Service Set Identifier服务集标识符)和密码,具体配置过程如图4、图5所示。
图4 Wi-Fi模块配置入网流程Fig.4 Flow chart of configure Wi-Fi module access network
图5 Wi-Fi模块配置入网过程手机截屏Fig.5 Phone screenshot of configure Wi-Fi module access network
出于成本考虑,本研究研发的现场控制设备没有配备按键和显示屏,AP参数的输入需要手机APP来完成,所以配置入网过程的参与对象包括:手机APP、无线路由器、Wi-Fi模块以及图1中的MCU。手机APP首先连接无线路由器,填写相应的SSID和密码,之后由MCU通过串口发送命令,控制Wi-Fi模块进入配置模式,即进入接收UDP广播数据包状态,如图5左侧APP界面所示,点击下一步后APP将配置信息通过UDP数据包发送给Wi-Fi模块,模块提取其中的SSID和密码信息用以连接路由器,此时手机APP如图5中间所示,如果在进度条走完之前连接成功,则Wi-Fi模块发送配置成功数据包给手机APP,如图5右侧截图所示,APP界面上显示新发现的设备,至此配置成功。
2.2 Wi-Fi模块连接云服务器
本研究解决的第二个关键技术即Wi-Fi模块与服务器建立连接,这里所说的云服务器是指运行在云服务器上的服务器端软件,选用的服务器是国内主流物联网云平台之一的机智云,在机智云上创建一款新产品后会分配一个32位十六进制数的产品编号,之后Wi-Fi模块凭此编号进行服务器连接。
连接云服务器涉及的对象包括Wi-Fi模块、MCU、路由器和云端(图6)。该过程由Wi-Fi模块发起,并且在每次上电之后或者掉线之后都自动执行该过程,即Wi-Fi模块首先从MCU处获取产品编号信息,之后使用之前配置好的SSID和密码连接无线路由器,成功之后使用刚刚获取的产品编号通过TCPIP协议与云服务器进行身份验证,验证通过之后即完成与服务器建立连接。为保证设备实时在线,Wi-Fi模块会以50 s的时间间隔分别与MCU和云服务器发送心跳包,如果心跳包超时没有收到回应,则开始一次新的连接过程。
图6 Wi-Fi模块连接云服务器流程Fig.6 Process of connecting Wi Fi module to cloud server
2.3 Wi-Fi模块上报∕下发数据
通过前两小节的研究内容,实现了Wi-Fi模块的配置入网和连接云服务器,在此基础之上就可以实现本系统的核心功能,即数据的上报和下发。对本系统而言,上报的数据主要是传感器采集的温室环境信息以及设备状态信息及发生的事件告警等信息,而下发的数据则主要指用户发送给温室的控制命令。
无论上报还是下发,都需要用户的参与,所以这一过程的参与对象包括手机APP、云端、Wi-Fi模块以及MCU(图7)。当用户打开APP后,APP首先需要与云端建立连接,该过程与Wi-Fi模块连接云端类似,连接之后从云端获取当前在线设备的列表显示给用户,用户根据需要点击关心的设备进行控制或查看。对于数据上报,这个过程是由MCU主动发起的,MCU以2 s为周期进行传感器数据的采集,采集完成后通过串口发送给Wi-Fi模块,Wi-Fi模块再发送给云服务器,云服务器收到后进行存储并转发给手机APP,对于事件告警信息,为保证被及时处理则是发生之后立即上传的。用户想要控制某个设备时,只需在APP上点击相应的按钮,从而触发APP将控制命令上传到云端,云端直接通过Wi-Fi模块转发给MCU,MCU验证通过后进行解析,进而通过继电器实现对相应设备的控制。
图7 Wi-Fi模块上报∕下发设备数据流程Fig.7 Wi-Fi module report∕issue equipment data process
3 数据结构及通信协议
3.1 数据结构
数据结构设计的目的是把采集到的相关数据按照一定的结构组织起来,以便于存储和传输。本系统中传感器数据、控制数据以及状态数据均是以数据点的方式进行定义(表1),每个数据点包含显示名称、标识名、数据类型、读写类型等属性,APP和MCU对数据进行处理时均按照属性要求进行。
表1 系统涉及的数据点属性说明Table 1 Description of data points attribute involved in the system
对于数值型数据点的处理,为减少微控制器的运算量,避免对浮点数的使用,通过公式“y=ax+b”进行变换,公式中x为通信链路中传输的数据,y为APP上显示给用户的实际数据,该公式变换的目的是无论y为小数还是负数,通过公式逆推后保证x始终为无符号整型;公式中参数a即表1中的分辨率,作用是将浮点数变换为整数,参数b为表1中的增量,或称偏移量,其作用是将负数变换为正数。比如传感器测的温度值为-1.87℃(即y=-1.87),按照表1取值:a=0.01,b=-30,则推算出x=(y-b)∕a=2 819,所以MCU只需通过Wi-Fi模块传输无符号整数值2819,用户即可在手机APP上看到当前温度值-1.87℃。
3.2 通信协议
本系统涉及的通信协议种类较多,比如传感器层的I2C协议、485协议、Modbus协议,远程传输的TCP∕IP协议等,以上都是通用协议。这里要介绍的是系统自定义的内部应用层数据传输协议,即MCU与Wi-Fi模块、云端、手机APP等之间进行数据采集和控制时传输的数据包格式(表2)。
表2 控制命令数据包格式Table 2 Packet format of control command
应用层协议采用一问一答方式,每条命令需要由接收方给出ACK应答确认消息,超时时间200 ms,超时后重发,发送3次后不再尝试发送,丢弃该包。数据包默认采用大端编码,即高字节在前,低字节在后(表2)。指令由以下部分按顺序组成:包头(2B,0xFFFF),包长度(2B,命令...校验和),命令(1B),包序号(1B),Flags(2B),有效负载,校验和(1B)。对于控制命令,其有效负载为表2中序号为6、7、8的部分,控制对象标志位有效时才按照控制对象数据值执行相应的控制。
4 应用效果及结论
本研究以STM32F103微控制器和Wi-Fi通信模块为硬件基础,开发完成了一套集传感器数据采集、温室设备控制、设备状态监测等功能于一体的温室环境远程监控系统,成功将Wi-Fi技术应用于农业物联网中,解决了Wi-Fi模块入网、监测数据上传、控制命令下发、心跳包维持在线状态等关键问题,使得原来必须使用GPRS、3G、4G的地方可以用Wi-Fi替代,从而大大降低成本,扩展了农业物联网的应用范围。对于小而分散的设施农业温室大棚而言,使用Wi-Fi进行环境监测具有低成本、可靠、灵活、随时随地用手机查看的优点。系统用户应用界面可以是手机APP,也可以是微信小程序等(图8)。Wi-Fi的高速性和稳定性应用于温室环境的远程控制,可以实现如同在现场按开关一样的流畅体验,实测从APP上控制按钮被点击到被控设备执行相应动作的延时时间,大多数情况下都不到0.5 s。
图8 系统应用界面Fig.8 Application interface of this system
农业生产需要与信息技术结合、与物联网技术结合来提高生产效率和农产品品质。本研究的关键在于将Wi-Fi这一日益普及的无线网络接入技术应用到农业物联网中,实现了对设施农业中温室大棚环境的远程监测与控制,既避免了布线的麻烦,又节省了移动互联网的流量资费,因此可以提高农业物联网的普及度。监控设备可以像手机和平板电脑一样方便地接入Wi-Fi网络,而使用者也可以随时随地拿出手机对温室内的实时环境进行查看和调节,减轻了生产管理人员的劳动强度,提高生产效率,继而促进农业物联网的快速普及。