宋英杰,薄敬東,王義濤,萬慶華,崔傳金
(華北理工大學(xué)電氣工程學(xué)院,河北唐山 063210)
近些年物聯(lián)網(wǎng)通信技術(shù)的不斷迭代更新,同時(shí)對(duì)無線傳感器網(wǎng)絡(luò)系統(tǒng)的穩(wěn)定性與響應(yīng)速度要求提高。無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)是一種由大量傳感器節(jié)點(diǎn)組成的分布式傳感網(wǎng)絡(luò),具有數(shù)據(jù)采集、處理、傳輸?shù)裙δ堋R云渚珳?zhǔn)度高、部署靈活等特點(diǎn),廣泛應(yīng)用于農(nóng)業(yè)[1]、醫(yī)療[2]、建筑[3]及環(huán)境檢測(cè)[4]等領(lǐng)域。RT-Thread物聯(lián)網(wǎng)操作系統(tǒng)憑借高穩(wěn)定性、豐富的中間組件及服務(wù)層和國產(chǎn)自主可控,已廣泛應(yīng)用于嵌入式設(shè)備開發(fā)。本設(shè)計(jì)運(yùn)用RT-Thread系統(tǒng)提升無線傳感器網(wǎng)絡(luò)穩(wěn)定性,并對(duì)方案可行性展開分析與研究。
近些年,由于物聯(lián)網(wǎng)及網(wǎng)絡(luò)通信的快速發(fā)展,針對(duì)無線傳感器網(wǎng)絡(luò)方向的研究受到了廣泛關(guān)注。劉飛飛等[5]設(shè)計(jì)了一種基于ZigBee協(xié)議的農(nóng)業(yè)環(huán)境檢測(cè)系統(tǒng),實(shí)現(xiàn)了分布式數(shù)據(jù)采集功能。但若網(wǎng)絡(luò)協(xié)調(diào)器接入大量終端設(shè)備數(shù)據(jù)傳輸,會(huì)造成數(shù)據(jù)阻塞等情況發(fā)生,系統(tǒng)穩(wěn)定性難以保證。賈青青等[6]通過NB-IoT設(shè)計(jì)監(jiān)控節(jié)點(diǎn)應(yīng)用于對(duì)環(huán)境檢測(cè),每個(gè)終端系統(tǒng)均以微控制器(MCU)為核心,對(duì)傳感器數(shù)據(jù)進(jìn)行讀取及通信傳輸時(shí)會(huì)增加系統(tǒng)冗余,當(dāng)節(jié)點(diǎn)設(shè)備增多時(shí),造成網(wǎng)絡(luò)延遲高,會(huì)直接影響實(shí)際使用效果。謝暉等[7]通過LoRa技術(shù)實(shí)現(xiàn)低功耗下對(duì)環(huán)境檢測(cè),在保證低功耗同時(shí)會(huì)增加系統(tǒng)對(duì)數(shù)據(jù)傳輸延遲,若多數(shù)據(jù)接收時(shí)會(huì)對(duì)系統(tǒng)處理性能提出更高要求。上述研究工作在通信系統(tǒng)結(jié)構(gòu)方面具有較高的適用性,但當(dāng)眾多節(jié)點(diǎn)設(shè)備將數(shù)據(jù)上傳時(shí),對(duì)節(jié)點(diǎn)設(shè)備處理性能方面要求較高。
為解決上述設(shè)計(jì)存在的問題,設(shè)計(jì)了一種基于RT-Thread和ESP-NOW的無線傳感器網(wǎng)絡(luò)系統(tǒng),在短距離通信傳輸時(shí)引用ESP-NOW協(xié)議以縮短傳輸延時(shí),采用RT-Thread系統(tǒng)在提高處理能力的同時(shí)提高其系統(tǒng)穩(wěn)定性。
該系統(tǒng)按照感知層、傳輸匯聚層及應(yīng)用層架構(gòu)模型進(jìn)行搭建[8]。感知層設(shè)計(jì)有多組終端傳感器節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)由各類傳感器、微控制器及通信模組構(gòu)成[9-10],負(fù)責(zé)數(shù)據(jù)的采集、顯示、發(fā)送。感知節(jié)點(diǎn)與匯聚節(jié)點(diǎn)之間采用ESP-NOW協(xié)議進(jìn)行通信。傳輸層由微控制器基于RT-Thread物聯(lián)網(wǎng)系統(tǒng)構(gòu)成,采用RT-Thread系統(tǒng)為每個(gè)感知層節(jié)點(diǎn)數(shù)據(jù)接收處理創(chuàng)建為一個(gè)線程[11-12],以線程調(diào)度對(duì)感知節(jié)點(diǎn)數(shù)據(jù)接收切換,同時(shí)對(duì)屏幕顯示、存儲(chǔ)、上傳等線程進(jìn)行創(chuàng)建。云端接收和感知節(jié)點(diǎn)控制的指令在任務(wù)中作為事件觸發(fā),可通過云平臺(tái)直接對(duì)感知層節(jié)點(diǎn)的數(shù)據(jù)傳輸狀態(tài)進(jìn)行控制[13-14]。應(yīng)用層是基于阿里云的物聯(lián)網(wǎng)開發(fā)平臺(tái)搭建云服務(wù)器及基于樹莓派搭建的本地服務(wù)器,以提供數(shù)據(jù)的顯示與分析,用戶可通過Web端或樹莓派服務(wù)器端對(duì)數(shù)據(jù)進(jìn)行訪問,并且遠(yuǎn)程查看和控制各感知節(jié)點(diǎn)的各項(xiàng)數(shù)據(jù)及工作狀態(tài),系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 無線傳感器網(wǎng)絡(luò)系統(tǒng)結(jié)構(gòu)
感知層為無線傳感器網(wǎng)絡(luò)的核心層,主要由分布在局域網(wǎng)不同處的各類傳感器組成,是獲取相關(guān)信息的重要組成部分。每個(gè)感知節(jié)點(diǎn)由供電電路、主控系統(tǒng)、傳感器模塊、通信模組以及屏幕顯示等5部分組成。
感知層終端主控選擇ESP-07S通信模組,其內(nèi)置Tensilica L106 32位RISC超低功耗微控制器,同時(shí)擁有SPI、IIC、UART等外設(shè)接口。該模組通信頻率為2.4 GHz,內(nèi)置TCP/IP協(xié)議棧,支持STA、AP、STA+AP 3種工作模式。通過對(duì)該模組進(jìn)行編程實(shí)現(xiàn)對(duì)外圍傳感器的數(shù)據(jù)采集,每個(gè)節(jié)點(diǎn)設(shè)計(jì)接入不同類型傳感器,包括光照強(qiáng)度、氣壓強(qiáng)度、溫度數(shù)據(jù)、CO2濃度等4種相關(guān)參數(shù),通過采集的數(shù)據(jù)來驗(yàn)證系統(tǒng)方案的可行性及分析系統(tǒng)工作穩(wěn)定性。節(jié)點(diǎn)顯示采集到的數(shù)據(jù)以及節(jié)點(diǎn)工作狀態(tài),按鍵可調(diào)節(jié)數(shù)據(jù)上傳的時(shí)間間隔。感知層節(jié)點(diǎn)系統(tǒng)結(jié)構(gòu)圖如圖2所示。
圖2 感知層節(jié)點(diǎn)系統(tǒng)結(jié)構(gòu)
供電電源采用3.7V、1 500 mA鋰電池,為保證節(jié)點(diǎn)穩(wěn)定工作,防止電壓下降導(dǎo)致ESP-07S復(fù)位情況發(fā)生,每節(jié)點(diǎn)均設(shè)計(jì)電源穩(wěn)壓電路。采用AMS1117 LDO芯片提供3.3 V直流電源。ESP-07S通過模擬IIC協(xié)議對(duì)傳感器數(shù)據(jù)進(jìn)行讀取及屏幕顯示。感知層節(jié)點(diǎn)傳感器連接如圖3所示。
圖3 傳感器接線原理圖
傳輸層為無線傳感器網(wǎng)絡(luò)的中心層,為匯聚處理各感知節(jié)點(diǎn)數(shù)據(jù)而設(shè)計(jì)。匯聚節(jié)點(diǎn)選用32位STM32F103VET6 MCU為主控。首先匯聚節(jié)點(diǎn)選用ESP-12F完成對(duì)各感知節(jié)點(diǎn)的數(shù)據(jù)接收,在數(shù)據(jù)處理完成后可通過本地顯示及Micro SD卡數(shù)據(jù)的本地存儲(chǔ)。其次為保證適用于各種場(chǎng)合環(huán)境,數(shù)據(jù)通過EC600N 4G模組上傳至云服務(wù)器,選用阿里云物聯(lián)網(wǎng)平臺(tái)進(jìn)行數(shù)據(jù)在線顯示;WiFi模組與樹莓派4B通信,本地服務(wù)器實(shí)現(xiàn)接收、存儲(chǔ)、分析、顯示等功能。匯聚節(jié)點(diǎn)系統(tǒng)結(jié)構(gòu)如圖4所示。
圖4 匯聚節(jié)點(diǎn)系統(tǒng)結(jié)構(gòu)
為保證通信模組工作正常,匯聚節(jié)點(diǎn)采用5 V DC電源供電,外圍接晶振、復(fù)位、電源電路等。通過繪制PCB轉(zhuǎn)接板搭建通信電路與接口外設(shè),轉(zhuǎn)接板設(shè)有各節(jié)點(diǎn)指示燈、接口以及通信模組電路,指示燈觀察各個(gè)感知節(jié)點(diǎn)數(shù)據(jù)采集與通信是否正常。通過按鍵可對(duì)感知節(jié)點(diǎn)的數(shù)據(jù)上傳間隔進(jìn)行控制。由于采用的模塊均為集成開發(fā)模組,故不需要特殊的外圍電路處理。
感知層以ESP-07S通信模組為核心,軟件程序流程如圖5所示,傳感器數(shù)據(jù)采集為各節(jié)點(diǎn)對(duì)4種傳感器參數(shù)分別采集。在每次數(shù)據(jù)采集、校驗(yàn)、發(fā)送成功且接收到回調(diào)函數(shù)后,均會(huì)返回通信連接,匹配MAC地址后重新進(jìn)行數(shù)據(jù)的采集及校驗(yàn)發(fā)送。在安全措施方面,ESP-NOW協(xié)議可使用CCMP方法加密VSA幀[15-18]。設(shè)計(jì)過程中采用校驗(yàn)方式對(duì)數(shù)據(jù)進(jìn)行安全保障,首先在發(fā)送數(shù)據(jù)幀過程中,將數(shù)據(jù)及校驗(yàn)位數(shù)據(jù)同時(shí)發(fā)送到匯聚節(jié)點(diǎn)。在校驗(yàn)數(shù)據(jù)成功后,匯聚節(jié)點(diǎn)發(fā)送成功回調(diào)函數(shù),感知節(jié)點(diǎn)接收校驗(yàn)回調(diào)函數(shù)成功,則開始準(zhǔn)備發(fā)送下一幀數(shù)據(jù)包,在很大程度上避免數(shù)據(jù)發(fā)生堆疊。若校驗(yàn)數(shù)據(jù)不正確或者接收未應(yīng)答,則數(shù)據(jù)停止傳輸,等待通信校驗(yàn)成功,具體流程如圖6所示。
圖5 感知節(jié)點(diǎn)系統(tǒng)運(yùn)行流程
圖6 數(shù)據(jù)傳輸流程
數(shù)據(jù)傳輸采用ESP-NOW通信協(xié)議,每次可最多傳輸250 Byte數(shù)據(jù),傳輸速率默認(rèn)為1 Mbit/s。ESP-NOW數(shù)據(jù)幀格式如圖7所示,其中MAC報(bào)頭為接收方MAC地址,分類代碼、組織標(biāo)識(shí)符、隨機(jī)值共占8 Byte,為廠家固定數(shù)據(jù)內(nèi)容;供應(yīng)商特定內(nèi)容占7~255 Byte,主要包括元素ID、長(zhǎng)度、組織標(biāo)識(shí)符、類型和正文,其中元素ID、組織標(biāo)識(shí)符和類型為固定內(nèi)容,長(zhǎng)度為組織標(biāo)識(shí)符、類型、版本、正文Byte之和,正文為傳輸?shù)臄?shù)據(jù)內(nèi)容,占0~250 Byte。
圖7 ESP-NOW數(shù)據(jù)幀格式
匯聚節(jié)點(diǎn)采用RT-Thread系統(tǒng),該系統(tǒng)是嵌入式實(shí)時(shí)多線程操作系統(tǒng),內(nèi)核僅占用3 KB ROM、1 KB RAM。該系統(tǒng)與FreeRTOS、μC/OS相比,豐富的組件與服務(wù)提供了多種通信協(xié)議與功能框架,具有靈活的任務(wù)調(diào)度性能,大大提高了開發(fā)效率,易于后期維護(hù)與升級(jí)。RT-Thread將每個(gè)感知節(jié)點(diǎn)數(shù)據(jù)接收與處理歸為一個(gè)任務(wù),任務(wù)創(chuàng)建過程對(duì)線程名字、入口函數(shù)、棧大小、優(yōu)先級(jí)以及時(shí)間片進(jìn)行設(shè)置。共有256個(gè)線程優(yōu)先級(jí)可滿足感知節(jié)點(diǎn)接入需要,同時(shí)通過Finsh命令組件幫助用戶管理與查看各感知節(jié)點(diǎn)狀態(tài)信息。在RT-Thread系統(tǒng)下,任務(wù)切換更流暢,可避免因?yàn)閱畏絾栴}導(dǎo)致系統(tǒng)崩潰,充分利用MCU內(nèi)資源,實(shí)現(xiàn)系統(tǒng)的穩(wěn)定運(yùn)行。
匯聚節(jié)點(diǎn)運(yùn)行首先從系統(tǒng)啟動(dòng)文件開始運(yùn)行,啟動(dòng)rtthread_startup()后進(jìn)入用戶入口main()程序[19]。在RT-Thread系統(tǒng)初始化操作系統(tǒng)中對(duì)硬件初始化,RT-Thread系統(tǒng)首先檢測(cè)WiFi及4G通信模組是否連接成功,通過使用消息隊(duì)列遙測(cè)傳輸(MQTT)網(wǎng)絡(luò)協(xié)議棧將數(shù)據(jù)與阿里云平臺(tái)實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)顯示,采用TCP/IP協(xié)議與樹莓派進(jìn)行本地服務(wù)器連接實(shí)現(xiàn)數(shù)據(jù)分析。在ESP-12F接收到感知層節(jié)點(diǎn)數(shù)據(jù)后進(jìn)行校驗(yàn),如校驗(yàn)成功則給感知節(jié)點(diǎn)發(fā)送回調(diào)函數(shù),再將數(shù)據(jù)進(jìn)行顯示處理及存儲(chǔ),若校驗(yàn)不完整則發(fā)出告警提示。使用FatFs文件系統(tǒng)將數(shù)據(jù)備份到Micro SD卡中實(shí)現(xiàn)數(shù)據(jù)本地存儲(chǔ),系統(tǒng)執(zhí)行流程如圖8所示。
圖8 匯聚節(jié)點(diǎn)系統(tǒng)執(zhí)行流程
為驗(yàn)證設(shè)計(jì)系統(tǒng)的傳輸與處理的穩(wěn)定性,對(duì)系統(tǒng)進(jìn)行測(cè)試與分析。首先根據(jù)感知節(jié)點(diǎn)對(duì)傳感器數(shù)據(jù)采集性能進(jìn)行分析,驗(yàn)證數(shù)據(jù)采集的準(zhǔn)確性之后再將數(shù)據(jù)傳輸,對(duì)系統(tǒng)整體功能部分進(jìn)行演示;其次是在不同場(chǎng)地環(huán)境測(cè)試,對(duì)通信距離進(jìn)行實(shí)際測(cè)試與分析,得出相關(guān)分析結(jié)果;最后在傳輸中通過樹莓派基于QT環(huán)境下通過上位機(jī)查看服務(wù)器相關(guān)參數(shù)功能,通過對(duì)參數(shù)分析,得出當(dāng)前環(huán)境結(jié)論。
系統(tǒng)功能演示部分主要包括感知節(jié)點(diǎn)數(shù)據(jù)采集效果、匯聚節(jié)點(diǎn)數(shù)據(jù)顯示效果、Micro SD卡數(shù)據(jù)存儲(chǔ)。感知節(jié)點(diǎn)以外接傳感器不同的方案對(duì)數(shù)據(jù)進(jìn)行采集,感知節(jié)點(diǎn)實(shí)物與數(shù)據(jù)采集如圖9(a)~圖9(d)所示,匯聚節(jié)點(diǎn)實(shí)物與接收數(shù)據(jù)后顯示如圖9(e)所示。匯聚節(jié)點(diǎn)數(shù)據(jù)存儲(chǔ)位于Micro SD卡,插入電腦打開如表1所示的data.csv文件數(shù)據(jù),查看存儲(chǔ)數(shù)據(jù)與采集數(shù)據(jù)相同,證明其數(shù)據(jù)存儲(chǔ)的有效性。
表1 Micro SD卡存儲(chǔ)數(shù)據(jù)內(nèi)容
圖9 各節(jié)點(diǎn)設(shè)備實(shí)物
根據(jù)實(shí)際情況進(jìn)行測(cè)量,ESP-07S節(jié)點(diǎn)外接IPEX 1代接口,采用+8 dB FPC天線。各節(jié)點(diǎn)在視野無阻擋的情況下進(jìn)行通信距離測(cè)試。測(cè)試選擇樓宇內(nèi)及空曠環(huán)境2種場(chǎng)景,在不同的通信距離下,選擇以2 s間隔發(fā)送400次數(shù)據(jù)包,驗(yàn)證室內(nèi)外環(huán)境對(duì)通信效果的影響,實(shí)驗(yàn)結(jié)果如表2所示。
表2 感知層通訊測(cè)試結(jié)果
在同一樓層中,當(dāng)通訊距離大于80 m時(shí)有數(shù)據(jù)丟包發(fā)生;在空曠環(huán)境下,當(dāng)大于260 m時(shí)有數(shù)據(jù)丟包發(fā)生。故該系統(tǒng)在樓宇內(nèi)80 m范圍內(nèi),空曠場(chǎng)地260 m范圍內(nèi)有良好的通信效果。
在RT-Thread系統(tǒng)下,采用任務(wù)調(diào)度切換方式對(duì)各感知節(jié)點(diǎn)數(shù)據(jù)接收,相比于裸機(jī)中輪詢查看方式,前者更具優(yōu)勢(shì)效果。另外為測(cè)試感知節(jié)點(diǎn)以ESP-07S為主控對(duì)各類傳感器數(shù)據(jù)采集穩(wěn)定性,將節(jié)點(diǎn)置于實(shí)驗(yàn)室環(huán)境內(nèi)持續(xù)工作對(duì)數(shù)據(jù)進(jìn)行采集。其中節(jié)點(diǎn)一采集光照強(qiáng)度、節(jié)點(diǎn)二采集標(biāo)準(zhǔn)氣壓強(qiáng)度、節(jié)點(diǎn)三采集溫度、節(jié)點(diǎn)四采集CO2濃度。針對(duì)各組數(shù)據(jù),通過樹莓派服務(wù)器對(duì)匯聚節(jié)點(diǎn)接收到的數(shù)據(jù)進(jìn)行分析,樹莓派通過TCP/IP協(xié)議與匯聚節(jié)點(diǎn)WiFi模塊進(jìn)行通信,通過Qt上位機(jī)連接IP與端口后,可查看相關(guān)參數(shù),同時(shí)可通過調(diào)節(jié)右側(cè)上下限閾值,當(dāng)前環(huán)境可在數(shù)據(jù)分析后得出相關(guān)結(jié)果。上位機(jī)數(shù)據(jù)接收與分析如圖10所示。
圖10 上位機(jī)數(shù)據(jù)接收與分析
本文設(shè)計(jì)了一種基于RT-Thread和ESP-NOW的無線傳感器網(wǎng)絡(luò)系統(tǒng)。主要從通信協(xié)議與匯聚節(jié)點(diǎn)操作系統(tǒng)兩方面進(jìn)行設(shè)計(jì),采用ESP-NOW協(xié)議可實(shí)現(xiàn)數(shù)據(jù)穩(wěn)定傳輸,匯聚節(jié)點(diǎn)基于RT-Thread系統(tǒng)可以有效實(shí)現(xiàn)對(duì)數(shù)據(jù)穩(wěn)定的接收、處理、顯示與存儲(chǔ)。本設(shè)計(jì)還有一些工作仍需提升改進(jìn),后續(xù)可將匯聚節(jié)點(diǎn)采用ARM微處理器對(duì)數(shù)據(jù)進(jìn)行AI數(shù)據(jù)分析;引入霧計(jì)算通信架構(gòu),以形成一個(gè)完整的數(shù)據(jù)采集、傳輸、處理、存儲(chǔ)、顯示、分析的無線傳感器網(wǎng)絡(luò)系統(tǒng),提高無線傳感器網(wǎng)絡(luò)的使用率。該系統(tǒng)具有高傳輸穩(wěn)定性、低成本、易于組網(wǎng)等優(yōu)點(diǎn),具有較好的推廣價(jià)值。