基于ZigBee的土壤温湿度测量系统设计*

2016-12-21 03:04袁新娣陈包庚
赣南师范大学学报 2016年6期
关键词:PC机温湿度串口

袁新娣,陈包庚

(赣南师范大学 物理与电子信息学院,江西 赣州 341000)



·光子学与光子技术·

基于ZigBee的土壤温湿度测量系统设计*

袁新娣,陈包庚

(赣南师范大学 物理与电子信息学院,江西 赣州 341000)

为了实现农作物的科学精准灌溉,提高农业生产效率,本文以ZigBee技术为基础,设计了一种测量土壤温湿度的无线传感器网络系统.系统由终端节点、路由节点、协调器节点组成,节点硬件由主控芯片CC2530及土壤温湿度传感器SHT10构成;软件以TI公司的协议栈为基础开发而成.分布在监测区域的终端节点通过传感器采集土壤温湿度信息并无线发送到协调器节点,协调器节点通过串口与PC机连接,信息最终在PC机上显示给用户.经实验测试,系统运行良好.

无线传感器网络;ZigBee节点;协议栈;土壤温湿度

随着我国经济的迅速发展和人民生活水平的不断提高,对农业生产效率的要求也越来越高.为了获得高效的农业生产效率,现代信息技术手段已经充分应用到农业生产中[1],基于ZigBee(蜂舞技术)的无线传感器网络技术就是其中的一种.无线传感器网络是由分布在监测区内的大量微型、廉价的传感器节点组成,节点通过无线通信方式形成一个多跳、自组织的网络系统,其目的是协作地感知、采集和处理网络覆盖区域中感知对象的信息,并把信息发送给观测者[2-3].ZigBee技术是基于IEEE802.15.4协议的无线通信标准,是目前无线传感器网络的主要技术,在短距离无线通信方面具有非常高的性价比,其主要特点是低功耗、低成本、低复杂度、高安全性、使用自由无线频段[4].本文以农业应用为背景,以ZigBee技术为基础,研究一种测量土壤温度与湿度的无线传感器网络系统,用于指导农作物的科学精准灌溉.

1 系统结构

土壤温湿度检测系统以ZigBee为核心技术,实现对监测区域土壤的温度与湿度无线测量功能,系统的结构框图如图1所示.

图1 系统结构图

该系统由三种节点:终端节点、路由节点和协调器节点构成,采用树状拓扑结构.协调器节点是无线网络的中心,负责启动整个无线网络,选择网络通信信道和建立一个网络ID(也称之为PAN ID),当网络建立后,协调器节点负责解析PC机发送的指令或无线接收其它节点发送的信息,并将接收到的信息通过串口发送给PC机显示.终端节点分布在监测区,外接土壤温湿度传感器,其功能是实时采集土壤温湿度信息并把信息无线发送到附近的路由或协调器节点上;路由节点用于在协调器节点与终端传感器节点距离比较远时(理论上大于75 m),作为一种中介使协调器与终端节点通信,即实现数据转发功能.

2 ZigBee节点硬件实现

ZigBee节点是系统的基本组成单元,包括终端节点、路由节点和协调器节点,需要完成组网,信息采集、处理及无线发送等功能.系统中各种ZigBee节点均采用TI公司的CC2530[5-6]作为核心元件构成,CC2530是新一代片上系统芯片,支持IEEE 802.15.4标准及应用,是理想的ZigBee专业芯片.CC2530拥有256个字节的快闪记忆体,8kB的RAM ,32/64/128/256 KB闪存,结合了一个增强型8051微处理器和一个高性能的无线收发器(RF),包含一套广泛的外设集:2个USART、12位ADC和21个通用GPIO.同时,CC2530提供了101dB的链路质量,精准的接收器灵敏度和很强的抗干扰性,支持一般的低功耗无线通信.另外,CC2530还可以配备TI的标准网络协议栈Z-Stack来简化开发.

为了精确、方便地采集土壤温湿度信息,在ZigBee终端节点上需外接传感器,本系统采用了瑞士进口的数字式温湿度传感器SHTl0[7],该传感器是一款温湿度复合传感器,输出含有已校准的数字信号,应用专利的COMS微加工技术,确保了产品具有很高的可靠性和稳定性.

图2 节点硬件框图

图3 ZigBee协议栈模型

图4 工程主要流程

该系统的节点硬件框图如图2所示,图中串口连接PC机是为了显示温湿度数据信息及方便系统调试,SmartRF04EB在线仿真器用于从PC机下载程序到CC2530芯片上,CC2530的外接天线用于增强信号发射功能,只有终端节点需要接传感器,而路由节点和协调器节点不需要.

3 系统软件设计

系统软件设计运用了TI公司最新推出的协议栈版本ZigBee2007-PRO.主要在协议栈中进行了网络的配置与应用层的开发.

3.1 ZigBee协议栈简介

TI公司在提供ZigBee无线芯片CC2530的同时,也配备了专用网络协议栈Z-Stack[8],协议栈是指网络中各层协议的总和,形象的反映了一个网络中文件传输的过程.开发人员应用该协议栈,可方便地组建自己的无线通信网络.

ZigBee标准的协议栈框架结构如图3所示,其中IEEE802.15.4标准定义了底层即物理层和MAC层(Media Access Control,介质访问控制层).ZigBee联盟在此基础上定义了网络层和应用层架构.应用层定义了各种类型的应用业务,是协议栈的最上层用户.应用构架子层负责把不同的应用映射到ZigBee网络层上.网络层的功能包括拓扑管理、MAC管理、路由管理和安全管理.协议栈使用库的形式封装,使得它结构清晰、移植方便、层次分明.

3.2 ZigBee协议栈配置

本系统软件设计以协议栈提供的SampleApp.eww工程文件作为模板,在 IAR8.1 环境中开发而成.工程主要流程如图4所示.

硬件初始化由协议栈自动完成.软件的初始化就是操作系统OSAL(Operating System Abstraction Layer)的初始化,主要包括初始化系统内存、消息队列、定时器、任务等.编程时主要考虑任务的初始化,协议栈里,用户的应用程序以任务(task)的形式注册到操作系统中,每个任务需要一个任务号(taskID),一个任务对应自己的事件处理函数(event processor).为了完成对土壤温湿度采集并显示的任务,软件初始化时应给该任务分配一个任务号,同时需要建立任务号与对应的事件处理函数的关联.其他的软件初始化也是由协议栈自动完成.

建立网络时,对于协调器节点,所执行的操作是通过原语发起一个新ZigBee网络,同时分配一个通信信道,确定一个网络号(PAN ID)作为本网络的标号,然后等待其他节点加入该网络.对于终端节点和路由节点,建立网络时不断发送请求信息,请求与它有相同ID号的协调器将其加入ZigBee网络.如果通过了请求,该节点将获得一个短地址作为局域网内部通信的地址.

当顺利完成初始化并建立了Zigbe网络后,执行osal_start_system( )函数开始运行OSAL操作系统.操作系统按照优先级检测各个任务是否就绪,如果有就绪的任务则调用函数tasksArr[]中相对应的事件处理函数处理该任务,一直到执行完所有就绪的任务,当任务列表中没有就绪的任务,处理器进入睡眠状态实现低功耗,当再有新任务出现时自动唤醒处理器去查询、执行任务.如此一直循环下去,不再返回Main( )函数[9].

3.3 应用层的开发

协议栈中APP文件夹属于协议栈模型的应用层,主要完成用户任务程序及接口开发,包括传感器数据读取、串口数据处理、无线收发数据等[10].本系统的任务是通过连接在终端节点的SHT10传感器采集土壤温湿度信息,无线传输到协调器节点后通过串口在PC机上显示信息.

3.3.1 土壤温湿度采集程序

数字式土壤温湿度传感器SHT10的采集过程有严格的时序对应:首先主控制器(该系统中是CC2530)发送一组“启动传输”时序,初始化STH10 的数据传输;然后主控制器发送命令,命令有5种[11]:0x03H表示测量温度,0x05H表示测量相对湿度,0x07H 表示读状态寄存器,0x06H表示写状态寄存器(状态寄存器用来实现一些高级功能,如电源管理、加热等), 0x1EH表示软件复位(通信中断时使用).命令发出后主控制器等待测量完成,测量过程需要大约20~320 ms不定,确切时间由STH10内部晶振决定,测量进行时STH10的DATA引脚一直处于高电平,结束后该引脚出现低电平,数据可以先保存在寄存器中,所以在等待期间控制器可以执行其它任务,需要时再从寄存器中读出数据;在测量和通讯结束后,SHT10自动转入休眠模式.

根据SHT10的时序,土壤温湿度采集的流程如图5所示.SHT10通过DATA数据引脚直接输出数字量相对温湿度值,但由于输出特性呈一定的非线性,需要在软件中进行线性补偿和温度补偿后才能得到比较准确的相对湿度值.开发时,把土壤数据采集程序以子程序SHT10.c形式保存到协议栈的APP文件夹下,供事件处理程序调用.

图5 SHT10数据采集流程图

3.3.2 土壤温湿度传输与显示

按照TI公司提供的协议栈工程模板SampleApp.eww,信息的传输与显示由应用层的sampleApp.c程序完成,该程序主要通过调用collection_sht10()函数读取土壤温湿度信息,通过调用AF_DataRequest()完成温湿度信息在节点与协调器间的无线传送,调用串口通信函数HalUARTWrite()把温湿度信息传送到PC机显示,主要程序如下:

void SampleApp_SendPointToPointMessage(void)

{

char buf[100];

if(0 == collection_sht10(&temp_val_f, &humi_val_f)) // 通过collection_sht10()读取温湿度信息.

{//以下是通过串口在电脑中显示温湿度信息

sprintf(buf,"NO1: temp:%5.1fC humi:%5.1f%% ",temp_val_f,humi_val_f);

HalUARTWrite(0,buf, strlen(buf));

}

else

{ HalUARTWrite(0,"error",5); //若采集出错则在电脑上显示error错误提示.

HalUARTWrite(0," ",1);

}

//以下是调用AF_DataRequest 接口函数进行无线发送信息

if ( AF_DataRequest( &SampleApp_DstAddr,

&SampleApp_epDesc,

SAMPLEAPP_COM_CLUSTERID,

strlen(buf),

buf,

&SampleApp_TransID,

AF_DISCV_ROUTE,

AF_DEFAULT_RADIUS ) == afStatus_SUCCESS )

{

图6 PC机上显示的温湿度信息

}

else

{

// Error occurred in request to send.

}

}

4 系统测试结果

按照上述原理与方法连接好硬件电路,本次试验使用了2个连接传感器的终端节点(标号NO1与NO2),1个路由器节点,1个协调器节点,在IAR8.1平台的workspace上选择CoordinatorEB-Pro对协调器节点编程,选择RouterEB-Pro对路由节点编程,选择EndDeviceEB-Pro对终端节点编程,调试成功后,使用在线仿真器SmartRF04EB下载编译成功的程序到对应的节点上,然后通过串口线连接协调器与PC机,在PC机上使用串口调试软件观察协调器接收的数据.串口测试界面如图6所示,界面上清楚地显示了各个测试点处的土壤温湿度.

5 总结

该系统采用ZigBee技术,实现了对监测区域内土壤温度与湿度的实时采集并无线远程显示,给农业技术人员提供了方便、可靠的灌溉决策信息.系统硬件主要由Z-stack芯片CC2530及土壤温湿度传感器SHT10构成,软件由Z-stack协议栈开发而成.因为ZigBee具有功耗低、成本低、安全性高、使用自由免费无线电频段的特点,所以该系统在农业生产领域有很好的应用前景.

[1] 宋立伟.无线传感器网络节点的设计及在农业中的应用[D].大连:大连海事大学,2011:1-3.

[2] 张增林,党革荣等.基于无线传感器网络的节水灌溉远程监控系统[J].节水灌溉,2012,(3):75-78.

[3] 张艳,张苏弦.让无线走得更坚强—Dust Networks无线传感器网络技术初探[J].电脑与电信,2009,(1):9-10.

[4] 孙巍.基于ZIGBEE协议的无线土壤温、湿度检测系统的研究[D].长春:吉林农业大学,2012:2-4.

[5] 王风.基于CC2530的ZigBee无线传感器网络的设计与实现[D].西安:西安电子科技大学,2012:21-23.

[6] 李俊斌,胡永忠.基于CC2530的ZigBee通信网络的应用设计[J].电子设计工程,2011,19(16 ):108-111.

[7] Texas Instrument Company. Z-Stack Datasheet[Z].Texas Instrument ,2009.

[8] Sensirion Sensor Company . SHT1x ( SHT10,SHT11,SHT15) humidity and temperature sensor datasheet[Z].Sensirion,2007.

[9] 张艳玲.基于ZigBee技术的智能家居控制网络的研究与设计[D].沈阳:东北大学,2009:41-60.

[10] 王殊,阎毓杰,等.无线传感器网络的理论及应用[M].北京:北京航空航天大学出版社,2007:3-8.

[11] 陆荣鑑,李品,孙周.SHT10传感器在温湿度检测系统中的应用[J].传感器与微系统, 2012,9(31):136-138.

Design of Soil Temperature and Humidity System Based on ZigBee

YUAN Xindi, CHEN Baogeng

(SchoolofPhysicsandElectronicInformation,GannanNormalUniversity,Ganzhou341000,China)

In order to realize precision irrigation to crops, improve the efficiency of agricultural production, a wireless sensor network system based on ZigBee technology for measuring soil temperature and humidity was described in detail in the paper. The system was composed of enddevice nodes, router nodes and coordinator node. All nodes were designed in hardware based on main chip CC2530 and humidity and temperature multi sensor SHT10. The software was designed based on Z-stack of TI company. The information of soil temperature and humidity was collected by ZigBee enddevice nodes which distributed in the monitoring regions, and wirelessly send to coordinator node which connected with PC via serial port. In the end, the information displayed in the PC, the experimental results show that the the system had good effect .

wireless sensor network; ZigBee node; Z-stack; soil temperature and humidity

2016-03-07

10.13698/j.cnki.cn36-1346/c.2016.06.012

江西省科技支撑计划资助项目(20132BBF60066)

袁新娣(1974-),女,江西瑞金人,赣南师范大学物理与电子信息学院副教授,研究方向:电子信息与数据采集.

http://www.cnki.net/kcms/detail/36.1037.C.20161209.1515.026.html

S126;TN919.72

A

1004-8332(2016)06-0053-04

猜你喜欢
PC机温湿度串口
浅谈AB PLC串口跟RFID传感器的通讯应用
基于AT89C51的数字型蚕用温湿度计的设计
基于DSP的多路温湿度监测系统
基于温湿度控制的天气预测装置
基于三菱FXPLC的感应淬火机床与PC机的串行通信实现
VC.NET下实现dsPIC单片机与PC机的通信
蒸发冷却温湿度独立控制空调系统的应用
排除OLT设备登录故障
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索