基于NB-IoT的花椒生长环境因子监测系统*
2021-07-15梁裕巧李洪兵罗洋康云川宋小令向伟
梁裕巧,李洪兵,罗洋,康云川,宋小令,向伟
(1. 重庆三峡学院计算机科学与工程学院,重庆市,404120; 2. 重庆市梁平区农业农村委,重庆市,405200; 3. 重庆市江津区农业农村委,重庆市,402260)
0 引言
近年来,花椒产业飞速发展,并已经成为许多地区主导产业。据统计,截至2019年底全国花椒主产区种植面积达1 118.27 khm2,年产干花椒42.2万t。其中西南地区四川、云南、贵州和重庆等省市栽种面积达691.93 khm2,年产27万t,分别占全国58.2%和64%。重庆市江津区种植九叶青花椒面积达36.67 khm2,产出鲜花椒28万t。花椒种植已成为全区农产品种植的主导产业,由于花椒种植面积大、区域分布散导致花椒管理粗放、监测不精准,设计一套基于利用窄带物联网(NB-IoT)技术的花椒生长环境监测系统,以无线传感技术、计算机技术和无线网络通信为技术支撑,实现对花椒生长环境实时数据采集传输、处理、分析[1-3]。国内外许多研究人员开展了对相关作物生长数据监测的研究。韩团军[4]利用ZigBee和WIFI技术结合设计了一套针对山区农田环境监测系统,通过ZigBee和WIFI协议转换将农田环境数据发送到Web服务器进行显示;许伦辉等[5]基于ZigBee和GPRS技术实现农田区域气象远程监测;施苗苗等[6]利用ZigBee和GPRS多网络融合构建底层采集无线传感器网络(Wireless Sensor Networks,WSN)采集农作物生长信息。
以上研究利用ZigBee、GPRS、WIFI等多种网络通讯技术融合实现了数据传输,虽然基本实现了对作物生长数据的监测,但组网能力还存在不足。ZigBee网络衍射和穿透能力较弱,在复杂的花椒种植环境中,一旦有阻碍物遮挡,其组网通讯能力将不复存在,在规模化的花椒种植条件下,组网相对复杂,节点容易出现故障;GPRS调制方式技术已经陈旧,网络传输速率低,传输时延较高,数据在传输过程中容易出现丢包现象,不利于花椒生长数据的实时无缝上传;WIFI技术传输距离较短,适用于智能家居环境,很难满足山区花椒种植设施的组网通信需求,也很难实现对花椒生长情况的远程监测。通过对组网通信技术的指标进行分析,在花椒的生长数据的监测应用中,以上通讯方式均存在弊端。因此,提出一种基于窄带物联网(NB-IoT)的花椒监测系统以满足花椒生长环境的自动化监测,适应于花椒规模化种植需求。系统通过NB-IoT通信模块将采集的数据传输至物联网云平台,物联网云平台通过HTTP协议传送至手机端。用户可通过物联网云平台对花椒生长数据进行实时监测和管理,通过手机端实时查看数据和进行系统决策[7-15]。
1 NB-IoT技术特点
NB-IoT是NB-CIoT和NB-LTE融合形成的一种新型广域低功耗窄带物联网通信方式,使用License频段,可采取带内、保护带或独立载波等三种部署方式并与现有网络共存,采用蜂窝数据传输,极大简化了网络部署结构,NB-IoT网络通讯传输采用一站式传输平台,无需进行数据中转,在数据传输方式有极大的便携性。NB-IoT具有以下特点:一是覆盖增强,与GPRS比较NB-IoT覆盖增强20 dB,其中上行功率谱密度提升7 dB,重复编码增益重复2~16次增益3~12 dB,而覆盖增强用于提升覆盖深度和覆盖概率;二是海量连接,一个NB-IoT网络理论上支持10万个设备连接,占空比低,小数据包采用低频率传输且时延不敏感;三是低功耗,一个NB-IoT网络节点电池寿命最久达10年;四是低成本,NB-IoT采用单天线半双工通信,单片SoC内置功放降低的产品成本,协议栈简化减少片内FLASH/RAM节约了开发成本。因此,利用NB-IoT窄带通讯技术可作为花椒数据监测传输介质并实现数据高速远程通信传输。NB-IoT网络基本架构如图1所示。
图1 NB-IoT网络基本架构
2 系统整体结构
系统架构按照物联网分层模型设计为感知层、传输层、平台层和应用层。感知层主要包含前端检测节点,节点内置空气温湿度、土壤温湿度、光照强度、二氧化碳浓度等传感器,实现对监测区域空气和土壤环境参数的检测;传输层主要包含NB-IoT远程蜂窝网络通信,将前端节点采集到的数据通过NB-IoT传送至云服务端;平台层为采用B/S架构的NB-IoT物联网云平台,底层设备通过TCP/IP、UDP网络通信协议直接接入云服务平台,云服务端对数据进行分析与处理;应用层通过HTML和APP给予用户操作界面,用户可通过网页或者APP实时远程查看数据,对数据量设置阈值,系统进行数据处理后实现预警与智能反馈调节作用。系统可实现花椒种植环境实时监测、远程查看、分析与预警等功能,其系统体系结构如图2所示。
图2 系统体系结构图
2.1 系统硬件设计
2.1.1 感知层电路单元
系统感知层硬件采用STM32L151C6单片机为核心处理器,该款处理器工作电压范围为1.65~3.6 V,唤醒时间只需8 μs。因低功耗而被广泛应用于工业、农业、楼与自动化等场所,其处理器内核基于ARM©Cortex©-M3 CPU大大减少了功率损耗。除此STM32L151C6还包含7个DMA通道控制器,8个外围通信接口并支持串行线调试和JTAG及跟踪。土壤墒情监测采用MS10型号的三脚直插式电容式土壤水分传感器(Capacitance Sensor,CS),性能较优,可监测环境复杂偏远区域,3.3 V电压驱动、4~20 mA电流输出,检测灵敏度极高。空气温度以及土壤湿度监测采用应用广泛的DHT11型温湿度传感器,湿度采集精度为±5%,温度采集精度为±2%,其响应快、稳定性高、低成本等特点满足系统需求。二氧化碳检测采用MH-Z19B传感器,3.3 V电压驱动、量程为0~5 000 ppm、精度为±(50 ppm+5%读数值)。当地区域海拔与压强采用MPL3115A2传感器,1 Hz采样模式下功耗仅为8.5 μA、待机功耗仅为2 μA,超低功耗的特点十分适合系统户外使用需求。光照监测采用BH1750光照传感器,具有精度高、响应时间快等特点。BH1750和MPL3115A2传感器与MCU采用IIC通信、MH-Z19B与MCU采用USART通信、DHT11和MS10与MCU采用ONE-WIRE单总线连接通信。感知层核心电路图如图3所示。
图3 感知层核心电路图
2.1.2 NB通信模组硬件单元
NB通信模组主要承担了数据上传与命令下发,通过STM32与NB通信模组结合对其进行控制,通过SIM卡信息读取和匹配状态,最后传输至物联网云端,控制中心通过网络协议解析实现系统远程数据查询决策。本次花椒生长花椒监测系统通信模块采用了BC28芯片作为核心处理器,BC28芯片采用第三款LPWA模组,支持多种频段,且在Multi tone模式下最大上行速率可达62.5 kbps,BC28能兼容GSM/GPRS系列的M26模块,让用户使用方便快速灵活。
2.2 系统软件设计
2.2.1 STM32与NB模组通信
本系统采用KEIL MDK5集成开发环境进行STM32程序的编写与编译,并通过Jlinkv9开发工具对系统进行在线调试与程序烧录。STM32与NB-IoT模组之间采用USART通信,NB模组有两种上云通信协议:UDP和CoAP协议。系统采用CoAP协议进行配置通信,设备MCU将采集到的数据经处理后通过NB模组发送请求到指定的CoAP服务器,然后NB模组接收来自CoAP服务器的数据,对数据进行解析并将结果发送至串口缓存,MCU通过USART进行数据读取。
通过配置CDP服务器,设置CoAP服务器地址端口:AT+NCDP=<117.60.157.137>[5683],设置CoAP发送确认功能使能:AT+CoAPRPY=1。设置串口显示AT+NNMI=1。设置串口显示有三种状态:当设置为1时,会同时受到数据并显示;设置为0时,通知和显示同时关闭;设置为2时,串口仅收到通知。配置使能完成,方便MCU与NB模组的通信与调试。STM32与NB模组CoAP通信模式如图4所示。
图4 STM32与NB模组CoAP通信模式图
2.2.2 NB模组与平台建立对接
NB模组与电信物联网云平台建立对接,进入物联网云平台开发者中心创建NB-IoT项目自定义各种设备类型,根据页面弹出的信息框选择CoAP协议类型,编写Profile文件并增加属性来描述设备类型和设备服务能力。开发完 Profile 文件后可以在平台界面上以图形化的方式完成设备与平台之间的消息映射。平台中集成了多种编解码插件模板,开发者可以根据所需设备类型开发修改各种编解码插件,节约开发时间,通过部署插件与Profile文件建立对于关系测试设备是否上传和下发各种十进制参数。NB模组与云平台对接流程如图5所示。
图5 NB模组与云平台对接流程图
2.2.3 数据传输
NB模组与平台对接成功,并将底层各种传感器采集数据通过MCU串口以AT命令发送到NB模组,NB模组底层发送的数据接收并通过payload自动封装成为CoAP协议发送至物联网云平台。系统采用CoAP协议包并根据对应的设备Profile文件匹配插件,对模组发送过来的payload进行解析,最后就数据储存到云平台。在实际硬件设备中,使用前需提前注册设备,使用串口调试助手以AT指令获取模块唯一IMEI号,执行AT+CEREG?指令查看注网是否成功,若返回0或1表示成功。注网成功分为两步上传数据:第一步是使用AT+NCDP指令配置服务器地址,设备接入可看到IP地址117.60.157.137:5683(CoAP)。第二步使用AT+NMGS指令发送指令数据。NB模组上传数据核心程序如下。
uint8_t connect_CoAP(char* serve_ip)
{
char temp[64]=”AT+NCDP=”;
strcat(temp,serve_ip);
strcat(temp,”5683”);
if(!BC28_send_cmd(temp,”ok”,100))
}
数据传输基于标准的Modbus RTU协议进行了扩展开发,采用16位CRC校验,数据请求传送一帧为21个字节,即168 bit,数据帧组成为:设备号+功能码+寄存器起始地址+寄存器单元长度+字节数+数据+CRC校验。
2.2.4 数据采集
花椒种植管理相对粗放,土壤和水分含量影响其生长速度和结果率。其生长基本条件有:温湿度、光照度、土壤水分,海拔高度。该系统采集模块包含空气温湿度监测、光照度监测、海拔高度和土壤湿度监测部分。系统感知层主控芯片统一采用STM32L151C6,BH1750光照传感器通过IIC总线指令进行测量,测量模式分为两种:一次测量和连续测量。DHT11温湿度传感器采用单总线接口协议对空气湿度与土壤湿度进行测量,土壤体积含水率测量范围20%~95%,空气湿度测量范围为20%~95%。MS10土壤墒情传感器采用IIC总线协议对土壤湿度进行测量,测量范围为0~100%,测量精度可达到0.1%。MPL3115A2传感器通过IIC总线对当地海拔和压强进行测量,直接读出数字信号。ZH-Z10B二氧化碳传感器通过PWM/USART对空气二氧化碳含量进行测量,读出原始数据信息后进行数据补偿。
3 监控中心设计
监控中心设计分别采用Web端云平台和手机App设计,用户可远程进行数据监看与控制。监控中心服务资源采用基于NB-IoT的物联网云平台,该平台为底层传输提供安全可靠的数据报送、数据存储等,用户无需购买传统硬件设备、数据库等中间件,下位机采用Modbus RTU(CRC16)协议完成部署通信,基于开发SDK,可通过有人云API进行二次开发,完成数据统计、分析与预测操作。云平台监控大屏界面图如图6所示。
图6 云平台监控大屏界面
手机端开发采用Eclipse免费开源开发工具,且Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。手机端通过HTTP协议和云平台进行通讯,也可以调用开放的API接口控制设备和下发命令。物联网云平台收到的数据也同时推送至手机端实时查看当前数据。APP运行流程如图7所示。
图7 APP运行流程图
4 系统测试分析
4.1 节点部署与能耗计算
在花椒监测过程中,为避免NB-IoT节点部署大面积散乱,数据传输冗余。而大部分地区地形复杂,花椒种植分布不规则。针对NB-IoT节点在田间节点能耗消耗过大问题,采用非均匀节点部署。分别假设部署区域为(A)正方形,NB-IoT网络基站(S)部署在(A)的中心,NB-IoT节点(K)以基站(S)为中心点,呈圆环形式部署在基站周围。以S为中心,将整个A区域内的圆环分别标记P1,P2,P3…PN。其NB-IoT节点部署模型如图8所示。
图8 NB-IoT节点部署模型
基站(S)与节点(K)之间的数据通信采用多路衰减能量模型,已知基站(S)与节点(K)之间的通信距离为d时,节点发送len比特数据所消耗的能量
(1)
式中:Eelec——收发数据所消耗的能量;
Eamp——放大器能量消耗。
K节点接收数据所消耗能量
Erx(len)=lenEelec
(2)
其中,d0取值为50 m,Eelec取值50 nJ/bit,Eamp1取值10 J/(bit·m2),Eamp2取值0.001 3 pJ/(bit·m4)。
设置节点间发生数据包的长度为len比特,当节点按照均匀分布在监控区域中,并组成(S)到节点之间的距离为直径2r。在数据收集中节点所消耗能量
Enormal=len(Eelec+Eamp1r2)
(3)
计算处于第P层圆环中的节点总能耗
Es(P)=lenNnormal(k)Eelec+lenNC(Eelec+
Eamp2(kr)4)
(4)
式中:Nnormal(k)——圆环区域内节点个数;
P——圆环区域层。
通过分析计算,非均匀部署能有效活跃冗余节点个数,优化节点采集能力且节约能耗周期。在分析测试过程中与传统均匀节点部署相比,仿真结果如图9所示。
图9 节点部署分析对比
仿真结果表明:当节点模块正常传输时,采用传统均匀节点部署方式其网络生命周期会随着节点区域长度的变化而逐渐减少,且节点部署距离在100 m和200 m时,网络生命周期呈现阶梯式下降;而采用非均匀节点部署时,各个节点发挥最大优势,节点网络生命周期随着节点区域长度逐渐平缓上升,最终达到网络生命周期1 000轮的峰值。
4.2 系统实地测试
系统搭建完成后,在江津区某花椒种植基地完成实地测试。同一片区域内分别布置节点1、节点2、节点3、节点4,每个节点分布与基站距离不同,且安装距离基站分别为50 m、100 m、150 m、200 m。通过不同距离对节点传输性能、传输时延进行测试。系统参考QN-QX5便携式农业环境检测仪所测得的参数为标准值,将系统各节点测得的数据与标准值进行比较。节点分布如图10所示,安装距离基站为50 m、100 m、150 m、200 m的节点,如表1、表2、表3、表4所示分别为截取同一时刻的实时监测数据。
表1 节点1实时测试数据Tab. 1 Real time test data of node 1
表2 节点2实时测试数据Tab. 2 Real time test data of node 2
表3 节点3实时测试数据Tab. 3 Real time test data of node 3
4.3 试验结果与分析
本系统性能测试主要分为硬件测试、信号传输测试以及传感器采集信息功能测试。将节点应对如图10进行部署,通过传感器节点进行数据采集,并发送到IoT云平台。设置节点上传周期为30 min,每帧发送数据包大小为168 bit,在IoT云平台进行数据收集与查看,将接收到的数据与节点所发送的数据进行分析得出丢包率,统计周期为30 d。经测试,节点1、节点2、节点3、节点4在50~200 m范围丢包率为0.15%以内。在郊区测试距离为5 km时,丢包率为0.35%以内,测试距离超过10 km时,丢包率为0.85%以内,除去稳定的近距离100 m内范围,0.1~10 km范围内平均丢包率为0.35%,具有非常良好的通信可靠性。IoT云平台正常接收底层传感器传送数据,将接收的数据进行云存储并加以分析。NB-IoT远程无线传输数据通信测试如表5所示。
图10 系统节点分布
表5 NB-IoT远程无线传输数据通信测试Tab. 5 Data communication test of NB-IoT remote wireless transmission
5 结论
本文以花椒生长环境监测为背景,研制出一套基于NB-IoT窄带通信技术的花椒环境因子监测系统,并将系统进行实地测试,得出以下结论。
1) 系统采用非均匀节点部署方式进行监测,通过系统建模分析计算得出采用节点非均匀部署与传统节点均匀部署方式相比,节点能量消耗逐渐降低,有效地延长了节点网络生命周期。
2) 针对系统性能测试,将各个节点分布在不同距离和区域实地测试,并抓取数据传输丢包率,当通信距离在0.1~10 km范围内平均丢包率为0.35%;当大于10 km时,丢包率为0.85%,该系统能较好的完成各项监测任务,达到了预期效果。
3) 采用基于NB-IoT的物联网云平台进行远程监控,直接通过API接口进行连接,避免用户进行二次开发,大大降低了系统研发成本。总的来说该系统能有效完成花椒生长环境的监测,并提供了一种智能采集、远程传输的技术手段,为花椒栽培的种植大户提供了决策和参考。目前,该系统运行于重庆市某花椒示范种植场地,运行效果良好,深受相关行业部门的好评,满足大规模化的花椒种植需求。