1 引言
隨著生產技術的提高, 環(huán)境溫度指標越來越多的影響到生產效率、能源消耗和生活水平。不管是工業(yè)、農業(yè)、軍事及氣象領域, 還是日常生活環(huán)境, 都需要對溫度進行監(jiān)測。因而,設計可靠且實用的溫度采集系統(tǒng)顯得非常重要。
在傳統(tǒng)的溫度采集系統(tǒng)中, 節(jié)點一般采用有線連接方式, 布線繁瑣, 擴展性和可移植性較差。尤其對于廣闊空間環(huán)境中的溫度采集,如果采用有線方式其成本和功耗都比較高。而ZigBee 作為一種新興的短距離、低功耗、低成本的無線通信技術, 能廣泛應用于工業(yè)控制、消費電子、家庭自動化、醫(yī)療監(jiān)控各種領域。
本文設計了一種基于ZigBee 無線技術的多點溫度采集系統(tǒng), 實現(xiàn)了主從節(jié)點間數(shù)據(jù)的無線傳輸, 同時上位PC 機采用串口與主節(jié)點通信,并建立溫度數(shù)據(jù)庫,實現(xiàn)了數(shù)據(jù)的統(tǒng)一管理。該系統(tǒng)具有擴展性好、穩(wěn)定可靠、維護方便等特點。
2 系統(tǒng)整體概述
本文設計的溫度采集系統(tǒng)結構如圖1 所示。系統(tǒng)采用ZigBee 星型網(wǎng)絡拓撲結構,建立了一個主節(jié)點,四個從節(jié)點的無線傳感網(wǎng)絡,實現(xiàn)數(shù)據(jù)的無線傳輸。各個從節(jié)點連接數(shù)字溫度傳感器DS18B20 定時采集環(huán)境溫度,并通過無線傳感網(wǎng)絡將數(shù)據(jù)依次向主節(jié)點發(fā)送,主節(jié)點收到數(shù)據(jù)后通過串口傳給上位PC 機,上位機將采集的數(shù)據(jù)存入數(shù)據(jù)庫, 對數(shù)據(jù)進行分析處理, 并在監(jiān)控界面顯示溫度實時變化曲線。
圖1 溫度采集系統(tǒng)結構圖
3 系統(tǒng)硬件設計
3.1 主節(jié)點硬件設計
選擇CC2430 作為主節(jié)點的處理器,該芯片是全球首款支持ZigBee 協(xié)議的片上系統(tǒng)(SOC)解決方案,集成了一個8051MCU 內核以及符合IEEE802.15.4 規(guī)范的2.4GHz 的無線收發(fā)器。芯片內部有8kb 的RAM,可選32/64/128kB 的Flash 存儲單元,包含模擬數(shù)字轉換器、定時器、看門狗定時器、AES128 協(xié)處理器等,同時提供了2 個UART 接口以及21 個可編程I/O 引腳。該芯片具有高度集成性和豐富的硬件資源,使得外圍電路的設計變得十分簡單。
主節(jié)點是整個網(wǎng)絡的協(xié)調器,作為全功能設備(FullFunction Device,FFD),負責網(wǎng)絡組建和維護、溫度采集數(shù)據(jù)無線接收、與上位PC 機串口通信。因此采用CC2430-F128(128kB Flash)芯片,并在CC2430 典型應用電路的基礎上擴展串行通信接口,選用MAX3232 芯片實現(xiàn)TTL 與RS232 電平轉換。ZigBee 主節(jié)點的硬件電路如圖2 所示
。
圖2 ZigBee 主節(jié)點電路
3.2 從節(jié)點硬件設計
從節(jié)點主要負責溫度采集和數(shù)據(jù)無線傳輸, 可作為簡化功能設備(Reduced Function Device,RFD),以降低功耗和成本。芯片采用CC2430-F32(32kB Flash),其硬件電路和主節(jié)點大致相同, 只是去掉了串口通信電路,同時在從節(jié)點芯片的I / O 口上接入多個溫度傳感器DS18B20 以實現(xiàn)多點溫度數(shù)據(jù)的采集。
DS18B20 是“單總線”數(shù)字溫度傳感器,其測量溫度范圍為-55℃~+125℃,支持3~5. 5V 電壓供電, 主要由四部分組成:64 位光刻ROM、溫度傳感器、非易失性溫度報警觸發(fā)器和配置寄存器。ROM 中的64 位序列號出廠前已光刻固化,每個傳感器的序列號都是唯一的,因此可以在一根總線上掛接多個DS18B20,能極大減少I/O 口的占用。本系統(tǒng)中用DS18B20 進行多點溫度采集時,傳感器與從節(jié)點的CC2430 的連接形式如圖3 所示。
圖3 溫度傳感器節(jié)點連接圖
由于ZigBee 設備功耗很低,并且能設置成定時睡眠模式以進一步省電,而DS18B20 本身功率也非常小,所以本系統(tǒng)中的主、從各節(jié)點均采用2 節(jié)1.5V電池供電即可滿足實際需要。
4 系統(tǒng)軟件設計
4.1 溫度傳感器數(shù)據(jù)采集
DS18B20 可設定9~12 位的分辨率,本系統(tǒng)采用12位分辨率,轉換精度為0. 0625℃,轉換溫度信號所需最長時間為750ms。溫度數(shù)據(jù)由2 字節(jié)組成,以符號擴展的二進制補碼形式存儲,最低4 位是小數(shù)部分,中間7 位是整數(shù)部分, 1 位符號位。
DS18B20 內部RAM 由9 個字節(jié)的高速緩存器和E2PROM 組成,前2 個字節(jié)即為溫度數(shù)據(jù)。通過復位指令、ROM 和RAM 功能命令,即可完成對指定DS18B20溫度數(shù)據(jù)的采集和讀取, 所有讀寫操作都是通過與CC2430 的I/O 口連接的DQ 引腳完成。
在一線制總線上串接多個DS18B20 器件時,需要先發(fā)送跳過ROM 指令,將所有傳感器都進行一次溫度轉換,之后通過匹配ROM 依次讀取每個傳感器的溫度數(shù)據(jù),實現(xiàn)對單I/O 口上的多個DS18B20 器件的操作。整個溫度采集的流程如圖4 所示。
圖4 DS18B20 溫度采集流程圖
4.2 ZigBee 無線組網(wǎng)及數(shù)據(jù)通信
ZigBee 通信協(xié)議采用分層結構,節(jié)點通過在不同層上的特定服務來完成所要執(zhí)行的各種任務。本系統(tǒng)采用TI 提供的ZigBee2006 協(xié)議棧Z-Stack,在IEEE 802.15.4 標準物理層(PHY)和媒體訪問控制層(MAC)基礎上增加了網(wǎng)絡層、應用層和安全服務規(guī)范,是一種較好的無線傳感網(wǎng)絡組建方案。
ZigBee 設備類型按網(wǎng)絡功能分為三種:協(xié)調器、路由器、終端。由于本系統(tǒng)采用星型網(wǎng)絡拓撲結構,所以只存在協(xié)調器和終端兩種設備。
本系統(tǒng)中主節(jié)點被初始化為網(wǎng)絡協(xié)調器。協(xié)調器包含所有的網(wǎng)絡消息, 存儲容量最大、計算能力最強。
它的功能是發(fā)送網(wǎng)絡信標、建立網(wǎng)絡、管理網(wǎng)絡節(jié)點、存儲網(wǎng)絡節(jié)點信息、收發(fā)信息。
從節(jié)點被初始化為無信標網(wǎng)絡中的終端設備。上電復位后,即開始搜索指定信道上的網(wǎng)絡協(xié)調器,并發(fā)出連接請求。建立連接成功后, 從節(jié)點將得到一個16 位的網(wǎng)絡短地址,并采用非時隙CSMA-CA 機制,通過競爭取得信道使用權,向主節(jié)點發(fā)送數(shù)據(jù)。各從節(jié)點每30 秒讀取一次I/O 接口上多片溫度傳感器數(shù)值, 同時開啟睡眠定時器,當數(shù)據(jù)發(fā)送成功后該節(jié)點立即進入睡眠狀態(tài),最大程度地降低功耗, 延長從節(jié)點的電池使用時間。
數(shù)據(jù)包的格式由從節(jié)點串接的DS18B20 的數(shù)量決定,每個DS18B20 傳輸?shù)臄?shù)據(jù)長度定義為3 字節(jié),第1 字節(jié)為標識符,包括從節(jié)點編號,CC2430 的I/O 口編號以及此溫度傳感器的編號, 后2 個字節(jié)為溫度采集數(shù)據(jù)。
主節(jié)點收到數(shù)據(jù)包后, 對數(shù)據(jù)進行分析處理, 把從節(jié)點上的每個溫度傳感器的數(shù)據(jù)采集值進行轉換,得到實際的溫度值,然后發(fā)送給上位PC 機。主從各節(jié)點的組網(wǎng)及通信流程如圖5 所示。
圖5 主從節(jié)點組網(wǎng)通信流程圖
4.3 PC 機串口通信及監(jiān)控
圖6 上位機軟件運行界面
上位機采用VB 編程語言編寫串口通信及數(shù)據(jù)庫程序,在工程中添加MSComm 控件實現(xiàn)串口傳輸和接收數(shù)據(jù)[4]。使用ADO 對象連接Access 數(shù)據(jù)庫,將當前數(shù)據(jù)存入數(shù)據(jù)庫中,將控件Pictur eBox 作為容器,實現(xiàn)曲線圖的動態(tài)顯示,此過程涉及到曲線、坐標軸、格線和坐標刻度的消隱和重繪。消隱的實現(xiàn)主要用背景色重繪曲線和網(wǎng)格線, 并覆蓋坐標刻度數(shù)字, 重繪實時曲線和坐標軸網(wǎng)格線通過Li n e 方法來實現(xiàn), 坐標軸刻度、標簽、圖標等的標注使用Print 方法實現(xiàn)[5]。
當程序開始運行后, 打開串口, 就可將接收到的實時數(shù)據(jù)加入到各節(jié)點的歷史溫度數(shù)據(jù)庫,同時可以從運行界面看到歷史溫度變化曲線。圖表中曲線的最右端為當前溫度, 點擊節(jié)點按鈕, 然后選中指定的溫度數(shù)據(jù)框,即可查看對應傳感器節(jié)點的溫度歷史數(shù)據(jù)和變化情況, 軟件運行時的界面如圖6 所示。
5 結束語
本文設計了一種基于ZigBee 技術的無線溫度采集系統(tǒng),采用CC2430 芯片設計主從節(jié)點,硬件結構精簡、體積小、能耗低, 所組成的無線傳感網(wǎng)絡具有自組織,自適應的特點。通過實驗調試,該溫度采集系統(tǒng)達到了設計要求,效果良好。鑒于無線傳感網(wǎng)絡技術具有功耗低、數(shù)據(jù)傳輸可靠、網(wǎng)絡容量大、兼容性好、實現(xiàn)成本低等諸多優(yōu)點, 可廣泛應用于生產生活的各個領域, 尤其適用于數(shù)字家庭、智能大廈溫度控制、小區(qū)安防監(jiān)測等, 具有較好的通用性和應用前景。