慕灯聪, 阚 卓, 李 峥, 朱 旋
(淮北师范大学物理与电子信息学院,235000,安徽省淮北市)
我国是传统的农业大国,农业发展离不开肥沃的土地. 如今,土壤酸碱化、板结、水分流失等问题日益突出,严重影响农作物的产量[1]. 因此,能够准确的检测出土壤各项参数,及时了解土壤环境参数信息,对于提高作物产量和倡导精准农业有着深远的意义[2]. 随着电子信息技术的发展,市面上已具有能够测量土壤参数的各种传感器.利用ZigBee组建网络的优点和土壤参数传感器相结合,提出并设计了基于无线传感器网络(Wireless Sensor Networks)WSN的土壤参数测量系统.
基于WSN的土壤参数测量系统,由ZigBee无线传感器网络节点和STM32网关组成,无线传感器网络包括ZigBee采集节点,ZigBee路由节点以及ZigBee协调器[3];STM32网关包含STM32L151RET6核心板、ESP8266 WIFI模块以及M5311A NB-IoT模块[4][5]. 数据采集节点连接土壤温度、湿度、PH以及氮磷钾传感器,负责原始数据的采集与发送;路由节点本身也可以采集并处理数据,除此之外,当终端节点在通信范围内搜索不到协调器节点时,可借助路由节点进行数据的多跳;协调器节点负责无线传感器网络的组建,并维护整个网络的运行,接收采集节点或者路由节点的数据传送给STM32网关,进一步通过NB-IoT或者ESP8266将数据发送给OneNET进行存储、显示,用户可通过电脑端网页或者手机端APP实时查看测量的数据. 系统整体框架如图1所示.
图1 系统总体结构示意图
电源是系统能否稳定工作以及测量参数精度的关键所在,系统硬件需要使用12 V,5 V,3.3 V电压,ZigBee终端节点的工作电压为3.3 V,土壤pH,温度、湿度以及氮磷钾传感器的工作电压需要5 V,考虑到土壤测量市电供电不便的原因,因此设计12 V太阳能供电,方便用户使用. 阳光充足、太阳能板输出电压稳定时,采用太阳能板供电,夜晚或者阴天时采用12 V蓄电池供电,同时预留12 V适配器和12 V开关电源接口,在有市电条件下可采用市电供电. 研究设计采用芯龙公司的XL1509-5.0电源管理芯片将12 V稳压至5 V,设计XC6206P332MR将5 V稳压至3.3 V. XL1509具有宽电压输入(4.5 V~40 V),2 A负载驱动能力,XC6206P332MR最大输出0.5 A电流,二者完全能够满足该系统使用. 设计电路如图2所示.
图2 电源管理模块设计
数据采集节点负责土壤参数的测量、信号的调理与发送. 包括CC2530 ZigBee主控单元、土壤温度、湿度传感器、土壤PH传感器、土壤氮磷钾传感器以及相应的信号调理电路. 同时带有电池电量监测,当采用电池供电时负责监控电池是否处于缺电状态,方便用户实时掌握电池状态;土壤参数测量异常时会发出声光报警,用户可手动关闭报警的开启与否;液晶显示电路采用1.3寸OLED液晶,用于显示土壤参数以及电池电路等基本信息,用户亦可控制液晶显示的开启与关闭从而达到节约能源的目的. 其整体框图如图3所示.
图3 采集节点结构设计
2.2.1 土壤温、湿度电路设计
土壤温度传感器采用防水型DS18B20,其结构可以直接插进土壤里使用,与主控通讯方式为单总线方式,只需占用一个IO口,硬件设计接在CC2530主控模块的P1.5引脚上. 土壤湿度采用电容式土壤湿度传感器,区别于市面上电阻式土壤湿度传感器,避免了极易被腐蚀的问题,极大的延长了使用寿命,其输出为模拟信号输出,接在CC2530的ADC接口P0.6上. 设计电路图如图4所示.
图4 土壤温、湿度检测电路
2.2.2 pH信号调理电路设计
土壤pH传感器选用PR-3000-TR-PH-05,模拟量输出0~5 V,量程为3~9 pH,ZigBee的AD的测量范围为0~3.3 V,因此设计0~5 V转换为0~3 V转换电路,采用2个高精密、低温漂的电阻分压来实现电压信号的转换,电压转换输出后采用LM358设计了电压跟随电路,起到隔离信号的作用,设计电路如图5所示.
图5 PH信号调理电路
2.2.3 氮磷钾电路设计
氮磷钾传感器采用VMS-3000-TR-NPK-N01,插入土壤中可快速测量土壤氮磷钾含量,从而有助于用户判断土壤的肥沃程度,其量程0 mg/kg~1999 mg/kg,响应时间快,精度高,信号输出方式为RS485(ModBus-RTU协议)输出,485芯片选用3.3 V 工作电压的低功耗SP3485芯片,RO和DI端口分别接在ZigBee的P0.2和P0.3引脚上,SP3485输入输出使能端并联接在P1.7引脚上,设计电路如图6所示.
图6 SP3485电路
网关节点以STM32L151RET6作为主控单元,通过串口1(PA9,PA10)和ZigBee协调器进行通讯,接收ZigBee协调器发送的土壤传感器数据信息;串口4(PC10,PC11)和M5311A NB-IoT模块通讯;串口3(PB10,PB11)和ESP8266 WIFI模块通讯. 用户开机时可以通过按键选择使用NB-IoT或者WIFI模块来和OneNET云平台进行通讯,以此来适用于不同的场所. 同时,网关节点本地端也设计了声光报警和OLED液晶显示电路,OLED液晶屏用于显示实时土壤参数、电池电量、各终端节点的在线情况以及NB-IoT的网络状态;当出现参数异常、电量异常、终端掉线或者NB-IoT模块掉网不工作时,会启动声光报警. 结构示意图如图7所示.
图7 网关节点结构示意图
2.3.1 STM32L151RET6主控
网关节点选择STM32L151RET6作为主控芯片,STM32L151RET6是意法半导体公司推出的超低功耗处理器,超低功耗模式电流能够达到280 nA,内部资源丰富,具有512-KB Flash存储器,非常适合土壤参数测量系统网关的设计要求.
2.3.2 M5311A NB-IoT模块
该系统选用M5311A NB-IoT模块,M5311是中移动公司推出的NB-IoT模块,工作电压范围广,常采用3.3V供电,功耗较低,适合电池供电的环境,其内置MTK2625,也支持OPENCPU功能,通讯协议上支持UDP/TCP-IP/HTTP以及MQTT,接入OneNET云平台稳定可靠,协议简单[6].
无线传感器网络的程序设计选择IAR Embedded Workbench软件,采用Z-Stack_2.5.3.1协议栈进行程序的组网、数据的采集和发送等任务. STM32网关板程序开发采用 Keil MDK5集成开发环境,使用较为成熟的库函数进行编程,同时移植了嵌入式物联网实时操作系统RT-Thread,使得任务处理、调度更加流畅. 整个开发过程采取模块化编程思路,分别编写并调试完成了ZigBee组网程序、采集节点数据驱动采集程序、STM32网关程序以及OneNET云平台的搭建.
数据采集节点负责土壤原始数据的采集并处理,主要包含网络的加入,防水型DS18B20的单总线驱动程序,土壤湿度、PH传感器以及电池电量采集的三路ADC初始化程序,氮磷钾传感器的ModBus-RTU协议,串口初始化等程序,主控采集到数据后,判断数据是否异常,如有异常,启动声光报警电路用于警示,反之,则将数据打包发送给ZigBee协调器节点. 其流程图如下页图8所示.
图8 采集节点程序流程图
网关程序主要包含ZigBee协调器程序以及STM32网关程序. 协调器程序负责整个无线传感器网络的组建、维护以及节点的加入等工作. 组网完成后等待节点的加入,加入网络过后则判断是否接收到数据,判断处理数据是否异常,最终将数据通过串口通信发送给STM32网关,程序流程图如图9所示. STM32网关程序,负责接收协调器的数据,驱动NB-IoT模块和ESP8266 WIFI模块,将接收到的数据处理后显示在OLED液晶上、判断是否有异常数据、启动报警,并传输给OneNET云平台进行显示存储,流程如图10所示.
图9 协调器程序流程图
图10 STM32网关程序流程图
一般终端界面设计相对来说是个复杂的过程,需要掌握相应的编程语言,代码一步步调试完善,开发周期较长,但OneNET云平台为用户提供了一套完整的流程,用户注册号OneNET账号,按照要求设置好产品概况、配置完数据点后即可在应用管理界面编辑自己的应用[7]. OneNET云平台给用户提供了拖拉式的控件,设置好属性参数,即可完成界面设计. 该系统借助OneNET云平台构建了WEB网页显示界面以及手机APP客户端,用于对土壤参数的实时查询,在数据流展示界面,用户可以以EXCEL格式导出各个时间段的土壤参数的历史数据.
测试时在学校操场和学校主干道旁各布置了一个采集节点和一个协调器节点,协调器节点连接电脑串口调试助手,用于显示接收到的数据;采集节点每次发送100个字节数据,发送10组数据,每组数据测试完后改变采集节点和协调器节点的距离,测试结果如表1和表2所示.
表1 学校操场测试结果
通过表格1,2可以得知,随着通信距离的增加以及障碍物的增加,都会给ZigBee无线传感器网络通信的丢包率造成影响,距离越远和障碍物越多,丢包率都会增加. 对于土壤参数的测量,遮挡环境较少,区域内短距离组网,对数据实时性要求不高,该系统能够满足设计要求. 当通信距离过大时,可以通过增加路由节点实现数据的多跳,可进一步减少数据丢包率.
表2 学校主干道测试结果
ZigBee采集节点接入土壤参数传感器,插在操场的土壤里,网关节点距离采集节点100 m处,网关和采集节点皆采用12 V太阳能板供电. 在实验室进入OneNET控制台,设备列表显示设备为在线状态,说明硬件正常接入了云平台,可进行数据的接收显示. 进入OneNET云平台应用界面,可实时查询土壤参数,如图11所示.
图11 OneNET界面
本文将无线传感器网络技术应用在土壤参数测量系统中,采用ZigBee组建无线传感器网络,数据采集节点采集土壤温度、湿度、pH值以及氮磷钾参数,通过无线传感器网络将数据发送给协调器,协调器通过串口传输给STM32网关,最终通过NB-IoT或者WIFI把数据传输到OneNET云平台,用户可远程通过PC端网页或者手机APP查看历史数据和土壤实时参数. 本文对基于WSN的土壤参数测量系统的整体方案以及软硬件设计进行了详细的分析说明,并对系统进行了测试,结果表明该系统运行稳定,数据可靠,实用性强,非常适合应用于土壤参数测量,为实时了解土壤环境状态提供了切实可行的方案,具有广阔的应用前景.