安徽博微長安電子有限公司 韓 濤
空軍駐合肥地區(qū)軍事代表室 陳 闖
安徽博微長安電子有限公司 李石榮
基于無線傳感器網(wǎng)絡的智能溫度監(jiān)控系統(tǒng)設計
安徽博微長安電子有限公司 韓 濤
空軍駐合肥地區(qū)軍事代表室 陳 闖
安徽博微長安電子有限公司 李石榮
為了在溫度控制要求較高的場合實現(xiàn)智能溫度控制,結(jié)合無線傳感器網(wǎng)絡和ZigBee等相關技術設計了一套智能溫度監(jiān)控系統(tǒng)。系統(tǒng)中協(xié)調(diào)器節(jié)點的主控單元選用STM32F103ZET6 嵌入式單片機,傳感器節(jié)點的數(shù)據(jù)采集與數(shù)據(jù)收發(fā)單元選用連接溫度傳感器DS18B20的CC2530無線射頻芯片。傳感器節(jié)點將采集到的溫度信息經(jīng)路由節(jié)點發(fā)送給協(xié)調(diào)器節(jié)點,由STM32F103ZET6單片機對收到的信息進行解析,然后通過串口轉(zhuǎn)發(fā)到上位機進行存儲、界面顯示和控制。結(jié)果表明:本系統(tǒng)可在溫度要求高的場所實現(xiàn)溫度實時信息無線采集、傳輸以及控制,具有體積小、功耗低、布點靈活等優(yōu)點,可用于多種環(huán)境中。
無線傳感器網(wǎng)絡;ZigBee;STM32F103ZET6;CC2530
溫度作為重要的環(huán)境指標,與人們的日常生活、生產(chǎn)、工作等息息相關。在各種環(huán)境中,如何快速、便捷、精確地監(jiān)測溫度變化并迅速作出響應顯得十分重要。近年來,無線傳感器網(wǎng)絡(WSN)的應用具有低功耗、低投入、網(wǎng)絡搭建自適應、網(wǎng)絡容量大等優(yōu)點,使其被普遍使用于數(shù)據(jù)采集和監(jiān)控等系統(tǒng)中。對于實時溫度控制要求較高的場合,如何構(gòu)建無線傳感器網(wǎng)絡系統(tǒng)實現(xiàn)穩(wěn)定、高效地進行無線環(huán)境溫度監(jiān)控是本文要解決的問題。本設計采用帶有CC2530的傳感器節(jié)點將采集到的溫度信息通過路由節(jié)點轉(zhuǎn)發(fā)給協(xié)調(diào)器節(jié)點,由STM32F103ZET6單片機對收到的信息進行解析,然后由USART接口轉(zhuǎn)發(fā)到上位機進行存儲、顯示和控制。
圖1 系統(tǒng)總體設計框圖
根據(jù)無線溫度監(jiān)控系統(tǒng)的低功耗、高準確度以及實時性強等特點,通過對WSN技術、ZigBee技術以及無線傳輸協(xié)議的研究,在需求分析的基礎上進行系統(tǒng)的總體設計。ZigBee是基于IEEE802.15.4標準的低功耗局域網(wǎng)協(xié)議,具有低功耗、網(wǎng)絡自組織以及網(wǎng)絡內(nèi)節(jié)點容量大等優(yōu)點,使得其在物聯(lián)網(wǎng)的眾多領域中具有其他無線通信技術難以取代的優(yōu)勢,被普遍地應用于WSN領域中[1]。同時結(jié)合嵌入式開發(fā)系統(tǒng)的特點,進行系統(tǒng)的硬件設計,并結(jié)合系統(tǒng)功能需求設計軟件部分,然后對整個系統(tǒng)進行軟硬件調(diào)試,從而建立一套適用于復雜環(huán)境的實時溫度監(jiān)控系統(tǒng)。
根據(jù)本系統(tǒng)的設計需求,系統(tǒng)共分為四個部分:傳感器節(jié)點、路由節(jié)點、協(xié)調(diào)器節(jié)點以及上位機監(jiān)控中心。協(xié)調(diào)器節(jié)點負責整個網(wǎng)絡的建立和管理,對監(jiān)控區(qū)域進行控制,并通過串口把傳感器節(jié)點傳來的數(shù)據(jù)送到上位機監(jiān)控中心進行處理、控制和顯示;路由器節(jié)點主要負責數(shù)據(jù)的轉(zhuǎn)發(fā),可實現(xiàn)多跳,從而擴大網(wǎng)絡的覆蓋范圍;傳感器節(jié)點主要采集所在環(huán)境區(qū)域的溫度信息等相關數(shù)據(jù),并由路由器節(jié)點發(fā)送給協(xié)調(diào)器節(jié)點。系統(tǒng)的工作原理是:適量的傳感器節(jié)點分散安裝在被監(jiān)控環(huán)境內(nèi),基于ZigBee協(xié)議的無線傳輸方式,各節(jié)點之間組成具有多跳的自適應網(wǎng)絡,傳感器節(jié)點將采集到的溫度信息經(jīng)路由節(jié)點發(fā)送給協(xié)調(diào)器節(jié)點,最后經(jīng)單片機串口將接收到的溫度信息發(fā)送給上位機監(jiān)控中心對數(shù)據(jù)進行分析和存儲,最后實現(xiàn)系統(tǒng)的控制和相關信息的顯示。系統(tǒng)的總體設計框圖如圖1所示。
圖2 系統(tǒng)協(xié)調(diào)器節(jié)點電路原理圖
2.1 協(xié)調(diào)器節(jié)點
協(xié)調(diào)器節(jié)點主要由控制單元和無線收發(fā)單元兩個部分組成,其中控制單元采用STM32F103ZET6單片機為核心,它是一款具有高性能、低功耗、低成本等優(yōu)點的32位基于Cortex-M3 ARM內(nèi)核的MCU,集成了512KB Flash和64KB SRAM,工作頻率可以達到72MHz,片上含有豐富的PWM,USART,USB接口,ADC等片上資源,完全可以滿足本系統(tǒng)需求,其擁有的3個12位的ADC和12位的DMA控制器,非常適用于速度和容量要求高的分布式數(shù)據(jù)采集系統(tǒng)[3]。對于STM32F103ZET6要正常工作,外部需要電源電路、晶體振蕩電路、JTAG程序下載調(diào)試接口和復位電路。在移植和應用開發(fā)中,需要經(jīng)常使用JTAG接口調(diào)試功能,在實際電路中預留20Pin接口供后期調(diào)試使用。
無線收發(fā)單元的核心采用CC2530無線射頻芯片,它是用于IEEE802.15.4、ZigBee和RF4CE應用的一個真正的片上系統(tǒng)(SoC)解決方案,由于其成本特別低,在組建網(wǎng)絡時可構(gòu)建龐大的通信網(wǎng)絡節(jié)點,結(jié)合了性能強悍的射頻收發(fā)器,統(tǒng)一的業(yè)界增強型8051單片機,并且系統(tǒng)內(nèi)可編程RAM達到了8KB[4]。CC2530有多種不同的工作模式,其中可以配置為睡眠模式,非常適用于功耗要求嚴格的場合。CC2530集成了TI公司行業(yè)先驅(qū)的ZigBee協(xié)議棧(Z-StackTM),為ZigBee系統(tǒng)提供了一個功能全面的技術方案。CC2530工作的系統(tǒng)只需要少量外部的輔助元器件,其設計難點是天線電路的設計和抗干擾的設計。在設計中使用了模塊化的設計方法,將CC2530射頻電路和其他電路相互獨立,同時為了節(jié)約成本和縮短研發(fā)時間,使用已有的CC2530集成電路模塊,有效傳輸距離最多可達100米。
系統(tǒng)協(xié)調(diào)器節(jié)點的電路原理圖如圖2所示。
2.2 傳感器節(jié)點
系統(tǒng)傳感器節(jié)點的設計主要采用CC253連接溫度傳感器DS18B20,實現(xiàn)無線采集溫度信息等數(shù)據(jù)。DS18B20是單總線式數(shù)字溫度傳感器,它具有體積小、功耗低、抗干擾性能強等優(yōu)點,非常適合于多點溫度監(jiān)控系統(tǒng),并且能夠?qū)⒉杉降臏囟刃畔⒅苯愚D(zhuǎn)化為串行數(shù)字信號送給CC2530,其量程為-55℃~+125℃,可編程A/D轉(zhuǎn)換精度為9位~12位,可測量的溫度分辨率最小能達到0.0625℃。采用該溫度傳感器不僅不需要額外復雜的模數(shù)轉(zhuǎn)化,而且它在極端環(huán)境下仍然具有良好的穩(wěn)定性和測量精度,同時還可以直觀地顯示出實時的溫度[5]。其具體電路原理圖如圖3所示。
2.3 鋰電池供電
圖3 系統(tǒng)傳感器節(jié)點電路原理圖
圖4 鋰電池供電電路原理圖
系統(tǒng)采用市場上最常見的可充電鋰離子電池作為電源對傳感器節(jié)點以及路由器節(jié)點進行單獨供電。鋰電池的額定工作電壓為3.6V,其放電曲線比較平緩,能夠確保CC2530芯片在接收和發(fā)送數(shù)據(jù)時具有非常好的線性特征。電壓轉(zhuǎn)換芯片選用Linear Technology公司的LTC3440,該芯片轉(zhuǎn)換器具有效率高、頻率固定以及降壓-升壓DC/DC等特點,并且可以利用單個電感器輸出電壓,它的輸入和輸出電壓范圍都在2.5~5.5V之間[6]。LTC3440轉(zhuǎn)換芯片在全部的工作模式下都能夠?qū)崿F(xiàn)連續(xù)傳送,對于增加單節(jié)鋰電池或者鎳氫電池的工作時間非常有效。鋰電池的輸入電壓經(jīng)過電路轉(zhuǎn)換后得到的3.3V電壓可以直接對CC2530芯片和DS18B20溫度傳感器進行供電。其具體電路原理圖如圖4所示。
系統(tǒng)的軟件設計主要可以分為三個部分,分別為:傳感器節(jié)點入網(wǎng)數(shù)據(jù)采集程序設計、協(xié)調(diào)器節(jié)點組網(wǎng)控制程序設計、上位機顯示和控制程序設計。
3.1 協(xié)調(diào)器節(jié)點組網(wǎng)控制程序設計
協(xié)調(diào)器節(jié)點程序功能是配置好STM32單片機和CC2530無線射頻單片機,其中包含單片機時鐘、GPIO、ADC、USART、中斷、定時器等的初始化,CC2530接收到數(shù)據(jù)后將數(shù)據(jù)通過串口傳給STM32單片機。為了降低功耗,當CC2530不需要進行數(shù)據(jù)收發(fā)時,將STM32F103ZET6和CC2530均配置為睡眠模式;當定時時間到時,STM32F103ZET6和CC2530均被定時器中斷喚醒,CC2530開始處于接收狀態(tài),接收由路由節(jié)點的CC2530發(fā)過來的信息,并將信息通過USART接口轉(zhuǎn)發(fā)到STM-32F103ZET6,MCU對收到的數(shù)據(jù)進行分析處理之后,再利用USART口轉(zhuǎn)發(fā)給上位機ETX模塊進行存儲、顯示和控制;最后再將兩者配置為睡眠模式,直到下一次被定時器中斷喚醒后才繼續(xù)接收路由節(jié)點發(fā)送過來的信息,如此循環(huán)。
ZigBee網(wǎng)絡中的協(xié)調(diào)器節(jié)點通信程序負責啟動整個ZigBee網(wǎng)絡,根據(jù)實際情況選擇合適的信息組建網(wǎng)絡,將各傳感器節(jié)點采集到的溫度數(shù)據(jù)進行匯聚。其中ZigBee網(wǎng)絡的建立過程:網(wǎng)絡中的協(xié)調(diào)器節(jié)點最先開始啟動,參照初始配置的網(wǎng)絡參數(shù)搭建ZigBee網(wǎng)絡,網(wǎng)絡搭建完成后,路由器節(jié)點與傳感器節(jié)點設備啟動,自動尋找該網(wǎng)絡并加入到現(xiàn)有組建好的ZigBee網(wǎng)絡,入網(wǎng)成功后傳感器節(jié)點和路由節(jié)點會得到由協(xié)調(diào)器節(jié)點動態(tài)分配的16位ZigBee地址,并將信息放入該ZigBee網(wǎng)絡鄰接表中,此時網(wǎng)絡搭建成功,整個ZigBee網(wǎng)絡采用分級輪詢或者分級時隙分配進行通信,具體組網(wǎng)過程如圖5所示[7]。
圖5 ZigBee組網(wǎng)過程
圖6 傳感器節(jié)點入網(wǎng)數(shù)據(jù)采集程序流程圖
根據(jù)該系統(tǒng)所選用單片機STM32F103ZET6的開發(fā)環(huán)境為Keil uvision4,該開發(fā)環(huán)境融合了代碼的編輯、編譯、下載和調(diào)試,使得軟件研發(fā)更加簡單,同時也縮短了程序開發(fā)的周期;CC2530的開發(fā)環(huán)境為IAR Embedded Workbench for 8051 8.10 Evaluation,CC2530所使用的協(xié)議棧為TI公司的ZStack-CC2530-2.3.0-1.4.0[8]。
3.2 傳感器節(jié)點入網(wǎng)數(shù)據(jù)采集程序設計
傳感器節(jié)點入網(wǎng)和溫度信息采集程序用以實現(xiàn)傳感器節(jié)點加入?yún)f(xié)調(diào)器節(jié)點搭建的ZigBee網(wǎng)絡、DS18B20溫度傳感器的驅(qū)動、溫度測量與預處理,然后通過ZigBee網(wǎng)絡把處理后的數(shù)據(jù)信息經(jīng)過路由節(jié)點發(fā)送給協(xié)調(diào)器節(jié)點。溫度的測量為10分鐘一次,其它時間CC2530被配置為睡眠模式。當10分鐘定時時間到后,CC2530被定時器中斷喚醒,開始進行溫度的測量,并將該數(shù)據(jù)傳送到網(wǎng)絡中的路由器,發(fā)送成功后CC2530再次被配置為睡眠模式。其流程圖如圖6所示。
3.3 上位機顯示控制程序設計
PC上位機開發(fā)環(huán)境采用Microsoft公司推出的Microsoft Visual Studio 2010,其中Microsoft Visual Studio 2010通過調(diào)用串口通訊控件MSComm實現(xiàn)上位機和下位機的通信[9]。該界面采用模塊化的設計思路,根據(jù)系統(tǒng)的功能將系統(tǒng)分為數(shù)據(jù)傳輸、數(shù)據(jù)處理和界面交互三個部分。結(jié)合本設計實例,采用VS2010開發(fā)的溫度監(jiān)控界面,其中包括當前采集、歷史數(shù)據(jù)查詢、參數(shù)設置和報警控制等菜單。設計的上位機主控制界面如圖7所示。
圖7 上位機顯示和控制界面
基于無線傳感網(wǎng)絡的智能溫度監(jiān)控系統(tǒng)利用無線傳感網(wǎng)絡技術將溫度信息實時地傳送到上位機監(jiān)控中心,當某一個傳感器節(jié)點所在區(qū)域的溫度超出報警上限或下限時,上位機監(jiān)控中心可通過控制加熱和制冷系統(tǒng)及時地調(diào)節(jié)溫度。在智能家居、智能雞舍、智能糧倉和智能溫室大棚等對實時溫度控制要求較高的場合具有很好的應用價值。
[1]高守瑋,吳燦陽.ZigBee技術實踐教程[M].北京航空航天大學出版社,2009.
[2]Epinosa-Faller F J,Rendon-Rodriguez G E.A ZigBee wireless sensor network for monitoring an aquaculture recirculating system[J].Journal of applied research and technology,2012,10,10(3):380-387.
[3]劉軍.例說STM32[M].北京:北京航空航天大學出版社,2011.
[4]李志方,鐘洪聲.IEEE802.15.4的CC2530無線數(shù)據(jù)收發(fā)設計[J].單片機與嵌入式系統(tǒng)應用,2011,11(07):43-45.
[5]DS18B20 Data Sheet[Z].DALLAS SEMICONDUCTOR,2001.
[6]楊樹成,楊志勇,王建佳.基于MSP430和CC2530的溫室大棚數(shù)據(jù)采集系統(tǒng)設計[J].電子設計工程,2014,22(5):168-171.
[7]章偉聰,俞新武,李忠成.基于CC2530和ZigBee協(xié)議棧設計無線網(wǎng)絡傳感器節(jié)點[J].計算機系統(tǒng)應用,2011,20(7).
[8]陳克濤,張海輝,張永猛.基于CC2530的無線傳感器網(wǎng)絡網(wǎng)關節(jié)點的設[J].西北農(nóng)林科技大學學報(自然科學版),2014(5):183-188.
[9]李琳娜.Visual C++編程實戰(zhàn)寶典[M].北京:清華大學出版社,2014.
韓濤(1988—),男,安徽六安人,碩士研究生,主要從事嵌入式系統(tǒng)開發(fā)與雷達終端錄取方向的研究。