基于XBee的环境数据采集系统的设计与实现
2015-09-18徐元文张婧婧
徐元文,张婧婧
(新疆农业大学计算机与信息工程学院,乌鲁木齐830052)
基于XBee的环境数据采集系统的设计与实现
徐元文,张婧婧
(新疆农业大学计算机与信息工程学院,乌鲁木齐830052)
以采集环境数据为主要目标,利用XBee无线传输模块,实现Arduino平台上环境监测系统的设计。系统以常见的温湿度传感器、光照传感器、烟雾传感器构建数据采集终端,通过XBee组建的ZigBee网络进行数据传输,最终将环境数据通过串口送至上位机,用于数据的存储和分析。设计基于主流开发平台Arduino,对系统的二次开发及实际应用具有指导意义。
ZigBee;XBee;Arduino;农业数据采集;传感器
国家大学生创新创业训练计划项目(No.201310758013)
0 引言
ZigBee基于IEEE802.15.4的标准,具有低功耗、低速率、低成本和短距离通信等特点,目前已被大规模地用于物联网的相关设计和开发中[1~2]。本设计采用Digi公司的XBee模块即是一款内置协议栈的ZigBee模块,通过设置模块的参数能够完成与串口间的数据透传[3~4],因此便于进行数据采集和上位机显示过程中的硬件连接。加之其满足无线、低成本、低功耗、稳定性等设计要求[5],最终选用它实现了无线数据采集及短距离传输的任务。
1 系统硬件设计
1.1系统设计原理
根据环境数据采集的主要目标,设计中选用三个数据采集终端节点和一个协调器节点作为系统的采集装置,分别采集待测环境的温湿度、光照强度和烟雾浓度等数据,通过XBee扩展板与网关组网后发送采集的数据。协调器节点则负责汇聚该数据流,并利用FT232模块完成与上位机的串行通信,其网络拓扑图如图1所示。
图1 系统的拓扑结构
1.2传感器模块的硬件简介
(1)数字温湿度传感器AM2303
AM2303传感器是一款含有已校准数字信号输出的温湿度复合传感器[6]。该传感器采用单线制串行接口,依次发送40位数据,其中分别包含16位分辨率的温、湿度数据及4位校验位,电源工作电压为3.5~5.5v电压下。
(2)数字光模块GY-30
GY-30是一款基于总线接口的数字型光强度传感器集成电路。传感器型号是BH1750FVI,支持I2C总线接口,且受红外线影响小,电路结构简单、灵敏度高、反应迅速,电源工作电压为3~5V。
(3)烟雾传感器MQ_2
MQ_2传感器的气敏材料为电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随会空气中可燃气体浓度的增加而增大,因此适宜于液化气、丁烷、丙烷、甲烷、酒精、氢气、烟雾等气体的探测,其电源工作电压为3~5V。
1.3系统协调器的硬件设计
系统的协调节点是由XBee、Arduino单片机和FT232串口转换芯片构成,其中协调节点XBee扩展板可以方便地将XBee模块连接到Arduino上,并通过为三个终端节点分配不同的网络地址而获取相应的数据,再利用USB转串的FT232芯片完成XBee至上位机的数据传输,其硬件连接如图2所示:
图2 协调器的硬件连接
2 系统软件设计
在Arduino的软件开发平台上,笔者通过免费的IDE编写、编译和下载了Arduino能够执行的代码并完成系统设计要求。系统上电后首先运行setup()函数,用于端口、传感器、串口通信波特率的设置,然后分别完成下述各模块的程序设计。
2.1终端节点的数据传输
XBee利用串口传输数据,默认为透明传输模式,设计中只需进行串口和目标地址的简单设置,如Server:“ip[]={10.255.127.253}”。由于Arduino内核ATMEGA328P中自带A/D接口,系统还节省了A/D转换的软件开销。此外ATMEGA328P支持休眠模式,在终端节点的数据传送至协调器节点后,即可进入低功耗状态(即休眠状态)[7],若协调器有数据采集要求时,则MCU会被唤醒,其流程如图3所示:
图3 终端节点的低功耗传送
2.2协调器节点汇聚数据
数据汇集过程中,协调器首先需要扫描信道、开启网络。由于XBee无线模块自带ZigBee协议栈的程序,因此在通信时利用程序修改参数即可实现组网,如协调器置成ZIGBEE COORDINATOR AT方式,而终端节点置成ZIGBEE ENDDEVICE AT方式。随后终端节点执行Serial.print()函数发送数据,而协调器则利用Serial.read()函数接收数据,并将数据存入数组,然后执行if()语句判断接收到的数据排列是否符合要求,如符合则进入无线接收状态。
2.3协调器与上位机串口通信
协调器的输出端与串口FT232相连,FT232则连接上位机,其波特率设置为9600bps(如:Serial.begin (9600);)。打开串口后,协调器的MCU在LOOP循环中执行Serial.print()函数即可连续发送数据至上位机。其流程如图4所示:
图4 协调器与上位机的串口通信流程
3 系统测试及结论
基于Arduino开发平台和XBee模块的无线传输功能,笔者实现了环境数据无线采集系统的设计,并制作硬件验证上述系统功能,最终完成了温湿度、光强度、烟雾浓度等数据的采集和传输。在串口调试工具中得到的采集数据如图5所示:
图5 数据采集的上位机显示
由于该系统硬件装置集成化程度高,便于快速连接和二次开发,所以能够为农田数据采集、矿井环境监控、禽舍环境监测等系统的设计开发提供参考依据。
[1]林娣.田间信息的远程获取与无线传输系统的研究[J].电子技术与软件工程,2014(18):100-100
[2]毛鹏军,姜水,王俊,张伏,邱兆美.基于ZigBee技术的温室环境无线监测系统设计[J].中国农机化学报,2015(1):102~106,115
[3][法]Robert Faludi著,沈鑫等译.Arduino无线传感器网络实践指南[M].北京:机械工业出版社,2013
[4]李华嵩,姜先威.基于BasicRF的ZigBee无线透传模块设计[J].通信技术,2013(11):108-111
[5]王静霞.一种与ZigBee/802.15.4协议兼容的RF模块XBee/XBee Pro及其应用[J].电子工程师.2007(03):24-27
[6]杜一腾,迟宗涛.基于Arduino与yeelink平台的实时环境监测系统[J].单片机与嵌入式系统应用.2014(10):26-29
[7]杨继志,郭敬.Arduinode互动产品平台创新设计[J].单片机与嵌入式系统应用,2012(4):39-41
ZigBee;XBee;Arduino;Agricultural Data Acquisition;Sensor
Design and Im p lementation of Environment Data Acquisition System Based on XBee
XU Yuan-wen,ZHANG Jing-jing
(College of Computer and Information Engineering,Xinjiang Agricultural University,Urumqi 830052)
In order to collect environmental data,uses XBee wireless transmissionmodule,and realizes the design of data acquisition system based on Arduino.Uses the temperature and hum idity sensor,common light sensors and smoke sensors to build data acquisition terminal,then transmission the data through the XBee which set up by the ZigBee network,the environmental data through the serial port to the host computer can be use to store and data analyze.Because of the system have been designed on themainstream development platform such as Arduino,ithas the great sense on the further developmentand practical application of the system.
1007-1423(2015)16-0043-04
10.3969/j.issn.1007-1423.2015.16.010
徐元文(1990-),男,四川三台人,本科,研究方向为单片机嵌入式及无线传感器的应用与开发
张婧婧(1981-),女,湖南宁乡人,硕士,新疆农业大学计算机与信息工程学院讲师,研究方向为复杂系统、嵌入式理论与应用
2015-04-28
2015-05-12