徐漢斌,遲 楊,尤軍杰,周 雷
(1.武漢理工大學 機電工程學院,湖北 武漢 430070;2.南京計量測試中心,江蘇 南京 210058)
天然氣能源和廣大人民群眾的生活密不可分,然而天然氣能源在給人們日常生活帶來便利的同時,也帶來了潛在的安全隱患問題。對天然氣泄漏事件缺乏監(jiān)測而引發(fā)的危害人們生命財產的事件時有發(fā)生。目前對于可燃氣體泄漏檢測,傳統(tǒng)的方法一般是采用獨立式的可燃氣體報警器進行單點現場監(jiān)測或者采用分線式和總線式的可燃氣體報警器進行多節(jié)點監(jiān)測,然后利用有線通信方式構建局域網絡進行統(tǒng)一管理。但是獨立式可燃氣體報警器不能實現遠程監(jiān)控,而有線通信組網的方式又存在布線施工以及維護等問題[1-3]。針對以上問題,設計一種基于物聯(lián)網的天然氣泄漏監(jiān)測系統(tǒng),采用WIFI無線通信的方式,依托于中國移動免費開放的物聯(lián)網OneNET云平臺,可以實現對天然氣泄漏的遠程實時監(jiān)控及預警。
天然氣的主要成分為甲烷氣體,對天然氣泄漏的監(jiān)測實則是對甲烷(CH4)氣體濃度的監(jiān)測。該系統(tǒng)由探測終端、OneNET云平臺以及監(jiān)測客戶端3部分組成。探測終端具備環(huán)境數據的采集、處理、報警響應、以及上傳數據到云平臺的無線通信功能。云服務平臺起到對探測終端傳輸數據的管理、存儲作用。監(jiān)測客戶端支持電腦、手機、Pad等,通過互聯(lián)網對云平臺進行遠程訪問,從而實現對探測終端的實時監(jiān)測和控制。系統(tǒng)總體框架如圖1所示。

圖1 系統(tǒng)總體框架
探測終端如圖1所示,主要包括微控制器、電源模塊、網絡傳輸模塊、GPS定位模塊、聲光報警模塊和甲烷氣體檢測模塊。
微控制器采用STM32F103C8T6芯片,通過USART接口分別與ESP8266 WIFI模塊、 GPS模塊連接,利用片上資源ADC實現對甲烷氣體檢測模塊輸出信號的模數轉換獲取甲烷氣體濃度,并利用片上豐富的I/O口來設計聲光報警模塊。
對于可燃氣體的檢測,若按傳感器的檢測原理分類,主要有催化燃燒型、半導體型、紅外線吸收型、熱導型和光干涉型等[4-5]。系統(tǒng)中CH4氣體檢測模塊采用的是英國Dynament公司的甲烷紅外傳感器。該傳感器采用非分散性紅外線(non-dispersive infrared, NDIR)技術。它是一種基于氣體吸收理論的方法。紅外光源發(fā)出的紅外輻射經過一定濃度待測的氣體吸收之后,與氣體濃度成正比的光譜強度會發(fā)生變化,通過求出光譜強度的變化來得到氣體的濃度[6]。該傳感器采用一體化電路設計,集成度高,內置溫度補償功能,相對于市場上使用較多的催化燃燒式傳感器在測量精度、靈敏度、使用壽命和抗干擾能力等方面更具備優(yōu)勢。
探測終端通過設定甲烷氣體濃度閾值分為低濃度、高濃度2級自動報警機制。聲光報警模塊采用LED燈閃爍的顏色,以及無源蜂鳴器震蕩頻率來實現聲光報警的分級功能。如果甲烷紅外氣體傳感器檢測到環(huán)境中甲烷濃度達到低濃度閾值將觸發(fā)1級報警,LED黃燈閃爍,蜂鳴器低頻鳴響;如果甲烷紅外氣體傳感器檢測到環(huán)境中甲烷濃度達到高濃度閾值將觸發(fā)2級報警,LED紅燈閃爍,蜂鳴器高頻鳴響;如果檢測環(huán)境正常,則LED綠燈閃爍,蜂鳴器不鳴響。
甲烷氣體檢測模塊將探測到的甲烷氣體濃度數據傳遞給微控制器,微控制器根據報警濃度閾值進行判斷,如果氣體濃度超過報警濃度閾值,則觸發(fā)聲光報警模塊執(zhí)行動作。通過ESP8266 WIFI模塊和GPS模塊將采集到的甲烷氣體濃度數據和經緯度數據實時上傳至OneNET平臺,并可接受執(zhí)行平臺指令。
物聯(lián)網的體系架構可以分為3個層次:感知層、網絡層和應用層[7]。OneNET平臺在物聯(lián)網體系中作為網絡層,為感知層和應用層搭建連接橋梁,分別為上下游提供中層核心能力,能夠適應于高并發(fā)以及海量終端接入的應用場景,采用了分布式結構和多重數據保障機制,并且支持多種通信協(xié)議。同時OneNET平臺也提供Saas層業(yè)務服務,可以為用戶提供第三方應用開放平臺,方便快速搭建用戶自己的Web和APP應用[8-11]。
首先在OneNET平臺注冊賬號,創(chuàng)建產品。在建立產品時,需要填寫相關信息、選擇設備接入協(xié)議,本系統(tǒng)采用MQTT協(xié)議。建立完產品后,在產品中添加設備。OneNET平臺會給每一個設備分配唯一的ID和APIKey用于設備的識別管理,并且提供應用平臺通過Restful API方式實現與關聯(lián)設備的數據流雙向交互。筆者利用OneNET平臺創(chuàng)建一個天然氣泄漏監(jiān)測項目,并在項目下關聯(lián)一個探測終端設備和生成監(jiān)測客戶端的Web應用。在探測終端設備中添加探測終端上傳的數據流,通過應用編輯器進行監(jiān)測客戶端頁面設計,添加顯示控件和控制控件,最后發(fā)布Web網頁鏈接。
探測終端具備甲烷氣體濃度數據實時采集、地理位置定位、自動聲光報警以及與OneNET平臺雙向通信的功能,為合理高效地利用MCU(microcontroller unit),增強探測終端的快速響應處理能力,采用時間觸發(fā)合作式任務調度器的機制[12]進行探測終端的軟件框架設計。軟件主程序流程如圖2所示。

圖2 軟件主程序流程
系統(tǒng)首先對MCU上的硬件外設進行初始化,包括對相關外設時鐘、GPIO口、ADC、USART、TIM、看門狗初始化,然后通過延時函數讓甲烷紅外傳感器預熱1 min,達到穩(wěn)定工作狀態(tài)。之后創(chuàng)建各個任務函數,設定任務循環(huán)周期,并將其添加至任務鏈表。任務包括ADC采集轉換氣體濃度數據、聲光報警判別處理、網絡連接/平臺接入、發(fā)送數據到平臺、接收平臺消息。接下來程序將進入無限循環(huán)的任務調度部分。整個系統(tǒng)以TIM時基為基準,通過定時器中斷來記錄任務等待時間和更新任務的工作狀態(tài),通過在任務調度中查詢任務鏈表的當前任務狀態(tài)來決定是否執(zhí)行該任務。
筆者重點實現天然氣探測系統(tǒng)的物聯(lián)網通信,因此在探測終端軟件部分主要闡述與OneNET平臺通信的軟件設計。
為了使程序結構清晰明了,減低程序的耦合性,增加其可讀性、可維護性,對通信程序進行分層處理,分為平臺協(xié)議層和網絡設備層。網絡設備層又分為設備驅動層和設備應用層,如圖3所示。平臺協(xié)議層封裝了基于MQTT協(xié)議的相關函數用于與OneNET平臺通信,設備應用層封裝ESP8266模塊相關函數,設備驅動層封裝USART串口相關讀寫、發(fā)送、接收函數。

圖3 通信程序分層結構
3.2.1 網絡連接
探測終端通信模塊采用ESP8266-01S,探測終端通過USART串口對ESP8266模塊進行讀寫操作,發(fā)送AT指令可訪問到OneNET平臺。
ESP8266_SendCmd("AT ", "OK"); //啟動ESP8266-01S芯片
ESP8266_SendCmd("AT+CWMODE=3 ", "OK"); //配置AP和Station模式
ESP8266_SendCmd("AT+CWJAP="ACRS-YF","87360188yf" ","GOT IP");//接入無線網絡
ESP8266_SendCmd("AT+CIPSTART="TCP","183.230.40.39",6002 ", "CONNECT");//連接OneNET平臺服務器地址端口
3.2.2 MQTT通信
探測終端與OneNET平臺進行通信采用的是MQTT協(xié)議[13]。MQTT是基于C/S架構下發(fā)布/訂閱模式的消息傳輸協(xié)議。作為一種即時通信協(xié)議,它具有開銷小,對網絡環(huán)境適應性強的特點,可以保持實時通信并有效降低功耗和網絡流量,極其適用于物聯(lián)網領域。基于此協(xié)議,在探測終端通過ESP8266模塊訪問到OneNET平臺時,首先需要發(fā)送CONNECT(連接服務端)控制報文,將探測終端的設備名、訪問的用戶名、密碼以及相關會話設置發(fā)送至OneNET平臺服務器,從而建立探測終端與OneNET平臺之間的會話通信。之后為了保證探測終端與OneNET平臺之間的網絡通信長連接,需要探測終端向OneNET平臺定時發(fā)送PINGREQ(心跳請求)控制報文。查看OneNET平臺關于MQTT的修改協(xié)議可知,在上傳數據到平臺時,應該采用MQTT協(xié)議PUBLISH控制報文,特別的是,PUBLISH報文的可變報頭的主題名必須是“$dp”。系統(tǒng)中需要上傳的數據流包括紅、黃、藍3個LED燈的狀態(tài)數據,蜂鳴器的狀態(tài)數據,地理位置信息數據,甲烷氣體濃度數據。數據流采用json格式如下:
/* Red_LED 紅燈狀態(tài)
Yellow_LED 黃燈狀態(tài)
Green_LED 綠燈狀態(tài)
Beep 蜂鳴器狀態(tài)
CH4_Concentration 甲烷氣體濃度值
GPS 地理經緯度數據
*/
{
"datastreams":[ { "id":"Red_LED", "datapoints":[{"status": red_led_status}]},
{ "id":"Yellow_LED", "datapoints":[{"status": yellow_led_status}]},
{ "id":"Green_LED", "datapoints":[{"status": green_led_status}]},
{"id":"Beep","datapoints":[{"status": beep_status}]},
{ "id":"CH4_Concentration", "datapoints":[{"value": ch4_value}]},
{"id":"GPS","datapoints":[{"longitude":gps_lon ,"dimensions": gps_dim}]} ]
};
ESP8266模塊首先通過AT指令與OneNET平臺建立網絡連接,之后STM32F103C8T6微控制器將要發(fā)送的數據流封裝成json格式數據包寫入ESP8266模塊,遵照MQTT協(xié)議將數據包發(fā)送到OneNET平臺。至此完成探測終端上傳數據的一系列操作。
完成整個系統(tǒng)搭建后,對整個系統(tǒng)進行試驗測試。甲烷氣體在空氣中的爆炸界限為5%~15%,因此從安全性的角度考慮,以當前環(huán)境中甲烷氣體濃度所占爆炸下限值的百分比劃分報警等級,設定低濃度報警值為40%,高濃度報警值為60%。分別以濃度值為0.51%、2.53%、3.01%的甲烷瓶裝標準氣對探測終端依次進行通氣斷氣測試。登錄到監(jiān)測客戶端觀察甲烷濃度數據實時顯示情況以及報警狀態(tài)的變化。監(jiān)測客戶端界面如圖4所示。監(jiān)測客戶端顯示界面中折線圖顯示了在2018年6月4日 16:28 ~2018年6月4日 16:41這段時間內對探測終端通入3種不同濃度的甲烷氣體測得數據值及相應變化時刻。儀表盤及控件開關顯示了當前甲烷氣體濃度占爆炸下限的百分比為60.13%,處于高濃度報警狀態(tài),Red_LED 點亮,蜂鳴器高頻報警,Yellow_LED和Green_LED關閉,圖上顯示了該探測終端的地理位置信息。

圖4 監(jiān)測客戶端界面顯示
通過測試結果可以看出,本系統(tǒng)能夠實時準確地監(jiān)測到甲烷氣體百分比數據,并及時對監(jiān)測結果做出報警響應。基于中國移動免費開放的物聯(lián)網OneNET云平臺提供的Saas服務,可以有效幫助用戶進行天然氣泄漏的遠程實時監(jiān)控。這種基于物聯(lián)網云服務實現遠程監(jiān)控的方式,符合“萬物互聯(lián)”的時代發(fā)展趨勢,必將在可燃氣體監(jiān)測領域發(fā)揮著越來越重要的作用。