濟寧職業(yè)技術學院電子信息工程系 李漢挺 李 航
本文設計了一種基于Zigbee和WIFI的無線溫濕度監(jiān)測系統(tǒng),可實現(xiàn)相對空間中不受環(huán)境約束的在任意位置進行溫濕度采集,充分檢測空間溫濕度的數(shù)據和變化趨勢.文中介紹了系統(tǒng)的總體結構和軟硬件設計,通過終端設備、智能網關、實現(xiàn)了溫濕數(shù)據的無線傳輸和實時監(jiān)控.經過實驗測試,該系統(tǒng)能夠在獨立空間中進行穩(wěn)定的工作。
相對獨立空間(RIS)是指空間位置獨立、內部環(huán)境不統(tǒng)一、與外部環(huán)境關聯(lián)性低的空間環(huán)境.我們每一個人實際上每天都在這樣的環(huán)境中進行活動。其中接觸最多的是每個人居住的家庭生活空間,這個空間是以家庭的生活的空間作為獨立單位、社區(qū)中的每一戶居民都在自己的家庭環(huán)境中生活。除此之外,還有許多的遠離人民居住位置的的農作物種植大棚、占地面積寬廣的機械工廠、聳立在城市之間提供工作辦公的寫字樓等等。
隨著新一代信息技術的發(fā)展,相對獨立空間也逐漸向智能化的方向進行發(fā)展。比如智能農業(yè)、智能家居、智慧工廠的目標就是利用物聯(lián)網、云計算、大數(shù)據、移動應用等實現(xiàn)物理空間的關鍵信息的實時感知、動態(tài)監(jiān)測、深度分析。在這些智慧化推進的過程中,溫濕度數(shù)據的采集與監(jiān)控作為其中非常重要的一環(huán)也遇到了很多的問題,其中在原有環(huán)境中的智能化的升級改造過程中的綜合布線、終端設備放置受限、數(shù)據采集不均衡無法作為有效診斷數(shù)據等矛盾更為突出。面對這種痛點,以及更好的與當前的智能化升級做兼容性匹配,本文專門對多點分布式溫濕度數(shù)據采集、傳輸、分析的整個過程進行研究和分析,結合現(xiàn)有的物聯(lián)網技術和硬件設備模塊,設計了一套基于Zigbee和WIFI的溫度監(jiān)控系統(tǒng)。
以Zigbee和WIFI為核心研究溫濕度監(jiān)測系統(tǒng)主要由感知層、網絡層、應用層三個模塊組成。系統(tǒng)結構如圖1所示。
感知層的每個終端節(jié)點在啟動運行后會主動掃描并加入Zigbee網絡。定時獲取傳感器數(shù)據通過網絡實現(xiàn)數(shù)據的無線傳輸,每個終端節(jié)點的供電采用鋰電池供電,無須額外的布線操作。
網絡層負責整個Zigbee網絡的創(chuàng)建、構建終端設備節(jié)點局域通信網絡。除此之外還會創(chuàng)建基于AP模式下運行的WIFI網絡,可移動設備的APP程序通過WIFI網絡與基于Zigbee的無線傳感網進行數(shù)據的通信。
應用層作為整個系統(tǒng)的最上層,按其功能進行劃分兩種:本地可移動終端,負責溫濕度數(shù)據的展示和歷史記錄存儲,這個設備會放置在獨立空間中。外部可移動終端,是指進入該空間的用戶可通過自己手持的終端設備查看實時的溫濕度數(shù)據。這兩種終端設備的運行的軟件都是基于Android的APP程序。
圖1 溫濕度監(jiān)測系統(tǒng)結構圖
2.1.1 溫濕度采集節(jié)點硬件設計
溫濕度采集節(jié)點硬件模塊采用模塊化的設計方案,以降低系統(tǒng)功耗的同時且滿足體積小、功耗低、抗干擾能力強,建立網絡節(jié)點為出發(fā)點進行設計。硬件結構引腳連接圖如圖2所示。
圖2 溫濕度采集節(jié)點硬件引腳連接圖
終端節(jié)點模塊硬件以TI公司推出片上系統(tǒng)CC2530F256,基于此能夠降低模塊的硬件成本和功耗。該模塊同時還結合了業(yè)界領先的黃金單元ZigBee 協(xié)議棧(Z-StackTM),最大可編程輸出功率 為4.5dBm。電源模塊以輸出電壓為9V的6F22型的電池供電,經過三端穩(wěn)壓器AMS1117-3.3和AMS1117-5.5多路輸出5V和3.3V的電壓來。溫濕度采集模塊,為了更好的適應應用環(huán)境,選擇了含有己校準數(shù)組信號輸出的溫濕度傳感器AM2302,該模塊應用專用的數(shù)字模塊采集技術和溫濕度傳感技術,響應快,抗干擾能力強,通過單總線模式與CC2530F256的P0_6引腳進行串行通信。0.96寸的OLED屏能夠在終端模塊運行時顯示相關的數(shù)據信息,通過IIC通信方式與CC2530的P1_6和P1_7引腳之間進行數(shù)據傳遞。串聯(lián)1KΩ的LED指示燈,標識當前終端模塊的運行狀態(tài)。
2.1.2 智能網關節(jié)點硬件設計
智能網關節(jié)點與常見的Zigbee協(xié)調器不同,在這里負責創(chuàng)建Zigbee和WIFI網絡且這兩個網絡之間可進行數(shù)據的通信,智能網關節(jié)點的硬件框圖如圖3所示。
智能網關節(jié)點的電源模塊和Zigbee模塊與終端節(jié)點的設計相同。NodeMCU是一個開源的物聯(lián)網平臺,包含的ESP8266基于WIFI協(xié)議的無線傳輸模塊,芯片內置32位CPU和固件化的協(xié)議棧,其中主要包括Wi-Fi Direct(P2P)、802.11b/g/n、Soft-AP協(xié)議棧以及內置TCP/IP協(xié)議棧。由此WIFI工作模式可分為兩種情況:STA模式是將WIFI模塊加入到已有的WIFI網絡中進行通信傳輸、AP模式是將WIFI模塊本身作為服務器,本系統(tǒng)中通過軟件層將其設置為AP的工作模式,方便移動終端的的APP軟件可以在空間范圍內獲取傳感器數(shù)據。智能網關節(jié)點的NodeMCU模塊采用串口與CC2530進行通信。
溫濕度監(jiān)測系統(tǒng)軟件主要由三部分組成:溫濕度采集節(jié)點程序設計、智能網關程序設計、可移動終端APP程序設計。溫濕度采集節(jié)點程序主要完成對溫濕度數(shù)據的采集,封裝和發(fā)送等。智能網關程序主要組建Zigbee網絡和WIFI網絡,接收終點節(jié)點數(shù)據,并通過WIFI網絡進行數(shù)據廣播等??梢苿咏K端APP程序負責接收WIFI網絡中廣播數(shù)據,并進行解析、顯示存儲等。
2.2.1 溫濕度采集節(jié)點軟件設計
溫濕度數(shù)據采集節(jié)點的軟件是基于Z-Stack協(xié)議進行設計的,使用IAR軟件開發(fā)環(huán)境進行編碼,其程序流程圖如圖4左側圖所示。
終端采集上電啟動之后,首先會進行節(jié)點初始化,這里分為硬件環(huán)境初始化和協(xié)議棧初始化。硬件初始化包括設置P1DIR,P0DIR寄存器來確定CC2530的IIC通信和單總線通信的P1_6、P1_7、P0_6引腳的IO方向,協(xié)議棧初始化主要是配置Z-stack協(xié)議相關參數(shù),終端節(jié)點在Zigbee網絡中工作為RFD設備。初始化結束后,終端節(jié)點開始查找當前環(huán)境中智能網絡的Zigbee網絡,發(fā)現(xiàn)相應的網絡后主動申請加入,如果加入不成功則會繼續(xù)加入直至進入網絡。成功之后則會開啟定時器獲取溫濕度傳感器相關的數(shù)據,相關數(shù)據與節(jié)點的身份識別碼(16位短地址用于在本地網絡中標識設備)封裝之后發(fā)送到智能網關。發(fā)數(shù)據過程防止數(shù)據丟失會對發(fā)送的數(shù)據的結果通過與智能網關進行握手驗證。以保證數(shù)據能夠發(fā)送成功,否則會重復發(fā)送數(shù)據。
圖3 智能網關節(jié)點硬件框圖
圖4 溫濕度采集節(jié)點和智能網關節(jié)點流程圖
2.2.2 智能網關節(jié)點
智能網關節(jié)點的軟件設計分成了兩部分:構建Mesh模型的Zigbee網絡,新建AP模式的WIFI網絡,接收終端節(jié)點發(fā)送的數(shù)據包并反饋信息,基于WIFI網絡的廣播數(shù)據給可移動終端設備APP。其程序流程圖如圖4右側兩個圖所示。
Mesh模型的Zigbee網絡是由智能網關節(jié)點的CC2530芯片基于Z-Stack協(xié)議構建的,在系統(tǒng)上電完成,硬件和協(xié)議棧初始化完成之后,智能網關節(jié)點工作為FFD設備。然后開始掃描信道,尋找合適的信道ID組件Zigbee網絡,網絡構建完成之后開始監(jiān)聽是否有節(jié)點加入網絡,如果有則分配相應的地址給節(jié)點。同時會開始接受節(jié)點發(fā)送的溫濕度數(shù)據信息,并將接收到的消息發(fā)送響應包給節(jié)點模塊,此時接受到的消息通過串口發(fā)送給NodeMCU模塊。NodeMCU模塊在系統(tǒng)上電完成,引腳初始化之后開始配置WIFI網絡,并通過數(shù)組維護加入網絡的可移動設備終端列表,監(jiān)聽串口數(shù)據,當接收到相關數(shù)據時,根據維護的設備APP地址列表發(fā)送數(shù)據到可移動終端APP。NodeMCU的軟件編碼是基于Arduino IDE進行開發(fā),下列代碼為NodeMCU的創(chuàng)建WIFI網絡的關鍵代碼。
#include
#define softAPName “jnzy-wsn”
#define password “1234567890”
void setup(){
IPAddress softLocal(192,168,4,1); // 1 設置內網WIFI IP地址
IPAddress softGateway(192,168,4,1);
IPAddress softSubnet(255,255,255,0);
WiFi.softAPConfig(softLocal,softGateway,softSubnet);
WiFi.softAP(softAPName,password);//創(chuàng)建AP網絡
}
2.2.3 可移動終端APP軟件設計
基于Android系統(tǒng)運行的APP為用戶提供了查詢溫濕度數(shù)據的用戶交互界面、歷史記錄查詢、終端節(jié)點設備管理等功能。
APP程序的使用多線程的編程模式創(chuàng)建一個網絡線程專門負責接收智能網關發(fā)送的節(jié)點數(shù)據,通過回調函數(shù)函數(shù)機制更新用戶界面。并保存溫濕度的數(shù)據。APP界面基于Material Design的設計風格增加界面的親和性。使用第三方的MPAndroidChart圖形庫進行界面的繪制,并通過SQLite數(shù)據庫保存數(shù)據方便歷史記錄的查詢。APP與智能網關的數(shù)據包發(fā)送格式如表1所示。
表1 智能網關和APP協(xié)議格式
將編寫的代碼程序下載對應的終端節(jié)點和智能網關的預備結束工作結束之后。首先對智能網關節(jié)點進行系統(tǒng)上電開始創(chuàng)建Zigbee網絡和WIFI網絡,等待網絡創(chuàng)建完成之后。啟動終端設備節(jié)點和設置可移動設備連接到WiFi網絡,并運行APP程序。此時通過APP可查看已經開始工作的終端節(jié)點采集的數(shù)據,為了更好的標注每個終端節(jié)點,APP程序的節(jié)點管理功能可讓用戶給不同節(jié)點編輯修改有意的備注名字,在APP顯示數(shù)據時更能直觀的確定哪一個終端節(jié)點的數(shù)據設備。
結語:本文主要提出了一種在相對獨立空間中基于無線傳輸?shù)臏貪穸炔杉慕鉀Q方案,通過CC2530芯片和Z-Stack協(xié)議構建Zigbee網絡,負責終端節(jié)點的數(shù)據傳輸,NodeMCU模塊作為可移動終端APP與Zigbee網絡之間數(shù)據傳遞的橋梁,方便更多的可移動設備查看數(shù)據創(chuàng)建了AP工作模式的WIFI網絡。在可移動終端的基于Android系統(tǒng)的APP程序和NodeMCU進行無線通信,獲取、保存溫濕度數(shù)據并提供非常友好的用戶交互界面。通過本解決方案,可以有效的構建一個WSN網絡,并且可進一步移植到其它相關環(huán)境參數(shù)的采集和傳輸。