基于LoRa 的无线传感网的农田节水灌溉系统
2020-03-05陈紫薇姚俊光孙道宗李思
陈紫薇,姚俊光,孙道宗,李思
(华南农业大学电子工程学院,广州510642)
0 引言
我国是个水资源极度贫乏的国家,农业用水的关键一个环节是节水。未来50 年我国仍将面临普遍升温,农业干旱缺水态势将进一步加剧[1]。
为了推进农田水利建设,实现绿色发展和资源永续利用,促进农民收入稳定较快增长,就要加快农业物联网建设步伐,建立互联共享的信息平台,重点突破智慧农业关键技术,提高农业科技水平[2]。以无线传感网络技术和智能控制技术为核心的智能灌溉控制系统的研究己成为现代化农业发展的重要建设任务[3]。
LoRa(Long Range,远程)是一种新型无线通信技术,利用了先进的扩频调制技术和编解码方案,增加了链路预算和更好的抗干扰性能[4],对深度衰落和多普勒频移具有更好的稳定性[5],拥有超高接收灵敏度(RSSI)和超强信噪比(SNR)[6]。SX1278 射频模块采用了LoRa远程调制解调器,适合于要求长距离通信、抗干扰能力、低功耗的物联网网络环境[7]。土壤温湿度是一个动态变化的系统,传统农业靠人工检测费时费力。相较于传统的农业灌溉,基于无线传感器网络的农田管理系统减轻了农民巡视农田的负担。同时,传统农业多依赖于人的主观经验,判断存在误差,灌水过多或不足,造成水资源的浪费,水资源利用率往往不高。基于LoRa 的无线传感网的农田节水灌溉系统通过传感器的实时监测,在减少了测量误差的同时,实现了农田系统的水资源利用率,达到了节水灌溉的目的。
1 系统设计方案
1.1 系统设计整体结构
系统由上位机、下位机两部分构成。下位机负责信息采集、信息传输、实时控制,上位机负责信息传输、接收与自动控制(如图1 所示)。多个下位机组成了网络拓扑结构(如图2 所示),监测农田不同区域的环境信息。
下位机用STM32F103 系列单片机作为节点的控制MCU,定时进行数据采集、数据处理、数据传输。采用水流量传感器对农田灌水渠道进行水流量检测,采用温湿度传感器对农田土壤含水量进行检测,采用Lo-Ra 无线通信模块进行节点通信;上位机是由Python 语言设计的交互界面,通过LoRa 无线模块转串口与下位机进行串口数据传输,实现农田的智慧管理与人机交互。
图1 系统结构框图
1.2 硬件系统的整体设计
(1)主要元器件选型
为实现农田信息的采集与水阀的控制,采用YL-69电阻式土壤传感器做土壤湿度检测。将采集到的模拟信号通过STM32 内部12 位的AD 转换模块转换为数字信号,使用模拟信号输出。考虑到AD 转换速度快,也可能存在偶然误差,此处我们进行10 次测量,求平均值,再转换为湿度信息作为输出。电磁阀选用2W 常闭型直动式水气通用电磁阀。工作温度为-5°C~80°C,压力范围0-1.0Map,额定电压DC12V。水流量传感器选用YF-S201 水流量传感器。流量范围:1-30L/min 误差:±2%。
(2)无线传输方式的选择
常见的无线技术主要分为局域网与广域网[8]。局域网通信主要包括Wi-Fi、ZigBee、蓝牙等通信协议,广域网主要包括2G/3G/4G 蜂窝通信技术[9-10]。Wi-Fi 技术的传输速率约为6M/s,传输数据快,产品成本低,但是安全性不高,稳定性比较弱,功耗相对比较大。Zig-Bee 功耗低,组网容量大,但是传输距离短,最远传输距离不超过75m,只适用于小范围、短距离组网[11]。蓝牙技术早期用于手机之间的文件传输,其功耗介于Wi-Fi与ZigBee 之间,但是传输距离最短。以上3 种通讯方式均不适用于大规模农田灌溉无线组网。2G/3G/4G主要依赖于移动运营商提供的网络数据,不但会产生额外的费用,对基站的信号强度也有较高的要求,不适合偏远地区的农作物的监控[12]。
因此,我们采用LoRa 技术作为通信方式。无线传输采用泽耀公司的AS32-TTL-100 模块,将ISM 波段射频收发器与MCU 连接并共同集成在一块单板上,MCU 通过内嵌程序配置射频收发器建立无线数据传输机制,直接通过引出的单片机UART 接口收发无线数据。该模块的核心处理器采用ARM 公司的STM8L151G6 芯片,搭载SX1278 射频芯片,进行LoRa扩频传输。输出接口为TTL 电平。工作频率410MHz~441MHz,共 计32 个 信 道,每 个 信 道 间 隔1M。在省电模式下,消耗电流仅仅几十uA。采用高效的循环交织纠错编码算法,在突发干扰的情况下,能主动纠正被干扰的数据包,最大连续纠错64bit。
将节点LoRa 模块的工作方式设置为省电模式(串口接收关闭,等待唤醒),静态功耗只有15uA,发送数据时更改为一般模式。上位机的LoRa 模块则设置为唤醒模式(发送数据时自动添加唤醒码,唤醒省电状态下的接收方)。
2 系统软件设计
2.1 下位机程序设计
下位机硬件接通电源后,通过LoRa 模块连接串口RS-232 连接至上位机(PC 端)。初始化完成后,系统开始不断的检测湿度信息,下位机每隔30 分钟将数据打包发送给上位机。同时,通过串口中断检测是否有上位机发送信息,若有,则将接收到的信息进行解码,并更改设定的湿度阈值。根据传感器节点采集到的土壤水分值与设置的阈值进行比较,实现下位机自动控制阀门的开启与闭合,并在开启阀门时进行水流量测量,进而达到农田监控与灌溉的目的
2.2 上位机程序设计
上位机控制中心采用Python 语言进行开发,如图2 所示,实现了端口设置、历史数据的存储与查看、阈值设置等任务。通过LoRa 模块连接电脑串口可以实现与下位机的通信。下位机搭载的每个LoRa 模块都有其固定的信道和地址,依据不同的信道和地址可识别不同位置的节点。
在工作过程中,上位机不断接收信息,将土壤湿度、水流量实时的显示在上位机界面中。同时,系统自动记录接收到的数据,写在Excel 表中,作为记录,可用于用户分析。若用户需要发送数据,则在上位机界面输入“信道+地址+阈值”(阈值以百分比的形式发送,范围为1-100)后点击“发送”则可发送信息至指定的下位机。
图2 上位机界面
图3 上位机系统流程图
3 系统性能测试
将节点系统置于华南农业大学启林北校区的农事训练基地的农田中(区内农作物高度约为0.5-0.8m,植株长宽间隔为0.3×0.2m)进行无线传感器组网实验,对农田的土壤湿度进行测量,与电容测量法测得的数据进行对比,分析传感器测量的精度;在不同环境,不同高度下测量最远通信距离,确定系统放置的合适高度;通过对系统收发数据量进行分析,计算丢包率,以此判断系统是否稳定。
3.1 节点通信距离测试
在农田环境中,无线传感网络的有效通信距离直接关系整个网络的覆盖范围[13]。在农田中,农作物的遮挡(与生长的高度与密度有关)会在一定程度上影响无线传输的通信距离。我们将节点高度分别设置为0.4、0.7、1.2m,进行最大通信距离的测试。节点的发射功率为20dBm,射频功率在433MHz 频段。每隔5s LoRa 模块定时传送节点所采集的数据信息,并通过上位机来观察节点处于不同位置时,数据包能否正确传达,当能正确传达时增加收发距离。利用百度地图测距工具,测出两个节点之间的直线距离,作为有效通信距离。经过测试,当节点高度(1.2m)大于农作物高度(1m)时,传输距离最远。不同高度下测得节点的最大有效通信距离如表1 所示。
表1 节点最大通信距离
3.2 节点感知精度测试
感知精度是指器件获取信息的精确度,是无线传感网络的重要性能评价指标之一[14]。通过在待测土壤湿度中放置固定距离固定面积的电容片,测量电容,从而得到土壤湿度的参照值,将土壤湿度传感器测量得到的湿度与参照值进行比较。测试结果(如表2 所示)表明,节点采集的湿度误差最大为5.3%,平均误差为4.7%。
参照值计算方法:
土壤湿度计算公式如下:
其中wa为水的重量,ws为土壤重量。
土壤之中的主要成分均具有不同的介电常数,不同湿度的土壤也具有不同的介电常数,因此可以根据不同的介电常数来推断土壤湿度[15],土壤湿度决定土壤介电常数。土壤湿度的固定函数关系式如下所示[16]。
其中,θ 是土壤湿度值,ε 为对应湿度的土壤的介电常数。
根据土壤组成主要成分得出如下函数关系式:
其中,εsa为空气与土壤颗粒的介电常数,εw是土壤中水的介电常数。当土壤水温为20℃,对应的εsa为3,εw为81,则可得土壤湿度与介电常数函数关系式:
介电常数与电容值有关,公式如下:
其中k 为静电常数,S 为电容片相对面积,d 为电容片之间的距离。如果固定两电容片的距离和相对面积,将待测湿度的土壤放入电容之间,则可以通过测量电容值得知对应介电常数,从而得到对应土壤湿度值。
测量值即用电阻式传感器经AD 转换得到得湿度信息。
表2 土壤湿度测量误差分析
实验结果表明,传感器节点可以准确地将传感器采集到的土壤湿度通过LoRa 模块传到上位机中,平均误差不超过5.3%,传感器测量结果较为准确,无线传输可靠,满足系统的性能指标和设计要求,可直接应用于灌溉控制系统。
3.3 节点功耗测试
利用串联电路电流处处相等及电压电流公式I=U/R 对系统电路的电流进行测量,由此计算电路功耗。具体方法如下:在系统电路中串联5 个1Ω的电阻,用万用表测量总电阻两端电压U,测得电流为I=U/5。在不同状态下分别测试工作电流I 以及持续时间t,再根据功耗计算公式测得节点每周期所消耗的电量。由测量结果可知,省电状态下,节点系统的工作电流为12mA;在传输数据时的电流为49mA。(传输数据时间短,不计入功耗计算中)。系统采用6 节1500mAh 的锂电池串联供电,能够使无线传感网络的节点持续工作时间达到750 小时左右,约为31 天,符合系统低功耗设计的要求。供电时间计算公式为:
3.4 网络的丢包率测试
在晴天、空旷地区,设置通信距离为400m,信息采集周期为10s,监控时长为84min,对系统丢包率进行测试。测试结果如表3 所示。由表3 可知,整个网络的平均丢包率为2.84%,表明系统传输信息稳定可靠。
表3 网络丢包率统计
4 结语
本文通过分析我国农田节水灌溉的现状,了解到发展智能化节水灌溉的重要性。基于此现状,我们设计了较为简单且易操作的农田节水灌溉系统。系统由上位机、节点两部分构成。下位机是以STM32f103 为主控芯片设计的单片机系统,搭载AS32-TTL-100 LoRa模块作为无线通信节点,搭载YL-69 土壤湿度传感器、常闭型电磁阀、YF-S201 水流量传感器采集农田信息并实现自动灌溉。上位机是以PyCharm 为开发平台,用Python 语言编写的人机交互界面。多个下位机作为多个节点,与上位机共同组成了无线传感网络。根据测试结果,农田间节点的有效通信距离可达1400m(空旷地区或节点高度为1.3m),网络的丢包率约为2.84%,土壤湿度传感器的误差在5.3%以内,系统在6节1.5v 干电池下可连续工作31 天。该系统实时性和可靠性良好,能够准确地采集并无线传输农田土壤湿度信息,自动控制农田的灌溉,以实现节水灌溉。