APP下载

基于LoRa的户外农业监测系统的设计

2021-01-18陈仕林张景浩戴子正邓鑫铭

现代计算机 2020年32期
关键词:中间件低功耗上位

陈仕林,张景浩,戴子正,邓鑫铭

(广东第二师范学院计算机科学系,广州510800)

0 引言

随着物联网在智慧农业的不断深入,环境监测和控制在温室种植中已逐渐得到推广和应用,多数温室大棚种植中,都会配备加热装置,基础采样装置,部分专业能力十足的温室管理技术中同时会配备水肥一体机、电场等中小型设备,以提高作物产量与品质。在本课题中,其主要方向是针对国内更为广泛的室外开阔的田野、果园种植的环境监测,以监测数据提供生产者实现对生产环境的简单调控的管理依据。

1 LoRa介绍

LoRa是一种由Semtech公司于2013年发布基于Sub-GHz频段的低功耗广域网通信技术,。作为一种低功耗远距离通信技术,较低的数据速率不仅延长电池寿命,更是增加了网络的容量。这使得它仅需要一节锂电池即可实现长续航的工作。在LPWAN诞生之前,应用于物联网的通信只能在远距离与低功耗之间做取舍。对比早期物联网应用所使用的ZigBee、GPRS等,其更低功耗,更远传输距离,对建筑的穿透力更强的特性,使得LoRa更适用于如智慧农业、智慧工业、智慧城市等低成本大规模的物联网部署。

2 系统设计和实现

2.1 程序架构

本系统是以LoRa技术为通信基础,将各个适用于农业环境监测的传感器集成于一个终端,通过LoRa星型组网制作成一个传输距离远,功耗低、稳定性强的监控系统。传感器采集作物生长的局部地区的环境信息,通过采样终端进行处理,然后发送到上位机,上位机将数据处理并存储于数据库中,用户通过桌面端的可视化程序进行监控。该系统的采样终端设置有两种方式。①通过采样终端上的按钮和互动指示灯完成配置;②通过上位机中的中间件程序远程对采样终端进行控制,从而形成生产环境采集及控制系统。系统总体框架图如图1所示。

图1 系统总体框架图

2.2 采样终端设计

本系统综合STC 8051、STM32F103C8等多款主控芯片对比分析,最终选择STM32F103C8T6作为主控芯片。STM32F103C8T6是一款高性能的ARM架构Cor⁃tex-M3内核的32位微型控制器,其程序存储容量高达64KB,工作频率高达72MHz,供电范围在2V-3.6V,工作温度在-40℃到85℃。STM32F013是一款性能强大的嵌入式芯片,其具有丰富的外围设备资源,如ADC、脉冲调制、DMA、内部温度传感器,支持多种协议如I2C、SPI。不仅如此,STM32F103C8T6还支持低功耗模式,分别由Stop模式、Sleep模式、Standby模式,用户可根据不同的应用场景、唤醒周期和是否具备外部唤醒信号源来选择进入不同的低功耗模式。经分析,STM32F103C8T6芯片能有效满足本系统设计所需的资源,故选用其作为本系统的主控方案[3]。

系统以STM32F103C8T6作为主控核心板,外围电路包括电源滤波电路,太阳能锂电池充放电电路,太阳能锂电池测试电路,升压电路,ModuleBus 485电路,实时时钟电路,以及调试按钮和指示灯。电源滤波电路主要为了降低波纹电路,减少噪声,避免对传感器的信号造成干扰,太阳能锂电池充放电电路用于给终端的供电锂电池充放电保护,升压电路分为3.3V升压电路和12V升压电路,3.3V电路主要用于给适用于3.3V的模块进行供电,如AD采样的模块,DHT11温湿度传感器以及LoRa通信模块,12V升压电路用于给RS-485模块供电,ModubleBUS485电路主要是将串口输入输出改为RS-485输入输出,实时时钟电路为系统提供准确的时间信息,以防锂电池供电不足时,系统时间丢失,按键和指示灯用于现场调试,便于监测终端的工作状态。采样终端原理图如图2所示,采样终端实物图如图3所示。

图2 采样终端原理图

图3 采样终端实物图

2.3 采集子系统

采样终端首先经电脑端烧录入程序,然后硬复位执行。初次执行过程主体分为对系统的时钟进行初始化,对外围设备进行初始化,进入低功耗模式。当触发第一次访问时,会通过通信模块发送初始信息,然后等待上位机的响应,上位机中间件程序收到该采样终端的信息时,会检查数据帧的(从零开始)第十七位和十八位的信息,如果是原始信息则会分配一个数据库中未分配的ID给该采样终端,并通过响应帧发回给采样终端,响应帧中包含新设定的采样周期,新的设备ID号;上位机会周期性向所在信道和地址中发送重传指令,避免下位机陷入由于未完成初始化而长期等待上位机ACK的死循环中。当采样终端完成初始化后,根据设置的采样周期,定时向上位机发送采样周期数据,每次采样终端数据发送都要求上位机返回响应,才会进入低功耗模式,等待下一次周期唤醒。程序流程图如图4所示。

图4 采样终端程序流程图

当采样终端上电复位后,首先会对外围设备进行初始化,配置好系统时间和采样周期后就进入休眠。当触发RTC闹钟唤醒系统或者按键中断唤醒后,重新初始化系统时钟后开始执行采样任务。采样任务分别为对需要3.3V供电的传感器和对需要12V供电的RS-485传感器进行采样,为实现低功耗需求,每完成一项采样任务后会及时对传感器组的电源进行断电。采样并将数据处理完毕即及时发送数据帧,并等待上位机的响应帧,响应帧中包含操作码。数据帧结构如表1所示。

2.4 通信子系统

据上文介绍可悉知,MQTT、DDS等协议都是建立于TCP/IP之上,且各具特色,胜任于多种场景下的工作。然而,在本系统的应用中,受限于户外条件的供电不确定性影响,对功耗的控制要求远超过多数物联网应用,故在COAP协议的思想上,提出一种剪裁版的COAP协议。系统的电量主要损耗于低功耗模式下的待机工作、指示灯、传感器的工作、通信模块的数据发送。其中通信模块的数据发送电流高达300MA。由此可见,要实现设备的更长续航,减少采样终端的数据发送次数。上述众多物联网通信协议其多数建立于TCP/IP协议,需要完成三次握手,假设使用上述协议完成数据的接收与发送,将会使得功耗会增加,而单独靠采样终端无面向连接定时发送,又存在采样终端会受环境、供电问题变为隐藏站的可能,致使终端在网络中消失,或是多个终端发送的数据时候的导致的冲撞现象,使得上位机未能成功接收个别终端所发来的信息,造成信息丢失问题。故基于TCP/IP协议的物联网通信协议与无面向连接的通信协议不可取。故根据采样终端和上位机工作的流程和特性,对COAP协议进行修改。当采样终端完成数据采集和发送数据时会向上位机发送一个COAP协议的CON类型请求,不过该CON类型请求中是携带有数据的,请求目的是确认自身还存在于网络中,然后采样终端会进入局部低功耗的工作模式,仅将采样数据暂时存储在寄存器并等待接收模块接收上位机的ACK响应。正常工作下,上位机收到CON类型请求后,经确认无误将会发送一个类似于COAP类型的响应帧,该响应帧中包含操作码等功能设置,采样终端收到响应帧将会根据帧内容进入对采样周期、唤醒时间、采样设备的设置或进入低功耗模式,断开所有外设、系统时钟供电,等待实时时钟的唤醒再重新初始化所有外设和系统时钟;非正常工作情况有两种,第一种上位机未收到数据,第二种下位机未收到响应。当第一种情况时,由于终端与上位机经初次通信后,上位机保留有终端的采样周期,故当约定时间下,上位机未收到终端信息,上位机将主动向频道内发送重传指令,要求违约终端重新发送数据,若多次重传指令未能寻找回违约终端,将由人工介入完成对终端设备的检查工作。当处于第二种情况时,下位机未能收到上位机的所发送的响应帧,此时违约方为上位机,下位机将会再次向频道内发送数据,然后继续等待上位机发送的响应帧。上位机违约时,下位机并不会一直重传等待,当违约次数达到一定时,终端将会直接依照之前设定的唤醒周期进入休眠,等待下一次唤醒。经验证,部署合理的环境下,终端的通信发射次数减少,终端续航得到提高。流程图如图5所示。

2.5 显示子系统

上位机软件设计包含处理字节流数据的中间件设计、存放数据的数据库设计以及用于数据可视化的软件设计。

表1

当上位机接收模块接入上位机后,中间件程序则会打开端口扫描并绑定上位机模块端口,随后将监听是否有采样终端进行访问,当监听到有字节流进入时,先对字节流进行长度判断,数据有效性判断,随后对其发送响应帧,可完成对采样终端的再配置以及对数据的接收。中间件完成对原始字节流数据的接收后,将其从十六进制数据转换为十进制数据,由于光照强度的范围在0-200000,在数据帧中只占有两位,故采样终端需要对光照强度的采样值进行简单压缩,以及由中间件完成数据还原,并将处理好的数据插入至数据库中,完成对数据的存储工作。中间件程序流程图如图6所示。

图5 通信流程图

图6 中间件程序流程图

本系统的可视化软件仅使用到一张数据库表,其表内数据包含索引主键ID、信息接收时间、设备ID、采样周期、温度、湿度、土壤温度、土壤电导率、光照强度、土壤酸碱度、电池电量信息。

可视化软件是通过C#开发的桌面应用软件,软件通过对MySQL数据库的数据访问,将数据存储于一个缓存中,在图形界面中显示,从而完成了数据和代码分离。其效果图如图7所示。

3 实验分析

3.1 传感器测试

图8为采样终端对温湿度传感器的数据访问返回结果,返回数据空气湿度为0x02 0x77,换算后为631,除以10后可得空气湿度为63.1%RH,空气温度为0x00 0XE8,换算后为232,除以10可得空气温度为23.2℃。即温湿度传感器初始化、读写访问等功能经测试无异常。

图7 可视化软件效果图

图8 温湿度传感器数据返回结果

图9 土壤酸碱度传感器PH值数据返回结果

图10 土壤温度数据返回结果

图9和图10与图8的计算方式相同,通过对第五第六位数据进行从十六进制转10进制后除以10,便可获得有效数据。

3.2 通信模块收发测试

对比图11与图12的数据发送和接收内容,数据发送与接收一致,通信模块测试完成,测试结果表明通信模块工作正常。

图11 终端发送数据内容

图12 上位机接收数据内容

3.3 系统软件测试

本次测试通过上位机重置设备采样周期的小时、分钟、设备编号,F1为操作码,FF为帧头。采样终端接收并设置完后,并返回设置后的结果。由图13中的收发数据表明,该功能有效。

图13 上位机设置终端操作图

图14为上位机对下位机重传测试。通过上位机向终端发送的响应帧阶段,发送重传指令,并能成功接收重传数据,测试结果表明该功能有效。

图14 下位机对上位机重传指令响应

图15 中间件数据处理测试

图15为数据流入中间件时处理前后的结果,其中“FF 02 63 00 F0 00”等是终端发送的原始数据,数据类型为16进制。经过中间件处理得到基础信息和采样信息,并由中间件完成数据的存储操作。存储结果如图16所示。表明中间件功能测试成功,结果有效。

图16 存储测试图

图17 数据显示测试图

当图15和图16的操作完成后,数据将会在可视化软件中实时显示,图17的黄色标记为空气湿度的实时值。表明可视化软件的实时性测试成功,且结果有效。

本次检查终端的采样周期是否与设置值匹配,经图18中的数据表明,20为采样周期(分钟),第二列为数据接收时间。对相邻两次时间做差对比,其采样周期的误差在10秒内,该时间主要受传输距离、传输速率影响。故本次测试成功,结果有效。

图18 周期采样测试结果图

4 结语

随着人们对智慧城市、智能家居等物联网应用的认识提升,将物联网应用落地于工业生产、农业生产中的需求量也逐渐提高。由此更低功耗、更稳定的、适用范围更广的农业低功耗监测系统对智慧农业的发展有着重大意义。文中描述了基于LoRa的户外低功耗监测终系统设计,通过嵌入式技术将多种不同协议的传感器集成在一起,用以实现对户外农业生产中的环境数据采样,并将数据经一系列处理后,通过LoRa上传至上位机接收模块,由上位机的中间件完成数据的处理和存储任务,最终在应用中完成数据可视化。这一系统的设计和开发,有助于生产者在降低人力成本的同时,还能第一时间内了解作物生长的环境情况,更高效的对作物的生长过程进行干预,为作物产量、品质提供有利的保障。

猜你喜欢

中间件低功耗上位
一种高速低功耗比较器设计
RFID中间件技术及其应用研究
特斯拉 风云之老阿姨上位
基于VanConnect中间件的设计与开发
“三扶”齐上位 决战必打赢
基于ZigBee和VC上位机的教室智能监测管理系统
以新思路促推现代农业上位
中间件在高速公路领域的应用
ADI推出三款超低功耗多通道ADC
IDT针对下一代无线通信推出低功耗IQ调制器