任克強,王傳強
(江西理工大學 信息工程學院,江西 贛州 341000)
物聯(lián)網技術作為信息科技產業(yè)的第三次革命,在傳感器技術和嵌入式技術的支撐下,以其易于結合、容錯率高、易于部署、易于增減傳感器節(jié)點、執(zhí)行效率和速率高等技術優(yōu)勢[1-2],已經應用在智能家居等諸多領域[3-7]。本文將物聯(lián)網用于智能監(jiān)控領域,用以解決室內多點數據采集與智能監(jiān)控問題。
目前用于家庭的物聯(lián)網控制系統(tǒng)的功能比較單一,大部分都是人為發(fā)布指令被動的控制系統(tǒng),無法根據采集的數據主動控制,而且必須是在網絡連接正常的前提下,一旦斷網,將無法控制系統(tǒng)工作,無法實時監(jiān)測家庭安全狀況??梢娔壳暗闹悄芸刂葡到y(tǒng)有自身的局限性,不適合所有家庭的使用。
本文設計了一種將智能監(jiān)控與物聯(lián)網相結合并加入萬年歷顯示功能的室內數據采集與監(jiān)控系統(tǒng),通過WIFI和LORA進行組網[8-9],實現(xiàn)對數據的采集、上傳、顯示和設備的控制,同時獲取網絡時間或者本地時間,用于萬年歷走時。整個系統(tǒng)并不完全依賴于互聯(lián)網,在網絡斷開的情況下,系統(tǒng)將通過LORA模塊組網通信,主控制器自動完成數據采集與控制,并自動切換時間獲取通道,讀取時鐘芯片時間數據,但數據將無法上傳到云服務器。無論何種狀態(tài)下,系統(tǒng)都將異常數據保存到FLASH,便于查詢和分析。
整個系統(tǒng)拓撲結構如圖1所示。目前市場上的智能控制系統(tǒng)大部分都是采用一對一的模式,本文設計采用了一對多和多對多的模式,即一個主控制器可以控制多個網絡節(jié)點,一個網絡節(jié)點可以控制多個傳感器和設備。可實現(xiàn)節(jié)點與傳感器大規(guī)模的部署。
整個數據采集監(jiān)控系統(tǒng)主要由總控制端、數據采集端和云服務器端組成。本設計的重點在于實現(xiàn)云下與云下設備、云上與云下設備的互聯(lián)互通。如圖1所示,每個節(jié)點都集成一塊處理器,用來處理傳感器采集的數據和下發(fā)指令到控制器件。從節(jié)點和主控制器節(jié)點之間通過LORA組網,實現(xiàn)廣播監(jiān)聽的連接模式,通過LORA協(xié)議和自定義的數據傳輸格式,可準確實現(xiàn)數據的采集和控制指令的下發(fā),協(xié)議只需配置一次將自動保存到FLASH,開機自動讀取配置信息。主控制器和云上設備通過Internet網絡實現(xiàn)了數據間的上傳和下發(fā),主控制器定時發(fā)送心跳包到云端設備,云上設備可以實時監(jiān)測主控制器的連接狀態(tài),具有斷網自動連接云上設備的功能。
圖1 系統(tǒng)拓撲結構
本系統(tǒng)硬件設計以Cortex-M3內核的STM32F103為核心處理器,外圍配備電源電路、無線通信設備、顯示設備、傳感器和控制器等,實現(xiàn)了數據的采集、上傳、控制和時間獲取等功能。其中時間數據不僅用來作為萬年歷時間,也作為整個系統(tǒng)的時基信號,記錄異常數據的時間并存儲到本地的FLASH中。系統(tǒng)的硬件框圖如圖2所示。
圖2 系統(tǒng)硬件框圖
處理器:Cortex-M3內核的STM32F103處理器,時鐘頻率可達72 MHz,屬于ARMv7的架構,具有較為豐富的外設接口,可以滿足多個傳感器接入的需求[10-12],具有先進的體系和架構,滿足本系統(tǒng)對處理器的需求。
電源電路:整個系統(tǒng)需要用到+3.3,+5,+9 V多種不同的電源。因此采用+12 V電壓輸入,再經過穩(wěn)壓電路,將+12 V電壓穩(wěn)壓在+3.3,+5,+9 V。
無線通信設備:本文中無線通信設備用到了WIFI模塊和LORA模塊。WIFI模塊內置無線網絡協(xié)議IEEE802.11b.g.n以及TCP/IP協(xié)議,利用相關API,可輕松入網。LORA是一種局域網無線標準,具有使用功耗低、傳輸距離遠、多種通信方式可選擇等特點。LORA通過擴頻通信技術增加信號帶寬降低對信噪比的要求,提高抗干擾能力,通過RF射頻技術和LoRaWAN技術進行數據傳輸,使得數據傳輸距離更遠,可達3 000 m以上,可以滿足數據在室內傳輸的需求。本設計選用廣播監(jiān)聽的傳輸模式進行數據傳輸。
傳感器與控制設備:可選用不同類型的傳感器和控制器件,以滿足不同環(huán)境下的需求,也可以根據需要增加和減少傳感器和控制器件的數量。比如,可將溫濕度傳感器部署于臥室,將氣敏傳感器部署于廚房,將環(huán)境監(jiān)測傳感器部署于門外等。為了對系統(tǒng)進行功能測試,選用AM2302溫濕度傳感器、MQ-4氣敏傳感器和繼電器作為測試元件。AM2302溫濕度傳感器具有溫濕度轉換時間快,抗干擾能力強,精度高等特點。溫度測量區(qū)間為-40~+80 ℃,濕度測量區(qū)間為0~99.9%RH,適合監(jiān)測我國全部地區(qū)的室內溫濕度。MQ-4氣敏傳感器可監(jiān)測多種可燃氣體,可部署在廚房實時進行監(jiān)測,提前預警,提前控制,防止危險事故發(fā)生。
顯示設備:顯示設備選用液晶顯示屏,用于顯示獲取的時間信息、節(jié)點信息和設備運行狀況等,作為本地人機交互端,可以方便觀察整個系統(tǒng)的運行狀況,查看傳感器采集的數據,查詢歷史數據等。而且,硬件預留多種屏幕接口,可根據需要更換顯示設備。
本系統(tǒng)的軟件設計主要有Internet網絡端、主控制器端和無線節(jié)點端。Internet網絡端采用Ai-Thinker-IDE進行編程開發(fā)配合主流的網絡云平臺搭建服務器。其余部分采用Keil uVision5進行編程開發(fā)。兩種開發(fā)環(huán)境和云平臺配合使用,在很大程度上提高了程序編寫效率。編譯器本身自帶仿真功能,節(jié)約了開發(fā)時間,在一定程度上可幫助提高程序的穩(wěn)定性和可靠性。
圖3 系統(tǒng)軟件流程圖
系統(tǒng)上電,各個模塊自動調用模塊配置函數進行相關系統(tǒng)配置。完成系統(tǒng)配置后,進入網絡連接處理函數。聯(lián)網前,自動讀取FLASH記錄的已連接的網絡數據,自動對比WIFI模塊搜索到的網絡數據。若記錄的數據和WIFI模塊搜索到的數據一致,則直接連接到網絡;若不一致,則會進入手動配置網絡函數,人為選擇是否進行網絡連接。主控制器和節(jié)點之間傳輸通信指令,確認LORA模塊是否能夠正常通信。在確認通信正常后,主節(jié)點通過判斷從節(jié)點上傳的數據是否存在異常,決定是否下發(fā)控制指令到從節(jié)點。一旦存在異常數據,主節(jié)點可以很快下發(fā)控制指令到異常節(jié)點,并將異常數據記錄到FLASH中。之后將數據上傳到云端服務器和顯示在液晶屏。液晶屏顯示的數據通過翻頁的方式進行交替顯示,可設置為手動遙控翻頁或自動翻頁。系統(tǒng)軟件流程圖如圖3所示。
對LORA節(jié)點地址設置,主節(jié)點地址設置為0XFFFF,使得主節(jié)點處于廣播監(jiān)聽模式。此模式下主節(jié)點發(fā)送的數據可以被其他相同速率和相同信道的節(jié)點接收,同時主節(jié)點也可以接收其他相同速率和相同信道節(jié)點的數據。節(jié)點分布如圖4所示。A為主節(jié)點,其余為從節(jié)點。
圖4 節(jié)點分布
廣播監(jiān)聽模式并不能滿足數據傳輸過程中的所有要求,此模式下主節(jié)點雖然可以收到所有節(jié)點傳回來的數據,但卻無法判斷出是哪個節(jié)點傳回的數據,容易造成數據的混亂,無法準確控制異常節(jié)點。
因此,為了克服LORA在廣播模式下對節(jié)點識別不足的問題,本文在原有的通信基礎上增加了新的數據傳輸格式,對原有的協(xié)議進行擴充改進,傳輸時序如圖5所示。圖5中的8位從節(jié)點地址和主控制器節(jié)點地址是人為分配的,用作自身的識別地址,其中圖5(a)和圖5(b)為主控制器節(jié)點接收從節(jié)點數據以及對數據進行解析時序,數據解析格式如表1所示;圖5(c)和圖5(d)為主控制器下發(fā)控制指令至從節(jié)點以及從節(jié)點進行指令碼解析時序,指令碼格式如表2所示。在此通信格式下,理論上每個從節(jié)點可以級聯(lián)4 096個控制設備。校驗位=(主控制器地址+從節(jié)點地址)&0xFF。
(a) 主節(jié)點接收數據(a) Master node receives data
(b) 主節(jié)點解析數據(b) Host node parses data
(c) 主節(jié)點下發(fā)控制指令(c)Master node sends control instructions
(d) 從節(jié)點解析指令(d)Slave node resolve instructions
表1 數據格式
表2 指令碼定義
LORA模塊本身自帶CSMA/CA機制,在數據發(fā)送前先檢測其他節(jié)點是否處于忙狀態(tài),如果忙則等待,如果處于非忙狀態(tài)則會立即發(fā)送。但是,這種機制不能確保數據完全不會沖突。為了降低這種風險,在數據發(fā)送時,首先對數據在0~50 ms進行隨機延時發(fā)送,根據LORA模塊空中傳輸速率19 200 bit/s,則傳輸一個64 bit的數據只需要大約3.33 ms,因此,隨機間隔可以設為5 ms,即在0~50間隨機產生間隔為5的數據,用于延時。時間范圍可根據節(jié)點數量擴大或減少。
云下設備與云上設備實現(xiàn)互聯(lián),可通過調用API接口實現(xiàn)。首先需要設置WIFI模式、定時器回調函數等系統(tǒng)參數,然后對網絡連接參數進行賦值:客戶端標識、MQTT用戶名和MQTT秘鑰,接著調用MQTT相關API進行配置,最后調用網絡連接API進行網絡連接。
數據采集和控制可根據需求接入不同類型的傳感器。本文為了測試系統(tǒng)的可行性,使用溫濕度傳感器、氣敏傳感器和繼電器進行測試。微處理器利用定時器中斷在一定的時間間隔內循環(huán)調用不同傳感器采集數據函數,進行數據的處理、上傳至主控制器。實時監(jiān)聽主控制器節(jié)點下發(fā)的指令,完成對設備的控制。
圖6 系統(tǒng)運行界面
圖6為系統(tǒng)運行界面,圖6(a)是數據監(jiān)控信息顯示,對從節(jié)點上傳的數據進行顯示和實時監(jiān)控;圖6(b)是萬年歷顯示,除基本的顯示外,增加了農歷日期顯示、鬧鐘和定時功能;圖6(c)是功能和設置界面,可通過紅外遙控或板載按鍵進行功能設置。界面之間的切換方式可選擇手動方式或自動方式。
為了更好地測試整個系統(tǒng)的實時性,在距離50 m并且有障礙物的情況下對一個64 bit的數據多次進行發(fā)送和接收測試,測試結果如圖7所示。其中,低電平表示節(jié)點處于接收狀態(tài),高電平表示節(jié)點處于發(fā)送狀態(tài)。在圖7中,Channel 0為主節(jié)點通道,Channel 1,Channel 2,Channel 3是從節(jié)點通道。從圖7中可以看出,主節(jié)點從開始接收數據到完成對從節(jié)點的控制指令的下發(fā),整個過程時間在0.35 s內,能較快地對異常情況做出響應。
圖7 數據傳輸時間采集圖
主控制器會把采集到節(jié)點的數據實時上傳到網絡云平臺,可實現(xiàn)隨時隨地觀察室內情況。云端采集數據如圖8所示。
圖8 云端采集數據
本文結合物聯(lián)網技術,設計了一種基于物聯(lián)網的室內數據采集監(jiān)控系統(tǒng)。經過實驗測試,系統(tǒng)可在0.35 s內可準確地對室內多點數據進行監(jiān)測和數據上傳,證明了系統(tǒng)的實時性和準確性。為了適應不同用戶的需求,可增加或減少節(jié)點數量,具有較好的可剪裁性。由于系統(tǒng)具有較好的實時性、準確性和可剪裁性,在智能監(jiān)控領域有著較好的應用前景。