江武志 羅玉文
摘 要:基于LoRa的環境檢測分析系統由傳感器采集環境數據,通過LoRa通信模塊傳輸到LoRa網關,后臺服務程序通過訂閱MQTT代理從LoRa網關獲取傳感器采集的環境數據,后臺服務程序對采集的數據進行存儲、統計、分析;后臺服務程序提供統一的RESTful數據接口供應用層調用;Web前端頁面展示實時數據和統計分析數據查詢。實現對校園環境的實時檢測和數據統計分析。
關鍵詞:LoRa;傳感器;環境檢測;統計分析
中圖分類號:TP23 文獻標識碼:A 文章編號:2095-1302(2018)04-00-04
0 引 言
隨著物聯網時代的到來,校園信息化建設也進入了“智慧校園”的時代,校園環境全面感知是“智慧校園”的基礎,對校園環境進行檢測分析,為校園環境治理提供依據以及為校園環境保護規劃提供基礎數據。傳統通過RJ45網口或RS485通信方式采集數據的有線網絡方案具有布線難、布線成本高、傳輸距離短等缺點。LoRa 是LPWAN通信技術中的一種,是美國Semtech公司采用和推廣的一種基于擴頻技術的超遠距離無線傳輸方案。這一方案改變了以往關于傳輸距離與功耗折衷的考慮方式,是一種能夠簡單實現遠距離、長電池壽命、大容量的系統,進而可擴展傳感網絡。LoRa網絡易于建設和部署,具有遠距離、低功耗(電池壽命長)、多節點、低成本的特性,已成為當前應用最普遍的物聯網專用網絡通信技術,發展形勢如火如荼。隨著中國LoRa應用聯盟(CLAA)的成立,LoRa技術的CLAA網絡架構方案已經形成,國內LoRa網絡部署全面起跑。
LoRa技術具有部署簡單、成本低、易于維護、云聯網等特點,是本文系統構建的首選。
1 設計思路
基于LoRa的環境檢測分析系統采用分布式、微服務設計方式,將服務細分,使每個服務的功能盡可能單一,降低服務之間的耦合,使系統可獨立部署運行和擴展。微服務可以做負載均衡,提高了性能和可靠性。
本系統主要由傳感層、網關、后臺服務、應用層(Web)組成。
(1)傳感層由RS 485溫濕度傳感器、RS 485 PM2.5粉塵傳感器、RS 485電表構成,通過RS 485總線接入到LoRa通信模塊;
(2)網關由LoRa通信模塊和嵌入式工控機構成;
(3)后臺服務提供數據存儲、統計、分析服務和統一的RESTful數據接口;
(4)Web提供數據展示和數據查詢等用戶交互頁面。
系統結構如圖1所示。
2 LoRa簡介
目前,LoRa 主要在全球免費頻段運行,包括433 MHz,868 MHz,915 MHz等。
2.1 LoRa特性
LoRa技術具有遠距離、低功耗(電池壽命長)、多節點、低成本等特性。
2.2 LoRa網絡
LoRa網絡主要由終端(可內置LoRa模塊)、網關(或稱基站)、Server和云四部分組成,應用數據可雙向傳輸。LoRa網絡架構如圖2所示。
2.3 LoRaWAN協議
LoRaWAN是 LoRa聯盟推出的一個基于開源MAC層協議的低功耗廣域網(Low Power Wide Area Network, LPWAN)標準。這一技術可為電池供電的無線設備提供局域、全國或全球網絡。LoRaWAN瞄準的是物聯網中的一些核心需求,如安全雙向通信、移動通信和靜態位置識別等服務。該技術無需本地復雜配置就可實現智能設備間的無縫對接互操作,為物聯網領域的用戶、開發者和企業提供自由操作權限。
3 系統設計
3.1 硬件接入
RS 485數據采集器(溫濕度、空氣質量、電表)通過RS485總線接入LoRa通信模塊,通過LoRa通信模塊將數據采集器采集到的數據傳輸到網關端的LoRa通信模塊。數據采集器端數據為被動上傳方式,由網關定時下發指令獲取數據。
3.2 網關程序
網關(Gateway)又稱網間連接器、協議轉換器。網關在傳輸層上實現網絡互連,是最復雜的網絡互連設備,僅用于兩個高層協議間的網絡互連。
網關程序主要由RS 232轉TCP驅動程序、數據采集程序、數據儲存程序、數據上傳程序、MQTT程序(數據生產者)組成。LoRa通信模塊通過RS 232接入嵌入式工控機,通過RS 232轉TCP驅動程序將LoRa接收到的采集數據統一轉換為TCP協議,數據采集程序通過Socket通信獲取數據。網關程序結構如圖3所示。
4 MQTT服務
4.1 MQTT簡介
MQTT是基于二進制消息發布/訂閱編程模式的消息協議,最早由IBM提出,如今已成為OASIS規范。由于規范較簡單,非常適合需要低功耗和網絡帶寬有限的IoT場景。
4.2 MQTT設計原則
(1)精簡,不添加可有可無的功能。
(2)發布/訂閱(Pub/Sub)模式,方便消息在傳感器之間傳遞。
(3)允許用戶動態創建主題,零運維成本。
(4)把傳輸量降到最低以提高傳輸效率。
(5)把低帶寬、高延遲、不穩定的網絡等因素考慮在內。
(6)支持連續的會話控制。
(7)理解客戶端計算能力可能較低。
(8)提供服務質量管理。
(9)假設數據不可知,不強求傳輸數據的類型與格式,保持靈活性。
4.3 MQTT發布/訂閱模式
與請求/回答這種同步模式不同,發布/定義模式解耦了發布消息的客戶(發布者)與訂閱消息的客戶(訂閱者)之間的關系,這意味著發布者和訂閱者之間無需直接建立聯系。
(1)發布者與訂閱者不必了解彼此,只要認識同一個消息代理即可。
(2)發布者和訂閱者不需要交互,發布者無需等待訂閱者確認而導致鎖定。
(3)發布者和訂閱者不需要同時在線,可以自由選擇時間來消費消息。
4.4 MQTT主題
MQTT通過主題對消息進行分類,其本質是一個UTF-8字符串,可通過反斜杠表示多個層級關系。主題無需創建,直接使用即可。
主題還可通過通配符進行過濾。其中,“+”可以過濾一個層級,而“·”只能出現在主題最后,表示過濾任意級別的層級。舉例如下:
building-b/floor-5:代表B樓5層的設備。
+/floor-5:代表任何一個樓的5層的設備。
building-b/·:代表B樓所有的設備。
雖然MQTT允許使用通配符訂閱主題,但并不允許使用通配符廣播。
4.5 MQTT服務質量
為了滿足不同的場景,MQTT支持三種不同級別的服務質量(Quality of Service,QoS),為不同場景提供消息可靠性:
(1)級別0:盡力而為。消息發送者會想盡辦法發送消息,但遇到意外并不會重試。
(2)級別1:至少一次。消息接收者如果沒有知會或者知會本身丟失,消息發送者會再次發送以保證消息接收者至少會收到一次,但也可能造成重復消息。
(3)級別2:恰好一次。保證這種語義肯定會減少并發或者增加延時,但如果丟失或重復消息不可接受時,級別2最合適。
級別2所提供的不重不丟在很多情況下都是最理想的,但往返多次的確認會給并發和延遲帶來影響。級別1提供的至少一次語義在日志處理場景下完全足夠,所以像Kafka這類系統利用此特點減少確認,可大大提高并發。級別0適合雞肋數據場景,暫且保留。
4.6 MQTT消息類型
MQTT擁有14種不同的消息類型:
(1)CONNECT:客戶端連接到MQTT代理。
(2)CONNACK:連接確認。
(3)PUBLISH:新發布消息。
(4)PUBACK:新發布消息確認,是QoS 1給PUBLISH消息的回復。
(5)PUBREC:QoS 2消息流的第一部分表示消息發布已記錄。
(6)PUBREL:QoS 2消息流的第二部分表示消息發布已釋放。
(7)PUBCOMP:QoS 2消息流的第三部分表示消息發布完成。
(8)SUBSCRIBE:客戶端訂閱某個主題。
(9)SUBACK:對于SUBSCRIBE消息的確認。
(10)UNSUBSCRIBE:客戶端終止訂閱的消息。
(11)UNSUBACK:對于UNSUBSCRIBE消息的確認。
(12)PINGREQ:心跳。
(13)PINGRESP:確認心跳。
(14)DISCONNECT:客戶端終止連接前通知MQTT代理。
4.7 MQTT代理
Mosquitto是MQTT的開源代理,遵循MQTT v3.1.1協議。
5 后臺服務
后臺服務采用Java語言編寫,由數據解析服務、數據存儲服務、數據統計分析服務、用戶管理模塊、設備節點管理模塊、實時數據模塊組成。后臺服務結構如圖4所示。
5.1 數據解析服務
數據解析服務程序主要負責將網關上傳的環境數據進行協議解析,獲得溫濕度、PM2.5、用電量等數據,并將解析的數據存入Rides緩存,由相應的服務程序獲取并做相應的處理。
5.2 數據存儲服務
數據存儲服務程序從Rides緩存中獲取解析后的數據,將相應的數據存入MySQL對應的數據庫表中。
5.3 數據統計分析服務
統計當月平均每天的(24小時平均值)溫度、濕度;統計當月每天PM2.5污染指數與指數類別;統計當月每天的用電量。數據統計如圖5所示。
5.4 用戶管理模塊
用戶管理模塊提供用戶添加、用戶刪除、用戶信息修改、密碼更改、用戶列表查詢、用戶登陸、注銷等功能。如圖6所示。
5.5 設備節點管理模塊
設備節點管理模塊可提供設備節點添加、設備節點刪除、設備節點信息修改、設備節點列表查詢等功能,如圖7所示。
5.6 實時數據模塊
實時數據模塊可獲取各監測點當前的實時溫濕度、PM2.5、用電量,如圖8所示。
6 數據建模
功能建模如圖9所示。
數據建模如圖10所示。
編號:001
職責:存儲采集的數據。
屬性:ID,溫度,濕度,PM2.5,電流,電壓,功率,(總)用電量,創建時間。
說明:數據采集類與數據天統計類存在依賴關系,數據天統計類每天數據的生成依賴數據采集類采集的數據。
編號:002
職責:對每天采集的數據進行統計。
屬性:ID,平均溫度,平均濕度,平均 PM2.5 濃度,(當天)用電量,創建時間。
說明:數據天統計類與數據采集類存在依賴關系, 數據天統計類每天數據的生成依賴數據采集類采集的數據。
7 結 語
本環境檢測分析系統通過溫濕度傳感器、PM2.5粉塵傳感器、電表采集校園的環境數據和用電數據,實時檢測校園的環境情況。通過歷史數據統計分析校園的環境情況以及校園用電情況,為校園環境治理提供依據,為校園環境保護規劃以及校園節能提供基礎數據,也為未來的“智慧校園”提供數據支持。
參考文獻
[1] AUGTEK物聯網觀察-LoRa技術科普[Z].
[2]張琪.MQTT入門[Z].
[3]宋延軍,梁俊艷,王德志.基于LoRa的10 kV架空線路故障監測系統設計與實現[J].華北科技學院學報,2017,14(5):30-34.
[4]趙太飛,陳倫斌,袁麓,等.基于LoRa的智能抄表系統設計與實現[J].計算機測量與控制,2016,24(9):298-301.
[5]馬路遙,徐鵬.基于LoRa擴頻技術在燃氣無線抄表系統的應用[J].城市燃氣,2016(7):7-9.
[6]霍振龍.LoRa技術在礦井無線通信中的應用分析[J].工礦自動化,2017,43(10):34-37.
[7]羅貴英.基于LoRa的水表抄表系統設計與實現[D].杭州:浙江工業大學,2016.
[8]鄭浩. LoRa技術在低功耗廣域網絡中的實現和應用[J].信息通信技術,2017(1):19-26.