APP下载

果园灌溉物联网实时监控系统的研制与试验

2020-11-29曾镜源洪添胜洲1

华南农业大学学报 2020年6期
关键词:模组果园终端

曾镜源,洪添胜,杨 洲1,,李 富

(1 广东省山区特色农业资源保护与精准利用重点实验室,广东 梅州 514015; 2 华南农业大学 工程学院,广东 广州 510642; 3 嘉应学院 计算机学院,广东 梅州 514015)

我国柚、橙等柑橘类果园主要分布在广东、江西和广西等地山区,其水肥灌溉作业由人工现场操作逐步向离线定时控制[1-3]、物联网在线远程监控[4-6]等现代农业方向发展。随着技术的发展,设备的精细监控、故障检测、果园设备的兼容性和网络部署等方面均在不断完善,以适应智慧果园和市场需求[7-9]。

云服务、云计算、物联网、大数据、3S等为代表的信息技术,被广泛应用于农业各领域,促进农业的现代化。其中物联网能获取最直接的现场数据和控制现场设备,为农业现代化提供基础数据[10-13]。农业物联网局部信息传输技术主要有ZigBee、433 MHz无线射频、Bluetooth、Wi-Fi等,远程传输依托运营商网络[5,9,14]。低功耗广域通信网(Low power wide area,LPWA)是面向物联网中远距离和低功耗的通信需求技术,主要包括窄带物联网(Narrow band internet of things, NB-IoT)、增强型机器类型通信 (Enhance machine type communication,eMTC)、长距离 (LoLong-range, LoRa)通信、SigFox等,具有覆盖广、功耗低、成本低、连接稳定的特点,其中,NB-IoT和LoRa因在功耗和传输距离方面有明显优势,成为推广应用的主要技术[15-16]。现阶段运营商用NB-IoT来布置物联网,其上报数据至云平台方面有优势,但其信号覆盖有限,需要通过LoRa扩展其覆盖范围。

农业物联网会受农业环境影响,如墙体厚度及材质、作物高度、地形地貌、田间遮挡物、气候等,在应用中需要研究和整合相关技术,以适应农业场景的需要。本研究依据果园灌溉需求,整合2种物联网通信新技术,在原有灌溉控制系统的基础上,对通信技术和检测电路等重新进行了设计,通过传感器采集土壤、空气和设备运行状态等相关信息反馈给云平台,使平台全面掌握灌溉所产生的细微变化,从而提升灌溉的精细化水平,起到节能减排、简化网络部署和节约成本等作用。以期系统既能满足灌溉需求,又可兼容果园其他传感器和设备,为农业生产和农产品信息溯源提供数据通道。

1 系统总体架构设计

系统总体框架包括现场设备、无线网络和云平台设计。整体系统依托电信的NB-IoT平台(EasyIoT开发者云平台,简称公有云),实现终端与私有云服务器(简称私有云)的数据传输。果园局部数据传输采用LoRa扩展NB终端的无线覆盖范围,也为灌溉作业提供实时的反馈信号。依据果园实际需求,设计了如图1所示的整体系统架构。

图1 果园监控云平台总体架构Fig. 1 Main architecture of cloud platform for orchard monitor and control

总体架构中,北向系统主要由云服务器、PC和智能手机上的APP构成,南向系统主要由负责与基站通信的通信终端模块和与具体设备或传感器相连的执行机构构成。通信终端根据NB-IoT基站信号是否覆盖,配备NB-IoT或LoRa通信模块,具体实践中,将通信终端与执行机构以通用接口的形式整合成一体。

1.1 南北向系统设计

对精细化果园管理系统业务需求的分析表明,通用系统需要满足系统管理模块化、设备类型分类化、系统容量最大化等要求[12,17-18]。对产品以研发和管理的最小功能单元划分,最小单元以模块(包括软件和硬件模块)通过通用接口加载到系统,在硬件上采用通用电路板设计,在软件上只需要更新固件,可减少设计研发及维护成本。

山地果园日常事务主要有浇水、施肥、虫害监测、喷洒农药等[19]。果园终端的功能是可模块化的,其中通信模块是所有终端都必需的,用于数据的收发。指令执行模块和传感器模块是可选的,根据需求进行选配。在原有的滴灌控制研究基础上,本研究采用新的物联网和互联网技术,为传统果园设备、数据采集和智能设备设计监控终端,以期为果园设备控制和数据传输提供便利。终端内部功能框架图如图2所示。

图2 终端内部功能框架图Fig. 2 Inner block diagram for terminal

终端样机的主要功能有数据通信、继电器控制、异常检测与上报、定位、终端设备编号、常用传感器数据采集、输入输出隔离、设置信息掉电存储、PC机设置、提供通用接口等。

1.1.1 南向终端关键电路设计 终端的主控微处理器选用STM32F103(功耗要求高时用STM32L151替换),通信模组选用移远BC95-B5。其中通信模组内部LDO输出的DC 3V为微处理器供电。模组的RESET引脚连接微处理器的GPIO引脚,再用3 V的电压上拉,实现硬件复位。新注册设备、重设连接的服务器、修改通信模式(eDRX或PSM)或需要重新获取基站时间时,需要对模组复位,也可用AT指令对模组复位。

终端电路集成了通电检测、电池电压检测和复位电路(图3)。图3a中PWR_BAD信号连接微处理器的GPIO口,检测5 V电源是否正常。当采用AC 220V为系统供电或USB供电处于正常供电状态时,此信号应为高电平,据此判断供电是否正常。ADC_BAT_V检测锂电池电压,供Easy IoT的固件代码回调使用,每次上传数据时,自动将终端的电量信息上报。令微处理器从ADC口的读数为D,依据图3a电路和欧姆定律,锂电池电压(VLi)计算公式为:

EasyIoT平台上报的电量是按百分比来计算的,所以折算后的上报值(Y)为:

锂电池电量与电压是非线性关系,所以实践中对检测精度要求较高时,可以采用查表法来实现,即根据D值查表得到电量值,然后将电量数据传入电量回调函数,上传至计算机服务器后台。

微处理器与BC95的复位电路分开设计,因为特殊情况下微处理器需要单独复位,如果同时复位BC95,需要较长的时间与基站重新建立连接,也增加了连接次数。为加快重启速度和减少连接次数,本研究将微处理器与模组的复位引脚分开,通过微处理器的GPIO引脚与模组的复位引脚相连,由微处理器的程序控制GPIO去复位模组。

从用电安全和用户习惯角度考虑,外部电源只有部分时段才能提供,其他时段通过锂电池供电,故需要有供电、充电及整流电路(也称LDO)(图3b),其中用5 V电压与电源模块或USB的供电引脚相连,通过TP4056实现对锂电池的充电管理。利用二极管D6、D8和D10结电压压降,将5 V降压后直接给模组供电,这样当锂电池出现故障时,只要外部电源有电,则整个电路板就能正常供电。无锂电池时,VBAT处电压不稳定,特别是模组收发数据期间,电压下降至3 V左右,但实际测试时,发现此电压的波动并不影响数据收发的稳定性。

ME6206A33为LDO,输出3.3 V供微处理器及外围电路使用。因为BC95可以输出3.0 V,LDO为可选部分。D2为5.1 V稳压管,可防止外部输入电压过高烧毁内部芯片。泵房以外的温度、湿度、土壤含水量等传感器模块采用原有的太阳能模块供电,输出到锂电池接口,由BC95模组的LDO输出3 V供系统其他部分使用。

果园泵房的基本功能是抽水、浇水和施肥。将浇水和施肥通过混肥装置进行一体化设计,以达到更好的效果。果园现场测试时发现,电网电压不稳定是山地果园普遍存在的问题,部分地区波动范围为170~240 V,电机也有可能出现故障,果农或果园管理人员无法确认远程设备的运行状态,如电机是否启动、电机有没有损坏和电网电压是否正常等。

在执行终端中加入电量计量电路以获取果园(特别是泵房)用电设备运行的精确状态,可以精确监控功率、电压、电流和电量。监控页面可图形化显示当前的功率和电压,依据这2个参数的动态变化,管理人员可以判断远程设备是否有故障,甚至可以根据文献[20]分析出引起故障的原因。电量检测功能电路如图3c所示,此电路需双路隔离电源,其中一路供给处理器等低压数字电路部分,另一路电量供检测芯片HLW8032使用。

滴灌和混肥装置常用电磁阀实现水管的开关控制,电磁阀需要采用H桥电路/芯片实现双向控制,其控制信号的脉冲宽度由CPU决定,以兼容不同的电磁阀。

图3 终端关键电路Fig. 3 Key circuit for terminal

微处理器(Microcontroller unit, MCU)的串口负责与BC95-B5、HLW8032、PC或LoRa模块进行通信,另外还需要提供I2C和SPI等常用的外设接口,以提高终端的兼容性。终端MCU的主要外设接口如图4所示。

图4 终端MCU主要外设接口Fig. 4 Main interface for terminal MCU

继电器和电量检测电路负责对泵房电机抽水、浇水和施肥等作业进行监测和控制,检测作业功率、电压、电流等参数。终端内控制板与通信模组等集成设计,简化接线、方便测试和批量应用。此外,终端还实现了电机开关控制、蓝牙通信、MOS驱动和光耦隔离等,完善了微处理器与外围设备的交互。1.1.2 终端固件的兼容性改进 通信终端(含NB终端和LoRa终端)设计要考虑兼容已有设备。果园已有设备包括各种传感器和智能设备,对外提供UART、SPI和I2C等常见硬件接口,通过修改已有设备的固件程序,可以实现数据兼容。山地果园滴灌作业需要检测的主要指标有土壤含水量、温度和湿度等[2]。

终端开发基于EasyIoT的开源库,其终端固件与平台的数据交换采用CoAP协议。公有云与私有云之间的数据交换采用JSON协议交换。为解决果园终端数据的多样性,在由LoRa组成的局域网之间进行数据传输,在NB终端内设计了在CoAP协议内嵌JSON数据的方式,实现从终端至私有云服务器的数据交换,而LoRa终端直接采用JSON数据格式[21-22]。本研究采用cJSON开源代码实现,但由于STM32F1/L1系列处理器的SRAM大小和处理性能的限制,需要对cJSON源代码进行修改,以提高效率。

通信终端提供3种常见接口:UART、SPI和I2C,将已有设备的数据输出格式修改为JSON格式,经UART通道,即可完成数据上下行传输。传感器改造后网络结构如图5所示。

嵌入开发通信终端的内部固件程序流程如图6所示。

图5 已有设备传感器和设备改进Fig. 5 Sensors and device improvement of existing equipment

图6 固件程序流程图Fig. 6 Flow chart of firmware

终端收到的平台数据,经cJSON解释后,数据格式与PC机指令格式保持一致,需要测试相关指令时,直接由PC机发送相同的指令,方便离线调试。固件运行相关的信息也通过串口发送到PC机,PC机通过串口助手可实时了解系统运行状态。

固件还有数据掉电储存功能,将用户设置的参数存储在Flash内。

1.1.3 北向应用云平台设计 EasyIoT的Java开发包,采用HttpClient开发包与平台连接,数据采用JSON数据交换协议,其中JSON采用fastJSON进行编码与解码。

系统整体主要由上报数据、发送指令、权限控制、数据解析等模块构成。项目初期选择租用云服务器部署项目,云服务器使用Ubuntu系统,运行MySQL、Redis、Tomcat等软件。不同的模块组合成不同的子系统,主要功能包括数据收集、视图、服务调用和单点登录等。云服务器开放不同端口运行不同的子系统,为提高系统性能,使用Nginx软件实现子系统集群。网页系统功能如图7所示。

图7 网页系统功能框图Fig. 7 Function block of web system

2 系统测试

2.1 终端测试环境搭建

为便于批量测试终端设备的运行情况,本研究采用40 W电灯模拟泵房的水泵和灯光等需要继电器进行开关控制的设备(终端的继电器为AC 220 V/10 A,最高可带2 200 W负载),用于测试数据收发、电学参数检测、传感器数据传输和解释、电池待机时间、终端稳定性等项目。测试板上安装10套终端设备,持续测试和观察终端的可靠性,也方便查找故障。控制指令由远程服务器发送或本地计算机通过串口线模拟远程数据发送。本地计算机模拟远程指令发送,加快指令测试效率、减少连接次数。PC机通过USB转UART串口适配器,连接终端微处理器的UART口,具体端口见图3通信终端的主控微处理器电路图。BC95-B5与微处理器的UART2连接,而PC机的适配器与微处理器的UART1连接,微处理器程序解释串口指令时,两路的串口数据输入到同一个串口指令解释函数,实现PC指令与远程指令同等作用,但来自PC的指令可以即时响应,起到加快调试的作用。能够收发串口数据的软件就可以实现对此终端的测试。

2.2 JSON数据格式解释测试

在STM32F103C8T6处理器上,分别基于Janson与cJSON对JSON数据进行解释。因Janson在Keil里提供,而cJSON来自JSON库的源代码。测试{"foo": 42, "bar": 7},其中将Heap_Size改为0x1800时,测试生成和解释串:{"foo": 42, "bar": 7}。Janson可以成功生成并解释32次,第33次出错。cJSON可以成功生成并解释44次,第45次出错。JSON测试结果表明,Janson与cJSON对JSON数据的生成次数有限。但2个库函数对JSON串解释未测试到上限,所以本研究设计的终端设备,JSON串改用宏定义生成,生成时间约为cJSON方法的10%,而解释采用cJSON库。生成和解释的测试程序流程如图8所示。

图8 JSON串生成与解释测试Fig. 8 Test for generating and parsing JSON string

大部分设备10年内解释次数不超过20万次,因此测试程序以此值为终止条件。PC观察的测试结果表明,本研究的JSON串生成方法满足设备长期运行要求。

2.3 HLW8032数据标定试验

功率计量芯片HLW8032出厂时已经过校准,但由于电路中的采样电阻等电路中的元器件值存在误差,所以对于要求较高的场合,需要再次进行校准。本研究设计使用的元器件,测量功率分别为13和200 W的设备,实测值比标称值高约10%。电量计量值校准方法如图9所示。

图9 计量值校准框图Fig. 9 Block diagram for meterage value calibration

利用图9的校准方案,测试结果如图10所示。由图10可以看出,测试功率与实际功率可以拟合为过原点的直线,测试误差来自电学参数检测和隔离电路芯器件的参数,拟合的决定系数为0.999 8,拟合的线性公式为:

为减少工作量,对于同一批次的元器件,测试1次拟合直线的斜率即可用于推算实际功率。

图10 功率标定测试结果Fig. 10 Power calibration test result

2.4 功率变动上报试验

通过功率计量芯片对输出功率进行监控,当功率变动幅度超过阈值时,终端及时自动上报状态。典型应用是果园灌溉系统,果农远程发送或预先设置了电机启动,配合湿度传感器上传的信息,果农可以确定正在作业的水泵有没有启动、功率是否在正常范围内、灌溉是否成功等。

周期性上报数据能够观察到长时间跨度的状态变化,但设备启动/停止或突然发生故障时需要即时上报,以便云平台即时做出响应。加权递推平均滤波法为经典的软件滤波算法,可以有效地消除异常的瞬时值对信号计算带来的影响。采用中值滤波法去除噪声,并在规定时间内不重复上报同类型功率突变状态,通过这种方法,可以在有限的上传次数内,及时上报数据。

本研究基于加权递推平均滤波法设计了滤波分析公式,即是否上报的计算公式:

式中,Xn为电学参数检测电路在前n个时刻检测得到的值,Xn={x[-n+1],…,x[-1],x[0]};Xm为在前m个时刻检测得到的值,Xm={x[-m-k+1],…,x[-1-k+1],x[-k]};Xc为集合Xn去掉其中的最大值[即max(Xn)]和最小值[即min(Xn)]2个元素而形成的集合,故Xc为n-2维;Xo为集合Xm去掉其中的最大值[即max(Xm)]和最小值[即min(Xm)]2个元素而形成的集合,故Xo为m-2维;Wc为n-2维行向量,n>2;T是阈值;Wo为m-2维行向量,m>2;k为历史数据序列偏移量;当Y=1时,判定为异常状态;当Y=0时,判定为正常状态。相关参数可远程设置,以增加滤波算法的通用性。

果园现场设备受干扰的随机性强、时间跨度大,且受上报次数的限制,因此,以果园设备直接测试对功率变动的响应速度不现实。为测试功率变动的有效性,本研究测试了1个标称功率为13 W的负载和1个有多档(200、600和1 200 W)的负载。为方便测试,式(4)取n=6,m=4,忽略功率不变的时间段,得到2种功率曲线(图11)。

不同负载对应不同阈值,图11a、11b分别选取5和50 W时,可以在150 ms内检测出异常,而分别取10和150 W时,可以在100 ms内检测出异常,即在时间段内实现即时上报。果园现场测试发现,由于山地果园电网的不稳定以及其他干扰的存在,平台监测到的上报次数较多,而短时间内同性质故障信息重复上报无意义,所以需要限制短时间内同类故障上报。本研究中采用的上报数据的方案为:1)周期性上报:忙时间隔15 min/次,闲时间隔60 min/次;2)设备启动与停止时各上报一次;3)功率变动异常时上报一次,同类型异常在规定时间段内不重复上报。

终端设备可以检测出异常的状态,云端也可检测异常数据。由于周期性上报数据时将常用的状态上传到云端,云端将当前状态与数据库内的历史数据对比,可检测到异常,并做出响应。通过试验选定相关参数,有效的减少连接次数、节约资费。

图11 不同负载下的功率曲线Fig. 11 Test curve of power under different loads

2.5 功耗测试

试验测试时,将终端供电、充电和LDO电路的锂电池接口串联万用表的电流测试端口进行电流测试。

试验测试结果(表1)表明,终端功耗主要由控制板待机功耗和NB-IoT模组唤醒后的功耗组成。根据STM芯片文档,降低微处理器主频可降低功耗,在满足所有日常计算的情况下,主频降至1~2 MHz可以满足正常计算和控制操作。考虑到处理能力的冗余,设定微处理器最低主频为2 MHz。

每次收发数据的状态持续20 s。出于安全考虑,泵房需要抽水时才供电。抽水泵通电时,充电电路给锂电池充电。在不充电情况下,按上报频率200 mA·H锂电池,实际工作时长为24 h,考虑到工程冗余,300~400 mA·H锂电池可以满足正常工作需求。

表1 功耗测试Table 1 Power consumption test

换用STM32L151的微处理器,200 mA·H电池实际工作时长为4 d,是STM32F103的4倍。

3 结论

本研究整合NB-IoT和LoRa技术,设计了山地果园现场监控终端和远程云平台,是农业大数据建立数据采集和远程传输的基础,简化了系统部署,解决了NB-IoT覆盖盲区的问题。

电学参数检测电路结合参数异常检测算法,实现即时异常状态上报,并将上报次数限制在每年2万次,可在150 ms内检测出异常状态。将JSON数据解释和生成分开实现,在内存受限的微处理器中实现JSON数据生成和解释20万次以上。对检测功率进行标定,其中功率的线性回归预测决定系数(R2)为0.999 8。通过电路低功耗设计和降低微处理器主频等,终端配200 mA·H锂电池可满足常规工作需求,采用低功耗微处理器可以进一步延长工作时间。在满足计算和控制需求的前提下,2 MHz的微处理器主频和200 mA·H锂电池可以满足果园灌溉系统计算和持续工作的要求。

本研究采用的物联网新技术、电学参数检测电路、终端JSON数据格式和滤波算法,解决了在有限连接次数下的即时上报问题,并延伸了物联网的覆盖范围。这些技术的有机整合具有较强的创新性、扩展性和兼容性,可以延伸较多的综合应用。

猜你喜欢

模组果园终端
天、空、地一体化“未来果园”看一下
秋天的果园
复杂线束在双BCI耦合下的终端响应机理
移远通信:以利润换市场
X美术馆首届三年展:“终端〉_How Do We Begin?”
基于融合架构的多路服务器系统架构设计
光学薄膜技术及在背光模组中的应用研究
基于声波检测的地下防盗终端
果园
浅谈石墨烯材料在LED路灯模组中的应用及该模组的设计