徐元文,張婧婧
(新疆農(nóng)業(yè)大學(xué)計算機與信息工程學(xué)院,烏魯木齊830052)
基于XBee的環(huán)境數(shù)據(jù)采集系統(tǒng)的設(shè)計與實現(xiàn)
徐元文,張婧婧
(新疆農(nóng)業(yè)大學(xué)計算機與信息工程學(xué)院,烏魯木齊830052)
以采集環(huán)境數(shù)據(jù)為主要目標(biāo),利用XBee無線傳輸模塊,實現(xiàn)Arduino平臺上環(huán)境監(jiān)測系統(tǒng)的設(shè)計。系統(tǒng)以常見的溫濕度傳感器、光照傳感器、煙霧傳感器構(gòu)建數(shù)據(jù)采集終端,通過XBee組建的ZigBee網(wǎng)絡(luò)進行數(shù)據(jù)傳輸,最終將環(huán)境數(shù)據(jù)通過串口送至上位機,用于數(shù)據(jù)的存儲和分析。設(shè)計基于主流開發(fā)平臺Arduino,對系統(tǒng)的二次開發(fā)及實際應(yīng)用具有指導(dǎo)意義。
ZigBee;XBee;Arduino;農(nóng)業(yè)數(shù)據(jù)采集;傳感器
國家大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計劃項目(No.201310758013)
ZigBee基于IEEE802.15.4的標(biāo)準(zhǔn),具有低功耗、低速率、低成本和短距離通信等特點,目前已被大規(guī)模地用于物聯(lián)網(wǎng)的相關(guān)設(shè)計和開發(fā)中[1~2]。本設(shè)計采用Digi公司的XBee模塊即是一款內(nèi)置協(xié)議棧的ZigBee模塊,通過設(shè)置模塊的參數(shù)能夠完成與串口間的數(shù)據(jù)透傳[3~4],因此便于進行數(shù)據(jù)采集和上位機顯示過程中的硬件連接。加之其滿足無線、低成本、低功耗、穩(wěn)定性等設(shè)計要求[5],最終選用它實現(xiàn)了無線數(shù)據(jù)采集及短距離傳輸?shù)娜蝿?wù)。
1.1系統(tǒng)設(shè)計原理
根據(jù)環(huán)境數(shù)據(jù)采集的主要目標(biāo),設(shè)計中選用三個數(shù)據(jù)采集終端節(jié)點和一個協(xié)調(diào)器節(jié)點作為系統(tǒng)的采集裝置,分別采集待測環(huán)境的溫濕度、光照強度和煙霧濃度等數(shù)據(jù),通過XBee擴展板與網(wǎng)關(guān)組網(wǎng)后發(fā)送采集的數(shù)據(jù)。協(xié)調(diào)器節(jié)點則負責(zé)匯聚該數(shù)據(jù)流,并利用FT232模塊完成與上位機的串行通信,其網(wǎng)絡(luò)拓撲圖如圖1所示。
圖1 系統(tǒng)的拓撲結(jié)構(gòu)
1.2傳感器模塊的硬件簡介
(1)數(shù)字溫濕度傳感器AM2303
AM2303傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器[6]。該傳感器采用單線制串行接口,依次發(fā)送40位數(shù)據(jù),其中分別包含16位分辨率的溫、濕度數(shù)據(jù)及4位校驗位,電源工作電壓為3.5~5.5v電壓下。
(2)數(shù)字光模塊GY-30
GY-30是一款基于總線接口的數(shù)字型光強度傳感器集成電路。傳感器型號是BH1750FVI,支持I2C總線接口,且受紅外線影響小,電路結(jié)構(gòu)簡單、靈敏度高、反應(yīng)迅速,電源工作電壓為3~5V。
(3)煙霧傳感器MQ_2
MQ_2傳感器的氣敏材料為電導(dǎo)率較低的二氧化錫(SnO2)。當(dāng)傳感器所處環(huán)境中存在可燃氣體時,傳感器的電導(dǎo)率隨會空氣中可燃氣體濃度的增加而增大,因此適宜于液化氣、丁烷、丙烷、甲烷、酒精、氫氣、煙霧等氣體的探測,其電源工作電壓為3~5V。
1.3系統(tǒng)協(xié)調(diào)器的硬件設(shè)計
系統(tǒng)的協(xié)調(diào)節(jié)點是由XBee、Arduino單片機和FT232串口轉(zhuǎn)換芯片構(gòu)成,其中協(xié)調(diào)節(jié)點XBee擴展板可以方便地將XBee模塊連接到Arduino上,并通過為三個終端節(jié)點分配不同的網(wǎng)絡(luò)地址而獲取相應(yīng)的數(shù)據(jù),再利用USB轉(zhuǎn)串的FT232芯片完成XBee至上位機的數(shù)據(jù)傳輸,其硬件連接如圖2所示:
圖2 協(xié)調(diào)器的硬件連接
在Arduino的軟件開發(fā)平臺上,筆者通過免費的IDE編寫、編譯和下載了Arduino能夠執(zhí)行的代碼并完成系統(tǒng)設(shè)計要求。系統(tǒng)上電后首先運行setup()函數(shù),用于端口、傳感器、串口通信波特率的設(shè)置,然后分別完成下述各模塊的程序設(shè)計。
2.1終端節(jié)點的數(shù)據(jù)傳輸
XBee利用串口傳輸數(shù)據(jù),默認(rèn)為透明傳輸模式,設(shè)計中只需進行串口和目標(biāo)地址的簡單設(shè)置,如Server:“ip[]={10.255.127.253}”。由于Arduino內(nèi)核ATMEGA328P中自帶A/D接口,系統(tǒng)還節(jié)省了A/D轉(zhuǎn)換的軟件開銷。此外ATMEGA328P支持休眠模式,在終端節(jié)點的數(shù)據(jù)傳送至協(xié)調(diào)器節(jié)點后,即可進入低功耗狀態(tài)(即休眠狀態(tài))[7],若協(xié)調(diào)器有數(shù)據(jù)采集要求時,則MCU會被喚醒,其流程如圖3所示:
圖3 終端節(jié)點的低功耗傳送
2.2協(xié)調(diào)器節(jié)點匯聚數(shù)據(jù)
數(shù)據(jù)匯集過程中,協(xié)調(diào)器首先需要掃描信道、開啟網(wǎng)絡(luò)。由于XBee無線模塊自帶ZigBee協(xié)議棧的程序,因此在通信時利用程序修改參數(shù)即可實現(xiàn)組網(wǎng),如協(xié)調(diào)器置成ZIGBEE COORDINATOR AT方式,而終端節(jié)點置成ZIGBEE ENDDEVICE AT方式。隨后終端節(jié)點執(zhí)行Serial.print()函數(shù)發(fā)送數(shù)據(jù),而協(xié)調(diào)器則利用Serial.read()函數(shù)接收數(shù)據(jù),并將數(shù)據(jù)存入數(shù)組,然后執(zhí)行if()語句判斷接收到的數(shù)據(jù)排列是否符合要求,如符合則進入無線接收狀態(tài)。
2.3協(xié)調(diào)器與上位機串口通信
協(xié)調(diào)器的輸出端與串口FT232相連,F(xiàn)T232則連接上位機,其波特率設(shè)置為9600bps(如:Serial.begin (9600);)。打開串口后,協(xié)調(diào)器的MCU在LOOP循環(huán)中執(zhí)行Serial.print()函數(shù)即可連續(xù)發(fā)送數(shù)據(jù)至上位機。其流程如圖4所示:
圖4 協(xié)調(diào)器與上位機的串口通信流程
基于Arduino開發(fā)平臺和XBee模塊的無線傳輸功能,筆者實現(xiàn)了環(huán)境數(shù)據(jù)無線采集系統(tǒng)的設(shè)計,并制作硬件驗證上述系統(tǒng)功能,最終完成了溫濕度、光強度、煙霧濃度等數(shù)據(jù)的采集和傳輸。在串口調(diào)試工具中得到的采集數(shù)據(jù)如圖5所示:
圖5 數(shù)據(jù)采集的上位機顯示
由于該系統(tǒng)硬件裝置集成化程度高,便于快速連接和二次開發(fā),所以能夠為農(nóng)田數(shù)據(jù)采集、礦井環(huán)境監(jiān)控、禽舍環(huán)境監(jiān)測等系統(tǒng)的設(shè)計開發(fā)提供參考依據(jù)。
[1]林娣.田間信息的遠程獲取與無線傳輸系統(tǒng)的研究[J].電子技術(shù)與軟件工程,2014(18):100-100
[2]毛鵬軍,姜水,王俊,張伏,邱兆美.基于ZigBee技術(shù)的溫室環(huán)境無線監(jiān)測系統(tǒng)設(shè)計[J].中國農(nóng)機化學(xué)報,2015(1):102~106,115
[3][法]Robert Faludi著,沈鑫等譯.Arduino無線傳感器網(wǎng)絡(luò)實踐指南[M].北京:機械工業(yè)出版社,2013
[4]李華嵩,姜先威.基于BasicRF的ZigBee無線透傳模塊設(shè)計[J].通信技術(shù),2013(11):108-111
[5]王靜霞.一種與ZigBee/802.15.4協(xié)議兼容的RF模塊XBee/XBee Pro及其應(yīng)用[J].電子工程師.2007(03):24-27
[6]杜一騰,遲宗濤.基于Arduino與yeelink平臺的實時環(huán)境監(jiān)測系統(tǒng)[J].單片機與嵌入式系統(tǒng)應(yīng)用.2014(10):26-29
[7]楊繼志,郭敬.Arduinode互動產(chǎn)品平臺創(chuàng)新設(shè)計[J].單片機與嵌入式系統(tǒng)應(yīng)用,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-),男,四川三臺人,本科,研究方向為單片機嵌入式及無線傳感器的應(yīng)用與開發(fā)
張婧婧(1981-),女,湖南寧鄉(xiāng)人,碩士,新疆農(nóng)業(yè)大學(xué)計算機與信息工程學(xué)院講師,研究方向為復(fù)雜系統(tǒng)、嵌入式理論與應(yīng)用
2015-04-28
2015-05-12