苏静池 韩改宁 李永锋 张洁 石妍
摘 要:为了实现水资源合理利用,发展节水供水,改善生态环境,设计一种基于无线传感器网络的智能灌溉系统。该设计以无线传感器网络为基础,采用基于CortexTM-A8体系结构的S5PV210处理器芯片作为应用网关的核心处理器,使用ZigBee模块进行无线短距离通信,并且利用传感器获取土壤信息,控制层每个节点都是使用基于Cortex-M3t体系的STM32F103RBT6单片机作为主控CPU,最终控制水阀开关以及喷水时间,实现农业中的智能控制。实验表明,该设计达到了预期目标。
关键词:CortexTM-A8;STM32;ZigBee;智能灌溉;无线传感器;网关
中图分类号:TP39文献标识码:A文章编号:2095-1302(2020)10-00-05
0 引 言
水资源已成为21世纪可持续发展的一个关键问题。中国水资源已处于相当匮乏的状态,并且全国大量的废、污水未经处理或处理未达标就直接排放造成了严重的水污染,少量的河流水质低于农田供水标准。水是农业的命脉,是生态环境的控制性要素,同时又是战略性的经济资源[1]。为了实现水资源合理利用,发展节水供水,改善生态环境,采用智能灌溉系统抽取地下水灌溉农田,是我国目前物联网农业的关键,也是实现可持续发展的基础。运用先进的物联网技术、计算机和控制技术可以有效地提高农业灌溉用水效率和生产效率。利用智能灌溉系统,使传统的灌溉模式得以突破和发展,是当今世界供水、节水技术发展的总趋势。智能灌溉系统在一些发达国家起步也较早应用较广泛,技术发展相对成熟,特别是以色列、美国和加拿大等国。
1 系统总体设计方案
本文设计的基于无线传感器网络的智能灌溉系统功能强大,最主要的是价格低廉,非常适用于普通农户和城市基础设施。本系统通过传感器获取田地的环境参数信息并且通过ZigBee传送给处理器(CortexTM-A8),处理器做出相应的信息处理并将处理完成后的信息再次通过ZigBee传送给主控CPU(Cortex-M3t),CPU发出相应的指令控制水阀(电机)的运转。系统架构如图1所示。
2 系统硬件设计
系统硬件整体可分为4个模块,分别是数据处理模块(嵌入式处理器系统)、数据传输模块(无线传感网络ZigBee或者WiFi)、数据采集模块(末端传感器)和被控模块(控制水阀及营养液输送)。
数据处理模块:采用基于CortexTM-A8体系结构的Samsung公司S5PV210处理器芯片做为应用网关的核心处理器。
数据传输模块:采用ZigBee。
传感器模块:采用温湿度传感器AM2321。
被控模块:每个节点都使用基于Cortex-M3体系的STM32F103RBT6单片机作为主控CPU。另外还配备有电机驱动。
2.1 数据处理模块
数据处理时处理器采用基于CortexTM-A8体系结构的S5PV210处理器芯片作为应用网关的核心处理器。于此同时应用网关配备有种类丰富的外围接口,可以通过多种方式获取传感器数据,并进行本地处理,如果有需要,也可通过WiFi或者3G的方式將数据上传至更上层的网络服务器或者云端服务器。
S5PV210是一个16/32位RISC微处理器,是Samsung公司为移动电话和通用产品设计的低成本,低功耗,高性能的应用处理器方案。S5PV210具有高质量的外部存储器接口,用来适应高端通信服务所要求的高存储器带宽。存储器系统具有两个外部存储器接口,其中DRAM接口可配置成支持LPDDR1(MobileDDR),DDR2和LPDDR2内存IC颗粒;而FLASH/ROM 接口可支持NOR FLASH,NAND FLASH,OneNAND,RAM和ROM类型的外设。S5PV210基于ARMCortex-A8核,包括32 KB指令和32 KB数据Caches,512 KB L2Cache,MMU以支持虚拟内存管理。S5PV210的工业标准特征支持多种工业标准操作系统[2]。
2.2 数据传输模块
ZigBee无线通信方式的核心是围绕美国TI公司提供的CC2530 型单片机(硬件)以及满足 ZigBee 2006标准的Z-Stack协议栈实现。
2.2.1 处理器CC2530
CC2530为美国TI公司推出的支持ZigBee协议的单片机,属于ZigBee开发时的硬件资源。CC2530-EB核心板主要包括CC2530单片机、天线接口、晶振以及I/O扩展接口。CC2530-EB核心板原理如图2所示。
CC2530的FLASH容量具有选择性,并且CC2530片上系统解决方案包括若干设备,表1提供了每个设备不同外设,内存大小等的概述和信息。
CC2530中的存储器可映射到代码和外部数据的存储器空间。这样除了保证程序代码和常量的正确性,还可以允许非易失性存储器保存应用程序必要的数据,这样保证了数据在设备重启后的重复利用性。并且在开发人员使用此功能时,也可以用来保存具体的网络参数,当系统再次上电后此保存的网络参数可以直接加入网络中。
2.2.2 协议栈
Z-Stack是ZigBee的协议栈,并且ZigBee无线网络的实现,是建立在此协议栈基础上的。协议栈定义了通信软件和硬件在不同级如何协同工作,并且通信双方需要遵循协议栈的标准进行正常的数据收发。协议栈采用分层的的结构使各层相对对立,每一层都提供特定的服务,使开发者可以更高效率地进行开发。Z-Stack具体分为两部分:IEEE 802.15.4定义的物理层和MAC层技术规范;网络层,安全层和应用层技术规范。Z-Stack协议栈就是将各层定义的协议都集合在一起,以函数的形式实现,并给用户提供一些API,供用户学习使用。使用Z-Stack协议栈进行开发步骤如下:
(1)用户对ZigBee无线网络的应用层程序开发设计,采用C语言实现;
(2)在ZigBee网络中采集数据时,只需要在应用层加入读取传感器的函数即可完成ZigBee网络中的数据采集;
(3)为了提高系统的节能性,可以定时唤醒ZigBee的终端节点,然后自动完成传感器数据采集,并将采集到的数据发送给ZigBee协调器。
此模块采用广州飞瑞敖电子科技有限公司生产的IOT-L02-06型物联网开发应用实验设备,如图3所示。
2.3 传感器模块
在传感器模块中使用温湿度传感器AM2321。AM2321数字温湿度传感器是含有己校准数字信号输出的温湿度复合型传感器。该传感器包括一个电容式感湿元件和一个高精度集成测温元件,并与一个高性能微处理器即8位单片机相连接。AM2321传感器进行过极为精确的湿度校验,无需对数字进行二次计算,也无需对湿度进行温度补偿,便可得到准确的数据[3]。因其本身具有超小的体积、极低的功耗,信号传输距离可达20 m以上,成为开发者的首选。产品为3引线(单总线接口)连接方便。AM2321的响应时间约2 s,相比一般温湿度传感器的响应时间更快[5]。
2.3.1 AM2321原理图及引脚参数
温湿度传感器的电路原理图如图4所示,其SDA口连接到的STM32的PA4引脚上进行单总线通信,R11为上拉电阻。各PIN的分配见表2所列。
2.3.2 AM2321单总线通信协议
SDA可用于微处理器与AM2321温湿度传感器之间的通信和同步,并且采用单总线通信。单总线即只有一根数据线,系统中的数据和控制信号均由数据线完成。单总线通信格式一次传输即可传送40位数据,并且采用高位先出的规则,具体如图5所示。
单总线格式定义如下:当起始信号发出时,微处理器把数据总线(SDA)拉低一段时间(至少800 μs),通知传感器准备数据。此时响应信号发出,传感器把数据总线(SDA)拉低80 μs,再拉高80 μs以响应主机的起始信号。在收到主机起始信号后,传感器一次性从数据总线(SDA)串出40位数据,高位先出。其中温湿度的分辨率都为16 bit,并且高位在前;传感器传出的温湿度值是实际温湿度值的10倍[4]。
总线数据说明[5]:接收到的40位数据见表3所列。
湿度及温度的值计算见表4所列。
2.3.3 外部设备读取温湿度流程
外部设备读取温湿度流程如图6所示。
2.4 控制模块
控制模块CPU采用基于Cortex-M3内核的高性能32位处理器—STM32,它的特点是,功耗低,时钟频率高,中断延迟短。STM32微处理器在结构上可以分为4个部分,这4个部分包括处理器的内核,存储单元,总线接口以及跟踪调试单元[4]。
STM32系列的芯片众多,可供选择的型号多在使用时可以根据自己系统的需求来选择自己所需要的芯片型号。STM32的硬件资源丰富而且又具有低功耗的功能,是开发项目的首要之选,本次项目根据实验需求选择的是STM32F103RBT6。
2.5 被控模块
被控模块应用L298电机驱动芯片[5-6]。该芯片具有两个TTL/CMOS兼容电平的输入,并且具有良好的抗干扰性能;可用I/O口提供控制信号,支持5 V和3.3 V逻辑电平,而且一块L298芯片可以驱动2个减速电机;电路简单,易用,稳定,具有较高的性价比[5]。
2.6 总体电源模块
STM32电源电压需要3.3 V的电源供电,还需要5 V电压给ZigBee模块及S5PV210处理器供电,使用AMS1117芯片将5 V电压转化成3.3 V供给STM32以及其他的芯片使用,如图7所示。
3 系统软件设计
系统软件总体分为3个部分,分别是无线ZigBee网络连接,水阀控制程序与Qt显示界面。系统软件主要提供了用户端的显示界面,水阀的自动控制与数据的传输控制。
3.1 无线ZigBee网络连接
ZigBee基于IEEE 802.15.4协议,是一种功耗低、短距离的通信技术。系统控制器與节点之间的通信通过ZigBee无线网络实现。
ZigBee节点有3种类型,分别是路由器、协调器和终端设备。ZigBee的网络形式有树状,星状和网状类型。ZigBee模块无线通信流程如图8所示。
3.2 水阀控制程序的设计
管道中水流的大小通过水阀控制,即通过电机的启动与否对水阀进行控制。电机控制命令需使用传感器节点采集到的数据,将判断是否进行调节的程序写入处理器,通过处理器判断,即超过参考值停止放水或者低于参考值则放水,之后由ZigBee模块发送到主控CPU,主控CPU接收到信息(是否启动电机进行控制)后发出指令,控制电机实现水阀的开关,实现智能调节,也可通过后台发出指令,人工控制水阀开关。
3.3 显示界面设计
本界面主要实现的功能有:当弹出对话框时,在对话框中填写用户名和密码,并按下登录按钮;如用户名和密码正确则进入主窗口,假设有错,则弹出警告对话框。具体设计效果如图9~图12所示。
4 测试结果及分析
为了验证系统的性能,本文进行了如下实验:实验中将1个温湿度传感器节点与PC机相连,并放置在选取的土壤中,同时将传感器节点与步进电机节点进行ZigBee组网,人工测试后进行系统测试。从测试结果来看,数据传输稳定,显示界面正常显示,系统可正常运转,表明此系统具有极高的准确性和可靠性。
5 结 语
本文结合最新的ZigBee技术,设计了一款智能化灌溉系统。系统通过布置AM2321传感器,对土壤中的温度及湿度进行检测,检测的数据经CC2530处理后通过无线网络传送给主控CPU,利用Cortex-M3对接收到的数据进行保存及处理。管理员可通过系统处理结果对土壤环境进行针对性的处理。系统具有检测精度高,误差小及可靠性高的优点,适用于农业园林等环境,具有较大的推广价值和广阔的市场前景。
参考文献
[1]李时辉.基于无线传感器网络的温室智能监测系统研究[J].江西理工大学学报,2013,33(1):70-73.
[2]王涛,夏路易.基于ZigBee2007的无线网络控制系统的构建[J].机械管理开发,2011,25(4):11-12.
[3]佚名.温湿度数字传感器AM2302.pdf[EB/OL].[2017-10-19]. http://www.Datasheet4U.com.
[4]何友国,袁朝春.基于SIM908的冷藏车箱内温湿度监测系统设计[J].制造业自动化,2015,37(22):138-142.
[5]朱武,涂祥存,操瑞发,等.基于L6506/L298芯片细分步进电机驱动系统设计[J].电气自动化,2011,33(1):10-12.
[6]夏叶媚,徐松,吴晨彤,等.基于STM32单片机的直流电机调速电源设计[J].河南科技,2017,41(17):73-74.
[7]刘海龙,宿宏毅,郭浩.基于物联网关联的光照监控与节水灌溉系统设计[J].现代电子技术,2016,39(20):149-153.
[8]张育斌,魏正英,张磊,等.非充分灌溉下精量灌溉决策方法研究[J].现代电子技术,2017,40(1):115-118.
[9]毛威,来智勇,耿楠.基于WSN的温室智能灌溉系统软件设计[J].现代电子技术,2017,40(16):5-9.
[10]吕坤,吴琼,闫伟.基于ARM的物联网智能灌溉系统的研究[J].物联网技术,2019,9(11):57-58.