詹曉蕓,朱娟(通訊作者)
(湖北文理學(xué)院,湖北襄陽,441053)
隨著物聯(lián)網(wǎng)時(shí)代的到來,傳統(tǒng)數(shù)字設(shè)備的有線連接已經(jīng)不再便利,在一定程度上反而限制了人們的生活。無線傳感器網(wǎng)絡(luò)是物聯(lián)網(wǎng)技術(shù)的關(guān)鍵,多個(gè)無線傳感器可以對(duì)各種參數(shù)進(jìn)行實(shí)時(shí)監(jiān)測、感知,以便采集各種信息和解決各類復(fù)雜細(xì)小的問題。zigbee技術(shù)是近距離無線傳感網(wǎng)絡(luò)采用的主流技術(shù),目前,zigbee技術(shù)已經(jīng)開始應(yīng)用在智能農(nóng)業(yè)、醫(yī)療、工業(yè)生產(chǎn)等各方面,均構(gòu)建了可靠、穩(wěn)定的無線傳感網(wǎng)絡(luò)數(shù)據(jù)采集處理解決方案,實(shí)現(xiàn)了各個(gè)領(lǐng)域的智能化、精準(zhǔn)化、數(shù)字化監(jiān)控,為人們的生活帶來了極大便利。
本系統(tǒng)主要分為溫濕度數(shù)據(jù)采集和遠(yuǎn)程數(shù)據(jù)傳輸兩部分。如圖1所示,zigbee無線網(wǎng)絡(luò)的第一部分主要由協(xié)調(diào)器和傳感器構(gòu)成的終端設(shè)備組成。在數(shù)據(jù)采集過程中,終端設(shè)備不斷從環(huán)境中采集溫濕度,并將結(jié)果發(fā)送到協(xié)調(diào)器。同時(shí),協(xié)調(diào)器將全方位處理接收到的數(shù)據(jù)并將其以數(shù)據(jù)包的形式傳輸至STM32單片機(jī)中。單片機(jī)將使用預(yù)先設(shè)計(jì)的算法處理、保存、顯示數(shù)據(jù),以提高系統(tǒng)數(shù)據(jù)遠(yuǎn)程傳輸?shù)男屎桶踩?。每次GPRS模塊從STM32接收數(shù)據(jù)包時(shí),都會(huì)將數(shù)據(jù)傳輸?shù)綌?shù)據(jù)庫中。數(shù)據(jù)管理中心進(jìn)行維護(hù),通過這種方式,用戶可以輕松訪問數(shù)據(jù)管理平臺(tái)以獲取有關(guān)當(dāng)時(shí)環(huán)境溫度和濕度的實(shí)時(shí)信息。
圖1 溫濕度采集系統(tǒng)的整體框架圖
所謂協(xié)調(diào)器,就是網(wǎng)絡(luò)組織的管理者。對(duì)于一般的應(yīng)用模型,一旦形成了zigbee網(wǎng)絡(luò),其主要功能是根據(jù)掃描選擇合適的參數(shù)來建立網(wǎng)絡(luò),每個(gè)zigbee網(wǎng)絡(luò)僅允許一個(gè)協(xié)調(diào)器在此網(wǎng)絡(luò)中找一條通道,隨后建立一個(gè)網(wǎng)絡(luò)信號(hào)以便于啟動(dòng)網(wǎng)絡(luò)[1]。由于整個(gè)網(wǎng)絡(luò)的起點(diǎn)是協(xié)調(diào)器,負(fù)責(zé)維護(hù)整個(gè)網(wǎng)絡(luò),并且還可以間接地址表,以及設(shè)計(jì)安全中心并執(zhí)行其他操作以維持與網(wǎng)絡(luò)其他成員的通信。如圖2所示,本系統(tǒng)以STM32為中心,電源給系統(tǒng)供電后,若想從OLED顯示屏上進(jìn)行某些操作時(shí),STM32會(huì)向CC2530發(fā)出相關(guān)指令,后續(xù)操作均由CC2530來控制,指令執(zhí)行完畢之后,以數(shù)據(jù)包的形式將數(shù)據(jù)發(fā)送給STM32,顯示于OLED顯示屏上。
圖2 zigbee協(xié)調(diào)器的硬件框圖
DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字輸出的溫濕度復(fù)合傳感器[2]。它通過采集當(dāng)前環(huán)境的溫濕度,同時(shí)將數(shù)據(jù)發(fā)送至協(xié)調(diào)器以便于協(xié)調(diào)器的進(jìn)一步處理。此傳感器的優(yōu)勢在于它將電阻式感濕元件和NTC測溫元件。兩器件相結(jié)合從而確保傳感器能高質(zhì)量準(zhǔn)確運(yùn)行。所以基于其優(yōu)勢的合理運(yùn)用,此傳感器不僅可用于醫(yī)療、家庭自動(dòng)控制也可以在軍事等領(lǐng)域發(fā)揮獨(dú)特作用。DHT11元器件的引腳說明:PIN1用于提供電量3V至5V;PIN2用于串行傳輸數(shù)據(jù);PIN3懸空即可;PIN4接地即可。DHT11電路原理圖如圖3所示。
圖3 DHT11電路原理圖
系統(tǒng)軟件設(shè)計(jì)分為兩部分,一部分是發(fā)射部分,另一部分是接收部分。如圖4所示,發(fā)射部分用于采集數(shù)據(jù),接收部分用于處理傳感器經(jīng)過zigbee網(wǎng)絡(luò)傳輸過來的溫度數(shù)據(jù)(數(shù)字信號(hào)),若發(fā)送成功,接收部分會(huì)對(duì)數(shù)據(jù)進(jìn)行進(jìn)一步處理,若發(fā)送失敗,數(shù)據(jù)會(huì)等待下一個(gè)周期進(jìn)行重發(fā),數(shù)據(jù)經(jīng)過單片機(jī)的有效處理后,有效信息將會(huì)顯示在OLED液晶屏上。
圖4 主程序的收發(fā)流程圖
如圖5所示,協(xié)調(diào)器上電后,首先完成對(duì)STM32、OLED和UART串行通信口的初始化,并在節(jié)點(diǎn)被設(shè)置為協(xié)調(diào)器之后,開始建立網(wǎng)絡(luò),等待傳感器、溫度采集終端加入網(wǎng)絡(luò)后,協(xié)調(diào)器將開始處理來自終端設(shè)備發(fā)射過來的采集數(shù)據(jù),單片機(jī)對(duì)是否接收到數(shù)據(jù)進(jìn)行一次判斷,若正確接收即對(duì)數(shù)據(jù)進(jìn)行處理和保存;若接受失敗,數(shù)據(jù)將會(huì)在等待四個(gè)機(jī)械周期后進(jìn)行重發(fā)并等待單片機(jī)接收。在單片機(jī)對(duì)數(shù)據(jù)處理和保存之后,它會(huì)將處理過的數(shù)據(jù)發(fā)送至OLED顯示屏上,隨后進(jìn)行無線傳輸直至結(jié)束。
如圖6所示,系統(tǒng)的溫度采集傳感器節(jié)點(diǎn)上電啟動(dòng)后,它將會(huì)主動(dòng)掃描指定的網(wǎng)絡(luò),并且向協(xié)調(diào)器發(fā)出入網(wǎng)請(qǐng)求和嘗試加入網(wǎng)絡(luò),如果不成功,則將等待下一次掃描周期的到來,再次掃描加入網(wǎng)絡(luò)。加入成功后,就與協(xié)調(diào)器分配的網(wǎng)絡(luò)地址進(jìn)行綁定,當(dāng)傳感器沒有任務(wù)時(shí)就進(jìn)入休眠狀態(tài),用以降低系統(tǒng)功耗,可以增加系統(tǒng)使用時(shí)間;當(dāng)系統(tǒng)出現(xiàn)任務(wù)時(shí),將會(huì)喚醒系統(tǒng),傳感器節(jié)點(diǎn)會(huì)每隔一段時(shí)間周期性的采集數(shù)據(jù)、讀取周圍環(huán)境溫度值,并將數(shù)據(jù)打包傳給父節(jié)點(diǎn)[4]。如果數(shù)據(jù)傳輸成功,傳感器則會(huì)進(jìn)入休眠模式,之后則等待定時(shí)喚醒;反之如若未傳輸成功,則會(huì)需要等待數(shù)據(jù)再次傳輸,直至傳輸成功進(jìn)入循環(huán)。
圖5 協(xié)調(diào)器接收過程流程圖
溫度和濕度是滿足居住和生活舒適度的最低要求,溫濕度硬件電路主要是由CC2530無線收發(fā)模塊、溫度和濕度傳感器、電源模塊幾大部分組成。溫濕度采集分為兩個(gè)部分,第一部分為室內(nèi)所有終端設(shè)備內(nèi)的溫濕度傳感器對(duì)溫濕度進(jìn)行采集,若采集成功就通過ADC電壓轉(zhuǎn)換,將采集到的電壓數(shù)據(jù)(模擬數(shù)據(jù))轉(zhuǎn)換為10進(jìn)制的數(shù)據(jù),同時(shí)將數(shù)據(jù)發(fā)送給協(xié)調(diào)器;若采集不成功就等待兩個(gè)機(jī)械周期重新對(duì)數(shù)據(jù)進(jìn)行采集并通過ADC轉(zhuǎn)換,在zigbee設(shè)備節(jié)點(diǎn)進(jìn)行數(shù)據(jù)發(fā)送,需經(jīng)過zigbee終端設(shè)備檢測是否發(fā)射成功,發(fā)射成功則由zigbee協(xié)調(diào)器接受,發(fā)射不成功則由zigbee設(shè)備節(jié)點(diǎn)重新發(fā)送。第二部分是協(xié)調(diào)器接收到數(shù)據(jù)后對(duì)所有的數(shù)據(jù)進(jìn)行整理,并通過串口將數(shù)據(jù)傳送到外接單片機(jī)STM32進(jìn)行數(shù)據(jù)處理和保存,同時(shí)傳給OLED進(jìn)行顯示。
圖6 傳感器節(jié)點(diǎn)流程圖
本系統(tǒng)在IAR EW8051環(huán)境下完成基于zigbee2007協(xié)議棧的軟件開發(fā),實(shí)現(xiàn)了星型組網(wǎng)下傳感器節(jié)點(diǎn)(左)到協(xié)調(diào)器節(jié)點(diǎn)(右)的無線溫度傳輸,測試過程如圖7所示。
圖7 系統(tǒng)測試圖
由測試結(jié)果可知,系統(tǒng)上電后傳感器節(jié)點(diǎn)和協(xié)調(diào)器節(jié)點(diǎn)成功組網(wǎng)后便可以獲取 zigbee 網(wǎng)絡(luò)中的通信節(jié)點(diǎn)MAC地址、網(wǎng)絡(luò)域名、信號(hào)強(qiáng)度、鏈路質(zhì)量等信息。進(jìn)一步初始化后,便可對(duì)環(huán)境的溫濕度信息進(jìn)行實(shí)時(shí)采集,經(jīng)測試采集距離可達(dá)10米,溫濕度數(shù)據(jù)精度可達(dá)0.01。
本文實(shí)現(xiàn)了基于zigbee智能無線溫濕度采集系統(tǒng)設(shè)計(jì),運(yùn)用zigbee無線傳感網(wǎng)絡(luò)技術(shù)、STM32嵌入式技術(shù)對(duì)室內(nèi)溫濕度進(jìn)行實(shí)時(shí)監(jiān)測,具有組網(wǎng)靈活、功耗低,成本低等優(yōu)點(diǎn)。該系統(tǒng)經(jīng)擴(kuò)展后可應(yīng)用于各種復(fù)雜溫度監(jiān)測場景中,解決實(shí)時(shí)性差、精度低、成本高等問題,具有良好市場應(yīng)用價(jià)值。