劉科峰+鄧秀勤+劉志煌
摘 要: 針對傳統(tǒng)溫度監(jiān)控系統(tǒng)存在布線困難、線路容易老化等缺點, 開發(fā)了一種以CC2430為核心的多點無線溫度監(jiān)控系統(tǒng)。該系統(tǒng)采用ZigBee協(xié)議組成樹狀網(wǎng)絡(luò)實現(xiàn)各節(jié)點之間的數(shù)據(jù)傳輸,采用單線數(shù)字溫度傳感器 DS18B20 采集現(xiàn)場溫度數(shù)據(jù)。在給出系統(tǒng)總體結(jié)構(gòu)的基礎(chǔ)上, 闡述了系統(tǒng)硬件電路的設(shè)計和軟件的實現(xiàn)方法。系統(tǒng)具有界面友好、組網(wǎng)靈活、成本低等優(yōu)點。經(jīng)測試,該系統(tǒng)取得了較為滿意的監(jiān)控效果。稍加修改,還可廣泛應(yīng)用于各領(lǐng)域的環(huán)境參數(shù)自動監(jiān)控。
關(guān)鍵詞: ZigBee; CC2430; 溫度監(jiān)控; DS18B20
中圖分類號: TN964?34 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2014)14?0081?03
Multi?point temperature monitoring system based on ZigBee
LIU Ke?feng, DENG Xiu?qin, LIU Zhi?huang
(School of Applied Mathematics, Guangdong University of Technology, Guangzhou 510520, China)
Abstract: A multi?point wireless temperature monitoring system with CC2430 as its core is developed to overcome the shortcomings in traditional system, such as difficult wiring and easily aging circuit. In the system, a tree?shaped network constructed by ZigBee protocol is adopted to implement data transmission among nodes, and the single digital temperature sensor DS18B20 is used to collect on?site temperature data. The overall structure, hardware circuit design and software implementation method are elaborated in this paper. There are many advantages in this new system, such as friendly interface, flexible networking, low cost and so on. A satisfactory monitoring result was achieved in the test of this system. It can also be widely used in automatic monitoring of environmental parameters in various fields.
Keywords: ZigBee; CC2430; temperature monitoring; DS18B20
溫度在工農(nóng)業(yè)生產(chǎn)中起著舉足輕重的作用,在冶金、醫(yī)藥、食品制造和化學(xué)制造等行業(yè)尤其顯得重要。在適當(dāng)?shù)臏囟认律a(chǎn)的產(chǎn)品質(zhì)量、產(chǎn)量和合格率會大大的提高[1]。傳統(tǒng)的溫度監(jiān)控系統(tǒng)大部分是通過有線的方式組網(wǎng)傳送數(shù)據(jù)。但是這種傳輸方式存在布線麻煩、線路容易老化和網(wǎng)絡(luò)擴(kuò)展性差等問題。所以無線溫度監(jiān)控系統(tǒng)越來越受到人們的青睞。
ZigBee是一種新興的短距離、低功耗、低數(shù)據(jù)率、低復(fù)雜度的無線網(wǎng)絡(luò)技術(shù)[2], 相對于傳統(tǒng)的無線網(wǎng)絡(luò)技術(shù),ZigBee具有支持多跳路由協(xié)議、自組網(wǎng),低功耗,低成本等特點[3?4],主要用于距離短、功耗低且傳輸速率不高的各種電子設(shè)備之間進(jìn)行數(shù)據(jù)傳輸[5]。用ZigBee組成的無線網(wǎng)絡(luò)取代有線網(wǎng)絡(luò)是個不錯的選擇。本文設(shè)計的溫度監(jiān)控系統(tǒng)能夠在監(jiān)控端的上位機(jī)上對多個位置的溫度進(jìn)行設(shè)置、檢測和控制。
1 系統(tǒng)設(shè)計方案
整個多點溫度監(jiān)控系統(tǒng)由上位機(jī)、協(xié)調(diào)器、路由器和溫度監(jiān)控終端組成,采用ZigBee協(xié)議組成樹狀網(wǎng)絡(luò)實現(xiàn)各節(jié)點之間的數(shù)據(jù)傳輸,如圖1所示。下面對各模塊分別介紹。
上位機(jī)為監(jiān)控中心模塊, 由PC機(jī)和聲光報警系統(tǒng)組成。用Java開發(fā)的監(jiān)控軟件在PC機(jī)運行,該監(jiān)控軟件能從串口讀取協(xié)調(diào)器發(fā)送過來的實測溫度值,顯示各溫度監(jiān)控終端的實測溫度值,設(shè)置各溫度監(jiān)控終端的期望溫度值、上限報警值、下限報警值,產(chǎn)生報警信號和向協(xié)調(diào)器發(fā)送期望溫度值。
溫度監(jiān)控終端負(fù)責(zé)采集監(jiān)控點的溫度數(shù)據(jù), 并把數(shù)據(jù)通過ZigBee 網(wǎng)絡(luò)發(fā)送給路由器或協(xié)調(diào)器,接收路由器或協(xié)調(diào)器發(fā)送過來的期望溫度值,根據(jù)期望溫度值與實測溫度值的偏差產(chǎn)生控制信號。路由器是連接溫度監(jiān)控終端和協(xié)調(diào)器的橋梁,主要起擴(kuò)大網(wǎng)絡(luò)規(guī)模的作用,距離協(xié)調(diào)器較近的溫度監(jiān)控終端可以直接把數(shù)據(jù)發(fā)送至協(xié)調(diào)器而不必通過路由器。如果網(wǎng)絡(luò)規(guī)模較小,可以不用路由器,直接將協(xié)調(diào)器與溫度監(jiān)控終端作星型連接。協(xié)調(diào)器通過RS 232接口與上位機(jī)通信,協(xié)調(diào)器與上位機(jī)之間還可以進(jìn)行交互操作。
圖1 溫度監(jiān)控系統(tǒng)設(shè)計方案
2 系統(tǒng)的硬件設(shè)計
協(xié)調(diào)器、路由器和溫度監(jiān)控終端的核心部件為CC2430。CC2430在單個芯片上集成了ZigBee射頻收發(fā)器核心和1顆工業(yè)級小巧高效的8051控制器[6]。片上資源豐富,只需要很少的外圍部件配合就能實現(xiàn)信號的收發(fā)功能[7]。協(xié)調(diào)器、路由器和溫度監(jiān)控終端通過ZigBee技術(shù)組成無線通信網(wǎng)絡(luò)。其中路由器可由一個基本的CC2430模塊構(gòu)成,相對簡單,不再討論。
2.1 溫度監(jiān)控終端的硬件設(shè)計
本設(shè)計采用CC2430和DSl8B20作為主要芯片實現(xiàn)溫度監(jiān)控終端,其硬件結(jié)構(gòu)如圖2所示。
圖2 溫度監(jiān)控終端的硬件結(jié)構(gòu)
DSl8B20是Dallas公司推出的1?Wire式單總線智能數(shù)字溫度傳感器,與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度[8]。DSl8B20只有三線接口, 分別為地線、數(shù)據(jù)線、電源線[9]。CC2430的P1_3引腳與DS18B20的數(shù)據(jù)線引腳相連接,通過該連接可完成CC2430與DS18B20的雙向通信。
控制信號從P0口傳出,經(jīng)光電隔離器件后進(jìn)行D/A變換,最后對模擬信號進(jìn)行功率放大以便控制升溫設(shè)備和降溫設(shè)備。電源模塊由分壓、穩(wěn)壓電路和電池組成,給節(jié)點提供穩(wěn)定的3.3 V電源。晶振電路的本振時鐘信號選擇內(nèi)部電路提供,外圍電路由晶體振蕩器和2個負(fù)載電容組成。
2.2 協(xié)調(diào)器節(jié)點的硬件設(shè)計
協(xié)調(diào)器節(jié)點由CC2430芯片和外圍電路組成,外圍電路包括晶振時鐘電路、射頻輸入/輸出匹配電路、微控制器接口電路和串口電路4個部分。協(xié)調(diào)器節(jié)點的大部分硬件電路與溫度監(jiān)控終端節(jié)點相同,主要不同體現(xiàn)在串口電路。串口電路通過SP3223E完成電平轉(zhuǎn)換和數(shù)據(jù)收發(fā)[10],SP3223E的R1OUT,T1IN引腳分別接CC2430的P0_2,P0_3引腳。串口提供了一個標(biāo)準(zhǔn)的9針串行接口,如圖3所示。
圖3 串口電路
3 系統(tǒng)的軟件設(shè)計
系統(tǒng)的軟件實現(xiàn)是以ZigBee協(xié)議棧為基礎(chǔ),通過調(diào)用相關(guān)函數(shù)來編寫應(yīng)用程序。主要包括ZigBee協(xié)調(diào)器的建立網(wǎng)絡(luò)與其他節(jié)點的加入網(wǎng)絡(luò)、其他節(jié)點與協(xié)調(diào)器的通信、溫度監(jiān)控終端對溫度的讀取及控制信號的產(chǎn)生和上位機(jī)軟件的設(shè)計。
3.1 協(xié)調(diào)器節(jié)點的軟件設(shè)計
在一個ZigBee網(wǎng)絡(luò)中, 只有協(xié)調(diào)器可以建立網(wǎng)絡(luò), 協(xié)調(diào)器承擔(dān)網(wǎng)絡(luò)管理和數(shù)據(jù)收發(fā)的功能。協(xié)調(diào)器在完成系統(tǒng)初始化、網(wǎng)絡(luò)建立以及加入管理以后,通過串口讀取上位機(jī)發(fā)來的各溫度監(jiān)控終端的期望溫度值,將這些期望溫度值轉(zhuǎn)發(fā)給各溫度監(jiān)控終端,轉(zhuǎn)發(fā)成功后進(jìn)入接收狀態(tài),接收來自各溫度監(jiān)控終端的實測溫度值,并將數(shù)據(jù)通過串口轉(zhuǎn)發(fā)到上位機(jī)上,程序流程圖如圖4所示。
3.2 溫度監(jiān)控終端的軟件設(shè)計
溫度監(jiān)控終端在上電以后,進(jìn)行節(jié)點初始化。在成功加入已有網(wǎng)絡(luò)后,接收來自協(xié)調(diào)器的本終端的期望溫度值,并保存該期望溫度值。然后初始化DS18B20,讀取實測溫度值,并將實測溫度值發(fā)送給協(xié)調(diào)器。根據(jù)期望溫度值與實測溫度值的偏差產(chǎn)生控制信號,為了降低能耗,溫度監(jiān)控終端的CC2430進(jìn)入低功耗狀態(tài),當(dāng)定時時間到以后,進(jìn)入下一輪循環(huán)。溫度監(jiān)控終端程序流程圖如圖5所示。由于每個節(jié)點事先分配了一個惟一的地址,當(dāng)節(jié)點接收到一個數(shù)據(jù)包時, 先取出該數(shù)據(jù)包包頭的地址與自己的地址比較, 如果一致則接收, 否則就丟棄。
圖4 協(xié)調(diào)器節(jié)點程序流程圖
3.3 上位機(jī)軟件設(shè)計
本系統(tǒng)采用Java語言和Access運用面向?qū)ο笏枷腴_發(fā)上位機(jī)程序。上位機(jī)程序主要實現(xiàn)監(jiān)控和數(shù)據(jù)處理兩大功能。包含3個溫度監(jiān)控終端的監(jiān)控部分的運行界面如圖6所示,主要用來與用戶實現(xiàn)交互式操作,設(shè)置串口,顯示實測溫度值,設(shè)置和顯示期望溫度值、上限報警值和下限報警值。按下“保存溫度數(shù)據(jù)”按鈕開始保存溫度數(shù)據(jù)。按下“停止保存溫度數(shù)據(jù)”按鈕停止保存溫度數(shù)據(jù)。按下“數(shù)據(jù)處理”按鈕彈出“數(shù)據(jù)處理”窗體。可以查看歷史數(shù)據(jù)、報表和溫度統(tǒng)計數(shù)據(jù)。
由于Java SE本身并不提供對串口操作的類,所以必須下載javax.comm包,并配置編程環(huán)境[11]。SerialPort對象調(diào)用setSerialPortParams()方法設(shè)置串口屬性后,再調(diào)用getOutputStream()方法獲得輸出流對象,輸出流對象調(diào)用write(byte b[])方法將數(shù)組b中的內(nèi)容寫入輸出流。同理,SerialPort的對象調(diào)用getInputStream()方法獲得輸入流對象,輸入流對象調(diào)用read()方法接收串口數(shù)據(jù)。
圖5 溫度監(jiān)控終端程序流程圖
圖6 上位機(jī)程序運行界面
4 系統(tǒng)測試
為了保證溫度監(jiān)控系統(tǒng)正常可靠的工作,必須對系統(tǒng)進(jìn)行測試,測試系統(tǒng)由1臺上位機(jī)、1個協(xié)調(diào)器節(jié)點、2個路由器節(jié)點、3個溫度監(jiān)控終端節(jié)點和升溫降溫設(shè)備組成。協(xié)調(diào)器節(jié)點、路由器節(jié)點和溫度監(jiān)控終端節(jié)點組成樹狀網(wǎng)絡(luò)。測試結(jié)果表明:系統(tǒng)數(shù)據(jù)傳輸準(zhǔn)確、可靠,功耗小, 成本低,能使實測溫度值逼近期望溫度值,符合系統(tǒng)設(shè)計要求。
5 結(jié) 語
本文提出了一種基于ZigBee的多點溫度監(jiān)控系統(tǒng)的解決方案,完成了以CC2430芯片為核心的傳感器節(jié)點的軟硬件設(shè)計。測試結(jié)果表明:基于ZigBee的多點溫度監(jiān)控系統(tǒng), 具有可靠性高、功耗小和成本低等特點, 能夠滿足多點溫度監(jiān)控系統(tǒng)的需要。ZigBee方案組網(wǎng)靈活、傳輸可靠、成本低廉,可以很好地解決有線通信方式布線麻煩、線路容易老化和網(wǎng)絡(luò)擴(kuò)展性差等問題。本系統(tǒng)稍加修改還可實現(xiàn)對濕度,壓強(qiáng)、光照度等參數(shù)的監(jiān)控。
參考文獻(xiàn)
[1] 李強(qiáng),田國棟.基于DS18B20的室內(nèi)智能溫度控制系統(tǒng)設(shè)計[J].電子設(shè)計工程,2012,20(3):34?36.
[2] 曹莉,曾黃麟,樂英高.基于ZigBee 和MSP430 無線溫度控制系統(tǒng)設(shè)計[J].四川理工學(xué)院學(xué)報:自然科學(xué)版,2012,25(1):52?55.
[3] 陳國紹,丁莉,王中生.基于ZigBee的大棚環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(10):16?18.
[4] 白曉亮,宗曉萍,孫雪.基于ZigBee的無線燈光調(diào)節(jié)器的設(shè)計[J].現(xiàn)代電子技術(shù),2013,36(4):13?15.
[5] 劉一婷,楊恒,張正炳.基于ZigBee的倉庫監(jiān)控系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(4):33?35.
[6] 李明亮,蒙洋,康輝英.例說ZigBee[M].北京:北京航空航天大學(xué)出版社,2013.
[7] 陳曉燕,龐濤.基于ZigBee網(wǎng)絡(luò)的溫室節(jié)水灌溉系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2013,32(5):82?85.
[8] 李萍.基于DS18B20的多路溫度監(jiān)測系統(tǒng)設(shè)計與仿真[J].現(xiàn)代電子技術(shù),2013,36(10):122?124.
[9] 呂建波.基于單總線數(shù)字溫度傳感器DSl8B20的測溫系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(19):117?119.
[10] 余謙.基于ZigBee與51內(nèi)核的射頻無線傳感器網(wǎng)絡(luò)節(jié)點硬件設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(7):11?12.
[11] 邱占芝,于曉龍.基于Java的汽車衡稱重管理系統(tǒng)關(guān)鍵技術(shù)[J].大連交通大學(xué)學(xué)報,2011,32(4):75?78.
2.1 溫度監(jiān)控終端的硬件設(shè)計
本設(shè)計采用CC2430和DSl8B20作為主要芯片實現(xiàn)溫度監(jiān)控終端,其硬件結(jié)構(gòu)如圖2所示。
圖2 溫度監(jiān)控終端的硬件結(jié)構(gòu)
DSl8B20是Dallas公司推出的1?Wire式單總線智能數(shù)字溫度傳感器,與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度[8]。DSl8B20只有三線接口, 分別為地線、數(shù)據(jù)線、電源線[9]。CC2430的P1_3引腳與DS18B20的數(shù)據(jù)線引腳相連接,通過該連接可完成CC2430與DS18B20的雙向通信。
控制信號從P0口傳出,經(jīng)光電隔離器件后進(jìn)行D/A變換,最后對模擬信號進(jìn)行功率放大以便控制升溫設(shè)備和降溫設(shè)備。電源模塊由分壓、穩(wěn)壓電路和電池組成,給節(jié)點提供穩(wěn)定的3.3 V電源。晶振電路的本振時鐘信號選擇內(nèi)部電路提供,外圍電路由晶體振蕩器和2個負(fù)載電容組成。
2.2 協(xié)調(diào)器節(jié)點的硬件設(shè)計
協(xié)調(diào)器節(jié)點由CC2430芯片和外圍電路組成,外圍電路包括晶振時鐘電路、射頻輸入/輸出匹配電路、微控制器接口電路和串口電路4個部分。協(xié)調(diào)器節(jié)點的大部分硬件電路與溫度監(jiān)控終端節(jié)點相同,主要不同體現(xiàn)在串口電路。串口電路通過SP3223E完成電平轉(zhuǎn)換和數(shù)據(jù)收發(fā)[10],SP3223E的R1OUT,T1IN引腳分別接CC2430的P0_2,P0_3引腳。串口提供了一個標(biāo)準(zhǔn)的9針串行接口,如圖3所示。
圖3 串口電路
3 系統(tǒng)的軟件設(shè)計
系統(tǒng)的軟件實現(xiàn)是以ZigBee協(xié)議棧為基礎(chǔ),通過調(diào)用相關(guān)函數(shù)來編寫應(yīng)用程序。主要包括ZigBee協(xié)調(diào)器的建立網(wǎng)絡(luò)與其他節(jié)點的加入網(wǎng)絡(luò)、其他節(jié)點與協(xié)調(diào)器的通信、溫度監(jiān)控終端對溫度的讀取及控制信號的產(chǎn)生和上位機(jī)軟件的設(shè)計。
3.1 協(xié)調(diào)器節(jié)點的軟件設(shè)計
在一個ZigBee網(wǎng)絡(luò)中, 只有協(xié)調(diào)器可以建立網(wǎng)絡(luò), 協(xié)調(diào)器承擔(dān)網(wǎng)絡(luò)管理和數(shù)據(jù)收發(fā)的功能。協(xié)調(diào)器在完成系統(tǒng)初始化、網(wǎng)絡(luò)建立以及加入管理以后,通過串口讀取上位機(jī)發(fā)來的各溫度監(jiān)控終端的期望溫度值,將這些期望溫度值轉(zhuǎn)發(fā)給各溫度監(jiān)控終端,轉(zhuǎn)發(fā)成功后進(jìn)入接收狀態(tài),接收來自各溫度監(jiān)控終端的實測溫度值,并將數(shù)據(jù)通過串口轉(zhuǎn)發(fā)到上位機(jī)上,程序流程圖如圖4所示。
3.2 溫度監(jiān)控終端的軟件設(shè)計
溫度監(jiān)控終端在上電以后,進(jìn)行節(jié)點初始化。在成功加入已有網(wǎng)絡(luò)后,接收來自協(xié)調(diào)器的本終端的期望溫度值,并保存該期望溫度值。然后初始化DS18B20,讀取實測溫度值,并將實測溫度值發(fā)送給協(xié)調(diào)器。根據(jù)期望溫度值與實測溫度值的偏差產(chǎn)生控制信號,為了降低能耗,溫度監(jiān)控終端的CC2430進(jìn)入低功耗狀態(tài),當(dāng)定時時間到以后,進(jìn)入下一輪循環(huán)。溫度監(jiān)控終端程序流程圖如圖5所示。由于每個節(jié)點事先分配了一個惟一的地址,當(dāng)節(jié)點接收到一個數(shù)據(jù)包時, 先取出該數(shù)據(jù)包包頭的地址與自己的地址比較, 如果一致則接收, 否則就丟棄。
圖4 協(xié)調(diào)器節(jié)點程序流程圖
3.3 上位機(jī)軟件設(shè)計
本系統(tǒng)采用Java語言和Access運用面向?qū)ο笏枷腴_發(fā)上位機(jī)程序。上位機(jī)程序主要實現(xiàn)監(jiān)控和數(shù)據(jù)處理兩大功能。包含3個溫度監(jiān)控終端的監(jiān)控部分的運行界面如圖6所示,主要用來與用戶實現(xiàn)交互式操作,設(shè)置串口,顯示實測溫度值,設(shè)置和顯示期望溫度值、上限報警值和下限報警值。按下“保存溫度數(shù)據(jù)”按鈕開始保存溫度數(shù)據(jù)。按下“停止保存溫度數(shù)據(jù)”按鈕停止保存溫度數(shù)據(jù)。按下“數(shù)據(jù)處理”按鈕彈出“數(shù)據(jù)處理”窗體。可以查看歷史數(shù)據(jù)、報表和溫度統(tǒng)計數(shù)據(jù)。
由于Java SE本身并不提供對串口操作的類,所以必須下載javax.comm包,并配置編程環(huán)境[11]。SerialPort對象調(diào)用setSerialPortParams()方法設(shè)置串口屬性后,再調(diào)用getOutputStream()方法獲得輸出流對象,輸出流對象調(diào)用write(byte b[])方法將數(shù)組b中的內(nèi)容寫入輸出流。同理,SerialPort的對象調(diào)用getInputStream()方法獲得輸入流對象,輸入流對象調(diào)用read()方法接收串口數(shù)據(jù)。
圖5 溫度監(jiān)控終端程序流程圖
圖6 上位機(jī)程序運行界面
4 系統(tǒng)測試
為了保證溫度監(jiān)控系統(tǒng)正常可靠的工作,必須對系統(tǒng)進(jìn)行測試,測試系統(tǒng)由1臺上位機(jī)、1個協(xié)調(diào)器節(jié)點、2個路由器節(jié)點、3個溫度監(jiān)控終端節(jié)點和升溫降溫設(shè)備組成。協(xié)調(diào)器節(jié)點、路由器節(jié)點和溫度監(jiān)控終端節(jié)點組成樹狀網(wǎng)絡(luò)。測試結(jié)果表明:系統(tǒng)數(shù)據(jù)傳輸準(zhǔn)確、可靠,功耗小, 成本低,能使實測溫度值逼近期望溫度值,符合系統(tǒng)設(shè)計要求。
5 結(jié) 語
本文提出了一種基于ZigBee的多點溫度監(jiān)控系統(tǒng)的解決方案,完成了以CC2430芯片為核心的傳感器節(jié)點的軟硬件設(shè)計。測試結(jié)果表明:基于ZigBee的多點溫度監(jiān)控系統(tǒng), 具有可靠性高、功耗小和成本低等特點, 能夠滿足多點溫度監(jiān)控系統(tǒng)的需要。ZigBee方案組網(wǎng)靈活、傳輸可靠、成本低廉,可以很好地解決有線通信方式布線麻煩、線路容易老化和網(wǎng)絡(luò)擴(kuò)展性差等問題。本系統(tǒng)稍加修改還可實現(xiàn)對濕度,壓強(qiáng)、光照度等參數(shù)的監(jiān)控。
參考文獻(xiàn)
[1] 李強(qiáng),田國棟.基于DS18B20的室內(nèi)智能溫度控制系統(tǒng)設(shè)計[J].電子設(shè)計工程,2012,20(3):34?36.
[2] 曹莉,曾黃麟,樂英高.基于ZigBee 和MSP430 無線溫度控制系統(tǒng)設(shè)計[J].四川理工學(xué)院學(xué)報:自然科學(xué)版,2012,25(1):52?55.
[3] 陳國紹,丁莉,王中生.基于ZigBee的大棚環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(10):16?18.
[4] 白曉亮,宗曉萍,孫雪.基于ZigBee的無線燈光調(diào)節(jié)器的設(shè)計[J].現(xiàn)代電子技術(shù),2013,36(4):13?15.
[5] 劉一婷,楊恒,張正炳.基于ZigBee的倉庫監(jiān)控系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(4):33?35.
[6] 李明亮,蒙洋,康輝英.例說ZigBee[M].北京:北京航空航天大學(xué)出版社,2013.
[7] 陳曉燕,龐濤.基于ZigBee網(wǎng)絡(luò)的溫室節(jié)水灌溉系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2013,32(5):82?85.
[8] 李萍.基于DS18B20的多路溫度監(jiān)測系統(tǒng)設(shè)計與仿真[J].現(xiàn)代電子技術(shù),2013,36(10):122?124.
[9] 呂建波.基于單總線數(shù)字溫度傳感器DSl8B20的測溫系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(19):117?119.
[10] 余謙.基于ZigBee與51內(nèi)核的射頻無線傳感器網(wǎng)絡(luò)節(jié)點硬件設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(7):11?12.
[11] 邱占芝,于曉龍.基于Java的汽車衡稱重管理系統(tǒng)關(guān)鍵技術(shù)[J].大連交通大學(xué)學(xué)報,2011,32(4):75?78.
2.1 溫度監(jiān)控終端的硬件設(shè)計
本設(shè)計采用CC2430和DSl8B20作為主要芯片實現(xiàn)溫度監(jiān)控終端,其硬件結(jié)構(gòu)如圖2所示。
圖2 溫度監(jiān)控終端的硬件結(jié)構(gòu)
DSl8B20是Dallas公司推出的1?Wire式單總線智能數(shù)字溫度傳感器,與傳統(tǒng)的熱敏電阻相比,它能夠直接讀出被測溫度[8]。DSl8B20只有三線接口, 分別為地線、數(shù)據(jù)線、電源線[9]。CC2430的P1_3引腳與DS18B20的數(shù)據(jù)線引腳相連接,通過該連接可完成CC2430與DS18B20的雙向通信。
控制信號從P0口傳出,經(jīng)光電隔離器件后進(jìn)行D/A變換,最后對模擬信號進(jìn)行功率放大以便控制升溫設(shè)備和降溫設(shè)備。電源模塊由分壓、穩(wěn)壓電路和電池組成,給節(jié)點提供穩(wěn)定的3.3 V電源。晶振電路的本振時鐘信號選擇內(nèi)部電路提供,外圍電路由晶體振蕩器和2個負(fù)載電容組成。
2.2 協(xié)調(diào)器節(jié)點的硬件設(shè)計
協(xié)調(diào)器節(jié)點由CC2430芯片和外圍電路組成,外圍電路包括晶振時鐘電路、射頻輸入/輸出匹配電路、微控制器接口電路和串口電路4個部分。協(xié)調(diào)器節(jié)點的大部分硬件電路與溫度監(jiān)控終端節(jié)點相同,主要不同體現(xiàn)在串口電路。串口電路通過SP3223E完成電平轉(zhuǎn)換和數(shù)據(jù)收發(fā)[10],SP3223E的R1OUT,T1IN引腳分別接CC2430的P0_2,P0_3引腳。串口提供了一個標(biāo)準(zhǔn)的9針串行接口,如圖3所示。
圖3 串口電路
3 系統(tǒng)的軟件設(shè)計
系統(tǒng)的軟件實現(xiàn)是以ZigBee協(xié)議棧為基礎(chǔ),通過調(diào)用相關(guān)函數(shù)來編寫應(yīng)用程序。主要包括ZigBee協(xié)調(diào)器的建立網(wǎng)絡(luò)與其他節(jié)點的加入網(wǎng)絡(luò)、其他節(jié)點與協(xié)調(diào)器的通信、溫度監(jiān)控終端對溫度的讀取及控制信號的產(chǎn)生和上位機(jī)軟件的設(shè)計。
3.1 協(xié)調(diào)器節(jié)點的軟件設(shè)計
在一個ZigBee網(wǎng)絡(luò)中, 只有協(xié)調(diào)器可以建立網(wǎng)絡(luò), 協(xié)調(diào)器承擔(dān)網(wǎng)絡(luò)管理和數(shù)據(jù)收發(fā)的功能。協(xié)調(diào)器在完成系統(tǒng)初始化、網(wǎng)絡(luò)建立以及加入管理以后,通過串口讀取上位機(jī)發(fā)來的各溫度監(jiān)控終端的期望溫度值,將這些期望溫度值轉(zhuǎn)發(fā)給各溫度監(jiān)控終端,轉(zhuǎn)發(fā)成功后進(jìn)入接收狀態(tài),接收來自各溫度監(jiān)控終端的實測溫度值,并將數(shù)據(jù)通過串口轉(zhuǎn)發(fā)到上位機(jī)上,程序流程圖如圖4所示。
3.2 溫度監(jiān)控終端的軟件設(shè)計
溫度監(jiān)控終端在上電以后,進(jìn)行節(jié)點初始化。在成功加入已有網(wǎng)絡(luò)后,接收來自協(xié)調(diào)器的本終端的期望溫度值,并保存該期望溫度值。然后初始化DS18B20,讀取實測溫度值,并將實測溫度值發(fā)送給協(xié)調(diào)器。根據(jù)期望溫度值與實測溫度值的偏差產(chǎn)生控制信號,為了降低能耗,溫度監(jiān)控終端的CC2430進(jìn)入低功耗狀態(tài),當(dāng)定時時間到以后,進(jìn)入下一輪循環(huán)。溫度監(jiān)控終端程序流程圖如圖5所示。由于每個節(jié)點事先分配了一個惟一的地址,當(dāng)節(jié)點接收到一個數(shù)據(jù)包時, 先取出該數(shù)據(jù)包包頭的地址與自己的地址比較, 如果一致則接收, 否則就丟棄。
圖4 協(xié)調(diào)器節(jié)點程序流程圖
3.3 上位機(jī)軟件設(shè)計
本系統(tǒng)采用Java語言和Access運用面向?qū)ο笏枷腴_發(fā)上位機(jī)程序。上位機(jī)程序主要實現(xiàn)監(jiān)控和數(shù)據(jù)處理兩大功能。包含3個溫度監(jiān)控終端的監(jiān)控部分的運行界面如圖6所示,主要用來與用戶實現(xiàn)交互式操作,設(shè)置串口,顯示實測溫度值,設(shè)置和顯示期望溫度值、上限報警值和下限報警值。按下“保存溫度數(shù)據(jù)”按鈕開始保存溫度數(shù)據(jù)。按下“停止保存溫度數(shù)據(jù)”按鈕停止保存溫度數(shù)據(jù)。按下“數(shù)據(jù)處理”按鈕彈出“數(shù)據(jù)處理”窗體。可以查看歷史數(shù)據(jù)、報表和溫度統(tǒng)計數(shù)據(jù)。
由于Java SE本身并不提供對串口操作的類,所以必須下載javax.comm包,并配置編程環(huán)境[11]。SerialPort對象調(diào)用setSerialPortParams()方法設(shè)置串口屬性后,再調(diào)用getOutputStream()方法獲得輸出流對象,輸出流對象調(diào)用write(byte b[])方法將數(shù)組b中的內(nèi)容寫入輸出流。同理,SerialPort的對象調(diào)用getInputStream()方法獲得輸入流對象,輸入流對象調(diào)用read()方法接收串口數(shù)據(jù)。
圖5 溫度監(jiān)控終端程序流程圖
圖6 上位機(jī)程序運行界面
4 系統(tǒng)測試
為了保證溫度監(jiān)控系統(tǒng)正常可靠的工作,必須對系統(tǒng)進(jìn)行測試,測試系統(tǒng)由1臺上位機(jī)、1個協(xié)調(diào)器節(jié)點、2個路由器節(jié)點、3個溫度監(jiān)控終端節(jié)點和升溫降溫設(shè)備組成。協(xié)調(diào)器節(jié)點、路由器節(jié)點和溫度監(jiān)控終端節(jié)點組成樹狀網(wǎng)絡(luò)。測試結(jié)果表明:系統(tǒng)數(shù)據(jù)傳輸準(zhǔn)確、可靠,功耗小, 成本低,能使實測溫度值逼近期望溫度值,符合系統(tǒng)設(shè)計要求。
5 結(jié) 語
本文提出了一種基于ZigBee的多點溫度監(jiān)控系統(tǒng)的解決方案,完成了以CC2430芯片為核心的傳感器節(jié)點的軟硬件設(shè)計。測試結(jié)果表明:基于ZigBee的多點溫度監(jiān)控系統(tǒng), 具有可靠性高、功耗小和成本低等特點, 能夠滿足多點溫度監(jiān)控系統(tǒng)的需要。ZigBee方案組網(wǎng)靈活、傳輸可靠、成本低廉,可以很好地解決有線通信方式布線麻煩、線路容易老化和網(wǎng)絡(luò)擴(kuò)展性差等問題。本系統(tǒng)稍加修改還可實現(xiàn)對濕度,壓強(qiáng)、光照度等參數(shù)的監(jiān)控。
參考文獻(xiàn)
[1] 李強(qiáng),田國棟.基于DS18B20的室內(nèi)智能溫度控制系統(tǒng)設(shè)計[J].電子設(shè)計工程,2012,20(3):34?36.
[2] 曹莉,曾黃麟,樂英高.基于ZigBee 和MSP430 無線溫度控制系統(tǒng)設(shè)計[J].四川理工學(xué)院學(xué)報:自然科學(xué)版,2012,25(1):52?55.
[3] 陳國紹,丁莉,王中生.基于ZigBee的大棚環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(10):16?18.
[4] 白曉亮,宗曉萍,孫雪.基于ZigBee的無線燈光調(diào)節(jié)器的設(shè)計[J].現(xiàn)代電子技術(shù),2013,36(4):13?15.
[5] 劉一婷,楊恒,張正炳.基于ZigBee的倉庫監(jiān)控系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(4):33?35.
[6] 李明亮,蒙洋,康輝英.例說ZigBee[M].北京:北京航空航天大學(xué)出版社,2013.
[7] 陳曉燕,龐濤.基于ZigBee網(wǎng)絡(luò)的溫室節(jié)水灌溉系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),2013,32(5):82?85.
[8] 李萍.基于DS18B20的多路溫度監(jiān)測系統(tǒng)設(shè)計與仿真[J].現(xiàn)代電子技術(shù),2013,36(10):122?124.
[9] 呂建波.基于單總線數(shù)字溫度傳感器DSl8B20的測溫系統(tǒng)設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(19):117?119.
[10] 余謙.基于ZigBee與51內(nèi)核的射頻無線傳感器網(wǎng)絡(luò)節(jié)點硬件設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2013,3(7):11?12.
[11] 邱占芝,于曉龍.基于Java的汽車衡稱重管理系統(tǒng)關(guān)鍵技術(shù)[J].大連交通大學(xué)學(xué)報,2011,32(4):75?78.