吳睿超 侯俊



摘 要:針對工業生產中難以監控傳感器狀態的問題,設計一個物聯網系統,實現遠程傳感器數據監控與固件更新。該系統由遠程實時監控系統與遠程固件更新系統組成,傳感器采用嵌入式實時操作系統。在遠程實時監控系統中,傳感器可調節頻率測量數據,基于消息排隊遙測傳輸協議,通過無線網絡將數據傳輸到服務器。為使遠程固件更新系統運行符合限制應用協議,傳感器連接至輕量級物聯網協議服務器,再通過網關連接到hawkBit服務器中,基于超文本傳輸協議與輪詢方式,由hawkBit提供遠程更新服務。實踐操作表明,該系統操作簡單,具有可視化、直觀的優點,可滿足大型工廠遠程實時監控與固件更新需求。
關鍵詞:無線傳感器;遠程固件更新;遠程實時監測;消息隊列遙測傳輸;輕量級物聯網
DOI:10. 11907/rjdk. 182723 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP319文獻標識碼:A 文章編號:1672-7800(2019)009-0130-04
Design of Remote Real-time Monitoring and Firmware Update
over the Air System Based on Wireless Sensor
WU Rui-chao,HOU Jun
(School of Optical-Electrical Computer Engineering,University of Shanghai for Science and Technology, Shanghai 200093,China)
Abstract: Aiming at the problem that it is difficult to monitor and control sensors in the industrial production, an IoT system is designed to monitor and control sensors remotely and update firmware over the air. The system based on the wireless sensors using an embedded real-time operating system consists of two subsystems: one is a remote real-time monitoring system and the other one is firmware updating over the air system. In the remote real-time monitoring system, the measurement frequency of sensors can be changed remotely and data will be transmitted to the server via a wireless network based on the Message Queuing Telemetry Transport Protocol. In the firmware updating over the air system, in order to implement the restricted application protocol, sensors are connected to server based on lightweight machine to machine (LWM2M) protocol, and then LWM2M sever is connected to hawkBit server through the gateway, afterwards, hawkBit provides a firmware update service remotely based on HTTP and a polling method. This system is proved to be easy to operate with an advantage of visualization and intuition and it can meet the requirements of remote real-time monitoring and firmware update for factories.
Key Words: ?wireless sensor; firmware update over the air; remote real-time monitoring; MQTT; LWM2M
0 引言
工業生產中采用無線傳感器網絡(Wireless Sensor Network,WSN)可解決傳統工業監測環境平臺采用有線搭建引起的布局困難、建設成本高、延時長、專用性低等問題[1]。WSN作為物聯網不可或缺的一部分[2],常用于智能城市[3]、災難預警[4]、智能家居[5]及智能醫療[6]等方面,主要作用是監控環境、記錄參數。但WSN需經常增加新功能或修復固件問題,如果通過手動方式對所有節點進行編程則十分耗時、耗力,因此需要一種有效方法在WSN中通過無線方式對節點進行遠程升級或更新[7]。基于以上需求,本文設計一個基于無線傳感器遠程實時監控與固件更新系統。
在該系統中,采用FreeRTOS實時系統對傳感器進行編程。在遠程實時監控系統中,傳感器數據基于消息排隊遙測傳輸(MQTT)協議,以可調節的頻率通過WiFi發送至服務器,使用Grafana實現可視化。在遠程固件更新系統中,文獻[7-11]均對無線傳感器網絡代碼更新技術進行了相關研究與改進。網關是WSN接入互聯網的瓶頸[8],因此采用LWM2M服務器實現WSN互聯網接入,同時為在不同協議之間進行通信,按照HTTP協議利用hawkBit管理傳感器,使用CoAP協議將固件傳輸至傳感器節點,通過網關實現不同協議之間的信息交換,使系統實現易操作、直觀的工業生產監控及遠程固件升級技術。
1 系統總體設計方案
隨著工業生產自動化發展,物聯網在工業生產中的應用愈加廣泛。物聯網允許用戶遠程監控物品/對象并發送配置。有研究者估計,到2020年,物聯網將覆蓋近500億臺設備[12]。為便于監控生產過程,用戶產生可遠程查看傳感器數據、調節監控頻率的需求,同時當有新的傳感器系統時,用戶可進行遠程更新,而不是通過USB連接電腦更新。因此,本文根據以上兩點需求,在傳感器上采用FreeRTOS實時系統,在此基礎上,開發兩個子系統,分別為遠程實時監控系統和遠程固件更新系統,并將其合并成一個總系統。
1.1 傳感器操作系統
傳感器需完成兩個任務,即獲得傳感器數據并發送到服務器,進行即時遠程固件更新,同時還需兼顧工廠環境監測,因此實時性對操作系統十分重要。
FreeRTOS實時操作系統作為一個輕量級操作系統,具有一個可擴展的實時內核,采用多線程方法[13]。其中每個進程均可中斷,調度程序可在線程之間切換[14],為低端設備提供實時、搶占式多任務環境,并確保在任何給定時間段內執行更高優先級任務。如果兩個任務具有相同的優先級,則調度程序根據同一優先級的任務共享CPU使用時間,時間短的任務優先運行。任務執行遵循基于優先級的循環實現。FreeRTOS內核使用4個C文件(task.c,list.c,queue.c,croutine.c)構建,其中task.c通過使用list.c文件的結構和函數提供調度功能,queue.c文件提供一個線程安全隊列以實現任務間通信與同步,croutine.c可實現簡單的輕量級任務[15]。因此有必要采用FreeRTOS系統,確保在正確的時間內完成必要任務。
1.2 遠程實時監控系統
系統通過WiFi傳輸傳感器數據,并將傳感器數據可視化。兩種數據傳輸協議比較如下所示。
1.2.1 MQTT 協議
MQTT即消息隊列遙測傳輸(Message Queuing Telemetry Transport),是由IBM開發的一種針對LWM2M通信的協議。該協議構建于TCP/IP協議之上,以發布/訂閱的方式工作。與傳統發布/訂閱客戶端相比,該協議工作方式可滿足物聯網需求,即無需不斷更新請求。同時,MQTT協議可大量減少使用的網絡帶寬與資源, 如基于MQTT協議的Facebook聊天軟件。
1.2.2 HTTP協議
HTTP即超文本傳輸協議(Hyper Text Transfer Protocol ),該協議基于TCP/IP協議,可提供可靠的通信。然而,由于通過TCP建立連接,訪問的數據根據IP地址、URL及其關系進行轉移,過程動態可變。在每次訪問時連接會被釋放,即完成一次通信,需要多次建立、釋放同一個連接[16]。
通過比較兩種協議,可以發現在通信過程中,HTTP采用大量微小的數據傳輸塊,消耗大量網絡資源,導致網絡性能下降,且IP尋址取決于物理位置,引起網絡控制復雜性問題。HTTP協議是一個對稱協議,而MQTT協議是一個輕量級不對稱結構,該結構具有非智能分布式設備與服務器通信所需的智能能力。綜上所述,MQTT協議更適合傳感器與服務器之間的數據交換。
1.3 遠程固件更新系統
物聯網設備在通信過程中通常采用短消息進行消息傳遞,這對于固件更新是一種大型負載傳遞。
CoAP協議即受限制的應用協議(Constrained Application Protocol),采用基于塊的傳輸方式,即塊狀轉移[17],處理大負載消息傳遞。該協議將大型資源拆分成塊大小的多個資源,通過以消息的有效負載形式進行傳輸。接收方對已接受到的消息塊進行標志后,請求下一消息,當接收到所有消息后,重組所有的塊即接收到完整的資源包。
CoAP協議由 IETF的CoRE工作組提出,是一種以HTTP協議為基礎的協議。由于傳統HTTP協議對于資源受限制的設備過于龐大,而CoAP協議基于HTTP協議,可實現請求與響應同步,并且該協議基于REST架構風格,用戶可以像使用HTTP協議一樣應用CoAP協議[18],所以本文采用CoAP協議進行傳感器固件傳輸。
系統采用hawkBit服務器在云端管理傳感器固件。 hawkBit是一種基于RESTful的服務器。REST即表述性狀態傳遞(Representational State Transfer),是一種架構風格,2000年由Roy Fielding博士[19]在其博士論文中提出并被廣泛應用。HTTP被用于定義數據格式的開頭,其內容格式依賴于HTTP服務器與其定義文件,主要指XML或JSON。本文使用Python搭建一個HTTP客戶端,可向hawkBit服務器發起請求,即在服務器中注冊新設備,查看是否有固件更新請求,下載新固件或者更新設備狀態。
由于傳感網無法與hawkBit服務器直接進行通信,為使管理傳感器同時與CoAP服務器進行通信,系統搭建LWM2M服務器。LWM2M即輕量級物聯網(Lightweight Machine to Machine),是開放移動聯盟(OMA)的系統標準,其目標是開發一個快速部署的客戶機—服務器規范,以提供物聯網服務。在M2M中,LWM2M充當OMA設備管理 (OMA- dm)的繼承者,并為使用相同協議的物聯網應用程序提供高效的設備管理與安全工作流,從而簡化系統,還可解決受約束的M2M設備服務及管理需求[20]。
LWM2M基于CoAP協議進行開發,LWM2M 定義了3個邏輯實體:LWM2M服務器、LWM2M客戶端 及LWM2M 引導服務器。LWM2M客戶端負責執行LWM2M服務器的命令并上報執行結果,LWM2M引導服務器負責配置LWM2M客戶端。
為使hawkBit服務器獲得LWM2M服務器中傳感器的信息,利用Python搭建一個HTTP服務器。LWM2M服務器可向HTTP服務器發起請求,由此HTTP客戶端從HTTP服務器中獲得信息,發送到hawkBit服務器中,從而可實現LWM2M服務器與hawkBit服務器之間的通信,HTTP服務器與HTTP客戶端被稱為網關。
1.4 系統總體結構
系統總統結構如圖1所示。該系統主要由兩個子系統組成。傳感器作為MQTT客戶端,發送傳感器數據到MQTT代理,同時作為LWM2M客戶端,與LWM2M服務器通信,隨時準備固件更新。
2 系統設計
2.1 傳感器操作系統設計
本文采用ESP32芯片,連接BME280環境傳感器與MPU-6050空間運動傳感器。ESP芯片是ESP8266的升級版,具有并發的兩個核心、WiFi模塊及藍牙模塊,因此可滿足系統需求。在ESP32上搭建FreeRTOS系統,采用任務調度的方式,設計與MQTT代理進行傳感器數據傳輸任務,配合遠程實時系統監測系統工作;同時設計與LWM2M服務器通信任務,配合遠程固件更新系統工作,其中與LWM2M服務器通信任務的優先級高于與MQTT代理通信任務的優先級。
2.2 無線傳感器監控系統
在該系統中, 無線傳感器采用BME280環境傳感器對溫度、氣壓、濕度進行測量,采用BMM150磁場傳感器測量磁場,采用BMA280加速度傳感器測量加速度。各個傳感器初始采樣頻率為10s/次。同時,無線傳感器作為MQTT客戶端將采集到的數據采用MQTT協議作為各個MQTT主題內容發布到MQTT代理中。例如MAC地址為60:64:05:A4:40:50,傳感器以JSON的形式將其發布到主題為/60:64:05:A4:40:50/Temperature中。其它傳感器信息與此類似。MQTT代理運行于AWS云中。MQTT代理訂閱所有MQTT客戶端發布的消息。此時傳感器信息只是數據流,為讓用戶更方便地查看傳感器數據以及監控工業生產環境,采用Telegraf作為數據采集器,通過監控指標的配置,將相應數據從MQTT代理采集并存儲于Influxdb,從而進行時間序列化。而Grafana最終通過Influxdb提供的源數據進行聚合分析及展示。同時,在Grafana中,用戶可根據需求查看任意時間的傳感器數據。為方便移植該系統到任意系統中,將MQTT代理、Telegraf、Influxdb及Grafana打包到Docker中。
2.3 無線傳感器固件更新系統
在該系統中,Eclipse hawkBit是所有傳感器的控制器。hawkBit是一個 Eclipse公共許可證服務器, 可使邊緣設備實現固件更新,同時可部署、構建管理器, 具有設備報告與監視功能。邊緣設備可通過優化界面直接連接至hawkBit,或通過聯合設備管理服務間接連接至服務器[21]。該系統采用基于HTTP以及輪詢機制的直接設備集成API方式(Direct Device Integration API),將傳感器連接到hawkBit服務器中。hawkBit更新服務提供REST資源,設備可以通過該方式接收到固件更新任務。由于傳感器無法直接向hawkBit服務器請求連接,利用Python創建一個HTTP客戶端,向hawkBit輪詢,將新的設備注冊到服務器中,并且監測是否有固件更新任務。傳感器同時作為LWM2M的客戶端與CoAP的客戶端。
采用Eclipse Leshan提供的JAVA庫進行LWM2M服務器開發。該服務器主要用于監控傳感器固件更新狀態,也具有RESTful功能。由于同時創建了HTTP服務器,LWM2M可向HTTP服務器進行輪詢。當HTTP客戶端從hawkBit服務器中接收到固件更新任務后,HTTP客戶端將文件下載到本地文件夾中。同時,LWM2M服務器從HTTP服務器接收到消息,傳感器作為LWM2M客戶端,從LWM2M服務器接收到消息,觸發傳感器中的引導模式并進行模式切換。
為將固件傳輸到傳感器的存儲卡中,采用CoAP協議傳輸文件。當采用CoAP協議進行大文件傳輸時,需采用分塊傳輸,即把文件拆解成多個塊進行傳輸[22]。將傳感器作為CoAP客戶端,將Eclipse Californium中的服務器例子作為CoAP服務器。Californium采用Java編譯,用于物聯網云服務的CoAP協議。
LWM2M服務器以180s/次監測傳感器狀態,當傳感器與CoAP服務器完成傳輸時,LWM2M服務器將觸發傳感器固件更新功能,同時向HTTP服務器發送完成固件更新的消息。hawkBit服務器從HTTP客戶端得到該消息后,服務器傳感器狀態將切換為完成固件更新狀態。
將LWM2M服務器、CoAP服務器、HTTP服務器和HTTP客戶端安裝在樹莓派中,并在工廠進行測試。
3 系統測試
3.1 無線傳感器監控系統
將多個傳感器放入工廠進行測試,無線傳感器以每秒幾次的頻率進行監控。圖2顯示了4個傳感器在2018年8月9日-2018年9月6日期間監測到的溫度信息,圖3顯示了MAC地址為60:64:05:9E:DC:41的傳感器在2018年8月9日到2018年9月6日期間監測到的溫度、氣壓、濕度及WIFI強度信息。
同時也可以通過MQTT代理發布以/MAC地址/change為主題、內容以JSON形式的消息改變傳感器監控頻率,或改變WiFi,也可改變MQTT代理地址。
3.2 無線傳感器固件更新系統
傳感器通過固件更新系統注冊到hawkBit服務器中,如圖4(見封三彩圖)所示。同時,將需要更新的傳感器固件上傳到服務器中。在hawkBit服務器中對傳感器進行管理。例如可對單個傳感器更新,如圖5所示,可看到MAC地址為6064059C99E7、606405A44050、A81B6A76BB25傳感器狀態為綠色,表示已經完成固件更新,其余3個傳感器狀態為藍色,表示傳感器未接收到固件更新任務。也可以對傳感器進行分組,從而實現批量更新,如圖4所示,可以看到MAC地址為A81B6A9C54EC的傳感器狀態表示已經完成固件更新。MAC地址為6064059C99AC和MAC地址為6064059C99E7的傳感器狀態為黃色,表示處于準備固件更新狀態。
4 結語
本文采用ESP32連接環境與運動傳感器,設計了一個基于無線傳感器的遠程實時監控與固件更新系統,采用MQTT協議實時監控工業生產,并將其可視化;同時采用LWM2M協議,提出了一種將傳感器節點接入互聯網的方法。傳統無線傳感器網絡采用有線通信方式對傳感器節點布置實現網絡代碼更新,相比之下本文方法更符合未來物聯網發展需求,更加智能、便利。在大型工廠應用中,用戶只需通過網頁即可監測工廠生產狀態,同時無需連接USB即可進行遠程固件更新,具有操作簡單、直觀、可視化等優點。
參考文獻:
[1] 羅俊,孫國耀. 基于WiFi無線傳感器網絡的工業環境監測平臺系統設計[J]. 儀表技術與傳感器,2018,8:65-68.
[2] XIE H M,YAN Z,YAO Z,et al. Data collection for security measurement in wireless sensor networks: a survey[J/OL]. IEEE Internet of Things Journal,2018:1-1.2018-11-26.https://ieeexplore.ieee.org/document/8543865/metrics#metrics.
[3] GAUR ?A,SCOTNEY B,PARR G,et al. Smart city architecture and its applications based on IoT[J]. Procedia Computer Science, 2015, 52:1089-1094.
[4] ROY S D,SINGH S A,CHOUDHURY S,et al. Countering sinkhole and black hole attacks on sensor networks using dynamic trust management[C]. Morocco:IEEE Symposium on Computers and Communications,2008.
[5] CUI K W, KUMAR A,XAVIER N,et al. An intelligent home appliance control-based on WSN for smart buildings[C]. Hanoi:2016 IEEE International Conference on Sustainable Energy Technologies, 2016.
[6] ALAMELU J V,MYTHILI A. Design of IoT based generic health care system[C]. Vellore:International conference on Microelectronic Devices, Circuits and Systems,2017.
[7] 張國萍. 無線傳感器網絡在代碼分發最新研究進展[J]. 浙江理工大學:自然學報版,2015,33(2): 219-227.
[8] 錢歡,施偉斌. ?基于Android的無線傳感器網絡代碼更新系統設計[J]. 軟件導刊,2017, 16(12): 125-127.
[9] 吳濤,施偉斌,張磊. 基于CC2430的代碼更新系統設計[J]. ?電子科技,2017,30(1):123-125.
[10] 任萬春,馬延淮,劉琦. ?一種基于多播分發樹的無線傳感器網絡代碼分發協議[J]. 傳感器與微系統, 2014, 33(11):149-152.
[11] 王海勇,楊庚,許建. ?一種低耗能的代碼分發協議[J]. 計算機工程, 2012, 38(23):84-87.
[12] EVANS D. The Internet of Things:how the next evolution of the Internet is changing everything[J]. CISCO White Paper,2011,38:1-11.
[13] GOYETTE R. An analysis and description of the inner workings of the FreeRTOS kernel [EB/OL]. http://richardgoyette.com/Research/Papers/FreeRTOSPaper.pdf.
[14] DéHARBE D,GALV?O S,MOREIRA A M. Formal methods: foundations and applications[M]. ?Berlin: Springer,2009.
[15] FERREIRA J F,He G H, Qin S C. Automated verification of the FreeRTOS scheduler in Hip/Sleek[J]. ?International Journal on Software Tools for Technology Transfer,2014, (16)4:381-397.
[16] YOKOTANI ?T,SASAKI Y. Comparison with HTTP and MQTT on required network resources for IoT[C]. ?Bandung: 2016 International Conference on Control, Electronics, Renewable Energy and Communications,2017.
[17] BORMANN C,SHELBY Z. Block-wise transfers in CoAP [EB/OL]. ?https://tools.ietf.org/html/draft-ietf-core-block-20.
[18] BORMANN C,CASTELLANI A P,SHELBY Z. CoAP:an application protocol for billions of tiny internet nodes[J]. IEEE Internet Computing,2012(2): 62-67.
[19] KR?O S,POKRI? B,CARREZ F. Designing IoT architecture(s): a European perspective[C]. ?Seoul: IEEE World Forum on Internet of Things (WF-IoT),2014.
[20] RAO S,CHENDANDA D,DESHPANDE C. Implementing LWM2M in constrained IoT devices[C]. Melaka:IEEE Conference on Wireless Sensors,2015.
[21] BEATON W. Eclipse hawkBit[EB/OL]. ?https://projects.eclipse.org/projects/iot.hawkBit.
[22] AL-FUQAHA A,GUIZANI M,MOHAMMADI M,et al. Internet of Things: a survey on enabling technologies, protocols, and applications[J]. IEEE Communications Surveys & Tutorials, 2015(4):2347-2376.
(責任編輯:江 艷)