徐元文,張婧婧
(新疆農業大學計算機與信息工程學院,烏魯木齊830052)
基于XBee的環境數據采集系統的設計與實現
徐元文,張婧婧
(新疆農業大學計算機與信息工程學院,烏魯木齊830052)
以采集環境數據為主要目標,利用XBee無線傳輸模塊,實現Arduino平臺上環境監測系統的設計。系統以常見的溫濕度傳感器、光照傳感器、煙霧傳感器構建數據采集終端,通過XBee組建的ZigBee網絡進行數據傳輸,最終將環境數據通過串口送至上位機,用于數據的存儲和分析。設計基于主流開發平臺Arduino,對系統的二次開發及實際應用具有指導意義。
ZigBee;XBee;Arduino;農業數據采集;傳感器
國家大學生創新創業訓練計劃項目(No.201310758013)
ZigBee基于IEEE802.15.4的標準,具有低功耗、低速率、低成本和短距離通信等特點,目前已被大規模地用于物聯網的相關設計和開發中[1~2]。本設計采用Digi公司的XBee模塊即是一款內置協議棧的ZigBee模塊,通過設置模塊的參數能夠完成與串口間的數據透傳[3~4],因此便于進行數據采集和上位機顯示過程中的硬件連接。加之其滿足無線、低成本、低功耗、穩定性等設計要求[5],最終選用它實現了無線數據采集及短距離傳輸的任務。
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 協調器的硬件連接
在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 協調器與上位機的串口通信流程
基于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