◆張亞林
基于ZigBee的室內(nèi)監(jiān)測節(jié)點(diǎn)功能設(shè)計(jì)與實(shí)現(xiàn)
◆張亞林
(廣州應(yīng)用科技學(xué)院 廣東 511370)
本文基于WSN實(shí)現(xiàn)其中的各監(jiān)測節(jié)點(diǎn)進(jìn)行數(shù)據(jù)采集并將采集的數(shù)據(jù)實(shí)時(shí)準(zhǔn)確地?zé)o線傳輸給主控節(jié)點(diǎn)。
WSN;無線傳感節(jié)點(diǎn);數(shù)據(jù)采集傳輸
本文利用ZigBee節(jié)點(diǎn)和協(xié)調(diào)器組建WSN作為室內(nèi)監(jiān)測網(wǎng)絡(luò),通過設(shè)計(jì)無線傳感監(jiān)測節(jié)點(diǎn)對室內(nèi)的情況進(jìn)行實(shí)時(shí)有效監(jiān)測控制,從而實(shí)現(xiàn)全方位的安全監(jiān)測。
監(jiān)測節(jié)點(diǎn)完成對具體設(shè)備的控制,同時(shí)接受協(xié)調(diào)器的控制,并完成與協(xié)調(diào)器的數(shù)據(jù)交互。
對于監(jiān)測節(jié)點(diǎn)設(shè)備,需要定期收集數(shù)據(jù),并且可以通過讀取傳感器來實(shí)現(xiàn)采集數(shù)據(jù)。同時(shí)還要通過協(xié)調(diào)器接收轉(zhuǎn)發(fā)的用戶控制命令,實(shí)現(xiàn)用戶對設(shè)備的控制[1],流程如圖1所示。
監(jiān)測節(jié)點(diǎn)設(shè)備主要有4項(xiàng)功能:(1)節(jié)點(diǎn)向協(xié)調(diào)器匯報(bào)、(2)組網(wǎng)成功、(3)節(jié)點(diǎn)聯(lián)網(wǎng)成功后主動(dòng)發(fā)送MAC地址給協(xié)調(diào)器進(jìn)行登記、(4)監(jiān)測節(jié)點(diǎn)開啟定時(shí)事件,監(jiān)測節(jié)點(diǎn)設(shè)備的工作。
將兩個(gè)工程的PANID設(shè)置為同一個(gè)值。將協(xié)調(diào)器工程燒入?yún)f(xié)調(diào)器。將節(jié)點(diǎn)工程燒寫入一個(gè)節(jié)點(diǎn),作為監(jiān)測節(jié)點(diǎn)(監(jiān)測設(shè)備)。將節(jié)點(diǎn)工程的SampleApp.c中第187行“#define END_MONITOR”注釋掉,再燒寫入一個(gè)節(jié)點(diǎn),作為控制節(jié)點(diǎn)。用串口線將PC機(jī)和協(xié)調(diào)器連接,啟動(dòng)“串口調(diào)試助手和驅(qū)動(dòng)串口聊天助手”,配置端口選擇、配置設(shè)備管理器中顯示的COM口,設(shè)置波特率。重啟協(xié)調(diào)器和監(jiān)測節(jié)點(diǎn),即可查看協(xié)調(diào)器接收到的數(shù)據(jù),包括監(jiān)測節(jié)點(diǎn)的注冊數(shù)據(jù)以及定時(shí)發(fā)出的采集到的溫濕度等傳感器數(shù)據(jù)。關(guān)閉監(jiān)測節(jié)點(diǎn),啟動(dòng)控制節(jié)點(diǎn),可以看到控制節(jié)點(diǎn)的注冊數(shù)據(jù),復(fù)制后粘貼到發(fā)送區(qū),點(diǎn)擊發(fā)送,表示協(xié)調(diào)器發(fā)送控制信號給控制節(jié)點(diǎn),改變控制節(jié)點(diǎn)上燈的閃動(dòng)狀態(tài)。
圖1 監(jiān)測節(jié)點(diǎn)設(shè)備工作流程圖
監(jiān)測節(jié)點(diǎn)調(diào)用相關(guān)的傳感器采集數(shù)據(jù),并打包傳送給協(xié)調(diào)器。并根據(jù)采集到的數(shù)據(jù)判斷節(jié)點(diǎn)的具體狀態(tài)。根據(jù)人體感應(yīng)模塊,判斷有沒有人入侵;根據(jù)煙霧模塊判斷是否有火情警報(bào);根據(jù)溫濕度判斷是否有火情和爆水管。這些具體的狀態(tài)也要打包上傳給協(xié)調(diào)器,如圖2所示。
圖2 監(jiān)測節(jié)點(diǎn)的監(jiān)測數(shù)據(jù)存儲
節(jié)點(diǎn)網(wǎng)絡(luò)連接成功后,將主動(dòng)發(fā)送MAC地址給協(xié)調(diào)器執(zhí)行登記,然后啟動(dòng)定時(shí)事件進(jìn)行監(jiān)測數(shù)據(jù)匯報(bào),如圖2所示。
圖3 監(jiān)測節(jié)點(diǎn)的無線數(shù)據(jù)傳輸過程
在定時(shí)事件到來時(shí),調(diào)用SampleApp_SendPeriodicMessage( )實(shí)現(xiàn)數(shù)據(jù)匯報(bào)到協(xié)調(diào)器[2],如圖4所示。
WSN控制節(jié)點(diǎn)主要負(fù)責(zé)組網(wǎng)、和網(wǎng)關(guān)通過串口進(jìn)行交互、收集監(jiān)測節(jié)點(diǎn)的數(shù)據(jù)、轉(zhuǎn)發(fā)指令到監(jiān)測節(jié)點(diǎn)。
在控制節(jié)點(diǎn)設(shè)備建立無線網(wǎng)絡(luò)后,監(jiān)測節(jié)點(diǎn)自動(dòng)加入,然后監(jiān)測節(jié)點(diǎn)設(shè)備周期性地采集[26]數(shù)據(jù)并將其發(fā)送給控制節(jié)點(diǎn)設(shè)備。
在Z-STACK中,控制節(jié)點(diǎn)調(diào)用SampleApp_Message MSGCB(afIncomingMSGPacket_t *pkt)中的數(shù)據(jù)包協(xié)議解析函數(shù)uint8 Monitor_analysis()將接收到的數(shù)據(jù)封裝放到自定義的數(shù)組中。
for i<-0 to 16
do Netrecv_data[i] = pkt->cmd.Data[i]
控制節(jié)點(diǎn)用來收集監(jiān)測節(jié)點(diǎn)的數(shù)據(jù),每個(gè)監(jiān)測節(jié)點(diǎn)8位。解析Zigbee無線包數(shù)據(jù)。根據(jù)功能碼,將各監(jiān)測節(jié)點(diǎn)的數(shù)據(jù)存儲到對應(yīng)位置。發(fā)送指令到監(jiān)測節(jié)點(diǎn),如圖5所示。
圖4 監(jiān)測節(jié)點(diǎn)設(shè)備的無線數(shù)據(jù)廣播通信實(shí)現(xiàn)流程
圖5 協(xié)調(diào)器下發(fā)指令給監(jiān)測節(jié)點(diǎn)
選取三個(gè)監(jiān)測節(jié)點(diǎn)以5s為周期,連續(xù)采集環(huán)境數(shù)據(jù)。并由監(jiān)測節(jié)點(diǎn)上傳數(shù)據(jù)到協(xié)調(diào)器節(jié)點(diǎn),利用仿真下載器USB Debug Adapter和TI Packet Sniffer捕獲數(shù)據(jù)包,結(jié)果如表1所示。
表1 監(jiān)測節(jié)點(diǎn)功能測試表
節(jié)點(diǎn)與協(xié)調(diào)器距離(m)發(fā)送數(shù)據(jù)包數(shù)(個(gè))接收數(shù)據(jù)包數(shù)(個(gè))丟包率(%) 溫濕度10100010000 煙霧10100010000 人體紅外1010009990.1 溫濕度20100010000 煙霧2010009980.2 人體紅外2010009980.2
測試結(jié)果顯示各節(jié)點(diǎn)的數(shù)據(jù)正常和丟包率很小,具有較好的可靠性和穩(wěn)定性。
[1]ZigBee組網(wǎng)學(xué)習(xí)筆記(8).-煙霧傳感器 - 琴弦上、漫步 - CSDN博客-《網(wǎng)絡(luò)(http://blog.csdn.net)》- 2017.
[2]戴圣賢.基于無線傳感網(wǎng)絡(luò)的稀土礦采場邊坡在線監(jiān)測預(yù)警系統(tǒng)設(shè)計(jì)及實(shí)驗(yàn)研究[D].江西理工大學(xué),2018.05.26.