张 滔,范芸菲,王思嘉,张 洁
(四川农业大学 信息工程学院,四川 雅安 625000)
农作物的生长离不开土壤,土壤地表温度、土壤水分直接影响玉米[1-2]、萝卜[3]、马铃薯[4]等作物关键时期的生长发育。通过对土壤信息的采集与分析,干预土壤温湿度变化,为作物创造最佳的土壤环境以期提高作物产量[5]。
我国正在加速建设农业物联网,感知层作为系统基础,通过感知技术完成海量农业信息的收集是农业信息化不可缺少的环节[6]。我国西南地区由于地理环境特殊(山区较多,地形复杂),导致农业物联网发展水平低下,基础设施薄弱[7-8]。因此,发展物联网技术,将无线传感网络应用到农业物联网中十分必要。方圆等[9]通过ZigBee无线传感网络,以STC51单片机为控制器完成对棉田土壤环境信息的监控。张慧颖[10]设计了ZigBee无线传感器节点,通过3G网络将数据发送至上位机。万雪芬等[11]运用LoRa节点和蓝牙技术,实现了对果园、温室大棚内环境数据、机电设备数据的感知。本文设计了一种基于NB-IoT技术的无线传感器终端,充分了发挥NB-IoT网络覆盖面积广、功耗低等优点[12],已满足了西南地区复杂地理环境下农业物联网的感知需求,实现了对农耕地土壤环境的稳定监测,可将数据存储在数据库,展示在交互界面,以帮助农户、政府科学规划农作时间。
传感终端和远程数据管理中心共同构成该监测系统。各传感终端单独工作,由独立的电源供电。监测模块主要由微控制器、传感器以及NB-IoT模组构成。云服务器作为数据管理中心,管理NB-IoT网络传输的数据,将数据存储到数据库,展示在Web页面上。监测系统结构如图1所示。
图1 农田土壤监测系统结构
传感终端在空闲时刻处于睡眠状态,通过高精度时钟以闹钟方式唤醒,在规定时段采集土壤环境信息,并通过NBIoT模块将数据发送到云服务器。服务器接收的数据包括土壤含水量、土壤表面温度、土壤表面湿度、NB-IoT网络信号、传感器采集数据时间以及传感终端工作时间。
综合考虑设备的功耗、集成度以及农场的土壤环境,自行设计传感终端,实物如图2所示。
图2 传感终端实物
为检测土壤中的含水量,选用工作电压为3.3~5 V的YL-69土壤湿度传感器。其优点是体积小、功耗低、稳定性高,对土壤湿度的灵敏度高、测量速度快、滞后量小[13]。该模块引出4个引脚,分别是VCC、GND、D0以及A0。VCC和GND用于模块供电;D0为阈值触发信号输出引脚,当湿度小于设定的湿度值时,输出高电平;A0输出模拟信号,通过单片机内部的模数转换器将其转换为数字信号,其数值与土壤含水量成反比。
选择SHT20数字传感器测量土壤表面温湿度信息。SHT20数字传感器是一款含I2C接口的低功耗复合温湿度传感器。传感器包含1个电容式相对湿度传感器、1个带隙温度传感器以及1个模数转换器。出厂时校准数字信号,湿度测量范围为0~100%RH,分辨率达0.04%RH,温度测量范围为-40~125 ℃,分辨率达0.01 ℃。温湿度模块共引出4个引脚,分别是VCC、GND、SDA和SCL,通过I2C协议将采集的温湿度信息以数据包形式传输至单片机。
系统采用中移物联网公司出品的单频M5310-A模组,其内核为海思Hi2115芯片,集成有AT指令集,在PSM模式下耗流仅为3 μA。NB-IoT模块共引出8个引脚,包括电源引脚、串口引脚以及硬件复位引脚。
串口引脚用于与微控制器进行串口通信,完成数据的发送以及对AT指令的应答。当程序混乱或出现异常时,微控制器对硬件复位引脚拉低超100 ms,使M5310-A模组复位。
设备在农田长时间工作,使用可充电锂电池提供3.3~4.2 V电压。为保证各模块正常工作并降低功耗,供电系统分为3部分,分别给主控芯片、传感器及NB-IoT模组供电。
采用合泰公司出品的HT733-1低压差低静态电流稳压芯片为微控制器提供3.3 V直流电源。在STM32L151处于待机模式时电流仅为0.9 μA,电源通过静态功耗为2.5 μA的HT733-1芯片为主控模块持续供电,RTC时钟作为闹钟唤醒源工作。电源通过RT9013稳压芯片为传感器提供直流电源,同时RT9013的工作状态受主控模块控制。在设备睡眠时,RT9013停止工作,处于关闭状态,电流为0.7 μA;当设备需要采集传感器数据时,RT9013正常工作,为传感器提供3.3 V直流电压。M5310A工作电压为3.2~4.2 V,NB-IoT模块采用锂电池供电,以减少线性稳压器带来的电源损耗。
设计终端软件时,除数据的正常收发流程外,还需要考虑异常数据的处理以及配合硬件设计达到低功耗的要求。
传感器上电后采集环境信息,由于电压短时间的不稳定以及农田环境的干扰,导致数字传感器采集的数据发生跳变,出现异常数据,可采用软件滤波的方式提高数据的准确性[14]。中位值平均滤波算法实现简单,剔除数据中的最大值和最小值后对剩余数据取平均值即可。
在对大量数据进行处理且受干扰的数据较多时[15],提出在每100个数据中剔除10个最大值和10个最小值,再对剩余数据求平均值后采用中位值滤波算法。在本系统中,每次设备唤醒后传感器模块连续采集15次数据,将其分为3组,即每5个数据一组,对每组数据进行冒泡排序,取中间值,即剔除2个最大值和2个最小值,然后对所有中间值求算术平均值。主要代码如下:
上述代码中,DataBuff存储连续采集的15次数据,通过冒泡排序将其分为有序的3组,存放在二维数组DataSort中。
取出3组数据中每组数据的中位值,并对其求平均值,得到滤波后的数据,代码如下:
NB-IoT芯片主要采用eDRX技术和PSM技术降低功耗,PSM模式适用于时延性要求低、终端寿命要求长的场景,且相对于直接关机,芯片在PSM模式下依旧附着网络,被唤醒后无需重新驻网[16]。
该系统用于农田土壤环境监测,实时性要求不高,但要求寿命超过一年,因此NB-IoT模组大多时间处于PSM模式,以降低功耗。微控制器通过串口发送AT指令控制NB-IoT模块的工作状态。
NB-IoT模块工作流程如图3所示。首先发送任意指令唤醒PSM模式下的NB-IoT芯片,完成驻网、查询信号、查询时间、建立连接、发送数据等任务,一次数据发送完成后进入空闲模式,如果空闲时间超过5 s,则表明所有数据已发送完成,立即进入PSM模式等待下一次唤醒。NB-IoT模块中,设置的TAU周期定时器时间[16-17]为12 h,通过微控制器发送指令唤醒NB-IoT模块。
图3 NB-IoT模块工作流程
NB-IoT网络以CoAP协议接入搭建有EMQ的云服务器,完成数据发送。EMQ消息服务器支持完整的物联网协议,能够承载海量物联网终端设备的接入,实现对各传感终端的管理,同时通过多种认证方式提高数据的安全性。
EMQ一方面将设备ID、NB-IoT网络信号、网络时间、土壤信息存入MySQL数据库中,为第三方应用或者农田土壤研究提供数据支持;另一方面将土壤信息展示在物联网应用开发工具Node-red中,以灵活的方式展示数据。
为进一步验证传感终端的功耗以及稳定性,在四川省雅安市四川农业大学农场进行了试验。在萝卜地部署3个传感终端,间隔500 m,使用2 000 mA·h锂电池供电,将土壤湿度探头插入土层25 cm处,温湿度传感器置于土壤表面,每个传感终端一天采集6次数据,时间点分别在早晨、上午、中午、下午、夜晚、深夜,数据采集、发送后,系统立即进入睡眠状态。
系统连续工作一个月,在MySQL数据库中查看各区域、各时间段的终端数据,表1为某天设备1的统计结果。测量的设备睡眠时的电流以及锂电池输出电压见表2所列。测试表明,主控模块工作稳定,能够在规定时间被闹钟唤醒,并开启传感器模块,唤醒NB-IoT模块,传感器完成对土壤环境数据的采集后,NB-IoT获取网络时间并发送数据至服务器,无异常数据;工作一个月后锂电池电压下降小于0.18 V,寿命能达到6个月,满足了设计需求。
表1 设备1各时间段土壤环境信息
表2 各设备供电信息
本文将NB-IoT技术与传感器结合,自行设计传感终端电路,以低功耗方式完成对农田土壤环境的监测。经验证,传感终端能够按需采集数据,完成对土壤含水量以及土壤表面温湿度信息的监测,并通过NB-IoT网络传输至服务器,成本低,体积小,部署方便,工作稳定,寿命长,为西南地区感知农场需求提供了具体途径和方法。接下来,将在传感终端加入如光照、土壤pH等传感器,组成传感器阵列,进一步实现对农机设备的控制与对农田环境的远程调节,满足智慧农业的需求。