錢承山,茹清晨,王彭輝,裴梓權(quán),楊仁昊,劉虹芝
(南京信息工程大學 自動化學院,江蘇 南京 210044)
隨著國家城鎮(zhèn)化的腳步越來越快,消防就成為了一個不可避免的話題。我國每年因火災(zāi)造成的損失高達200億元且仍在逐年增加。據(jù)應(yīng)急管理部消防救援局發(fā)布的消息稱,2020年全國消防救援隊共接報火災(zāi)25.2萬起,財產(chǎn)損失和人員傷亡嚴重。若能在火災(zāi)發(fā)生之前就將異常環(huán)境數(shù)據(jù)進行實時監(jiān)測,則可以從源頭上降低火災(zāi)概率。隨著物聯(lián)網(wǎng)等新興技術(shù)的誕生,“智慧消防”的概念出現(xiàn)在民眾的視野。本文針對目前消防感知存在的不足,設(shè)計了一套基于NB-IoT的無線火災(zāi)探測系統(tǒng),選用低功耗窄帶物聯(lián)網(wǎng)技術(shù),通過傳感器采集煙霧濃度、一氧化碳、溫濕度等信息集成后上傳至云平臺,用戶可以登錄管理平臺實時查看異常數(shù)據(jù)信息。
本研究實現(xiàn)了一種火災(zāi)探測系統(tǒng)。系統(tǒng)總體框架如圖1所示。該系統(tǒng)以NB-IoT通信技術(shù)為紐帶,設(shè)計支持NB-IoT的火災(zāi)傳感器來感知環(huán)境參數(shù)并連接到運營商的物聯(lián)網(wǎng)開放平臺;系統(tǒng)以嵌入式技術(shù)為基礎(chǔ),結(jié)合物聯(lián)網(wǎng)云平臺,利用新興的低功耗窄帶物聯(lián)網(wǎng)技術(shù),并以MQTT協(xié)議為通信協(xié)議,使用STM32系列芯片為主控制端,外接火災(zāi)探測傳感器實現(xiàn)對監(jiān)測環(huán)境的數(shù)據(jù)采集。通過蜂鳴器實現(xiàn)本地報警,最后管理人員登錄阿里云平臺對重點監(jiān)測區(qū)域內(nèi)的環(huán)境進行數(shù)據(jù)分析和整合。
圖1 系統(tǒng)框架
系統(tǒng)終端基于ARM嵌入式技術(shù),選用STM32F103C8T6為主控芯片,基于模塊化的設(shè)計思想,智能終端外接傳感器和終端執(zhí)行器,感知層集成多傳感器和終端執(zhí)行器蜂鳴器,再配合LCD1602顯示屏進行本地信息展示。本系統(tǒng)選用的無線通信技術(shù)是具有低功耗、廣覆蓋、大連接和低成本等特點的NB-IoT無線通信技術(shù),并且選用了BC26為通信模塊。如圖2所示為系統(tǒng)硬件組成框圖。
圖2 硬件框架
主控制器的功能包括收集傳感器采集的信息和運行狀態(tài),并將處理之后的狀態(tài)信息發(fā)送給NB-IoT無線傳輸模塊,然后再上傳到阿里云平臺。綜合考慮系統(tǒng)所需要的SWD/JTAG、DART、SPI總線、I/O口、中斷源、足夠的RAM和ROM存儲空間以及功耗和成本問題等,本系統(tǒng)選擇的主控制器是由ST公司研發(fā)的STM32F103C8T6微控制器。
STM32F103C8T6是一款32位的微控制器,采用LQFP48封裝且引腳數(shù)為48,具有3個UART接口,程序存儲器FLASH容量為64 KB,RAM容量為20 KB,需要的工作電壓為2~3.6 V,芯片的工作溫度在-40~85 ℃范圍內(nèi),因此其可以在低功耗和各種溫度環(huán)境下使用。本系統(tǒng)采用串口供電的方式,選用AMS1117降壓穩(wěn)壓模塊將輸入的5 V電壓降壓為3.3 V輸出為系統(tǒng)供電,同時AMS1117穩(wěn)壓器還起到一定的過流保護作用。JLINK接口電路用于燒制程序的接口、調(diào)試燒寫仿真程序,復(fù)位電路用于復(fù)位,晶振電路用于計時,與兩個電容并聯(lián)使用,電容大小為22 pF。主控芯片和外圍電路如圖3所示。
圖3 主控芯片和外圍電路
(1)溫濕度傳感器
考慮到火災(zāi)監(jiān)測傳感器要有精度高、耐高溫等特點,本系統(tǒng)選擇SHT30溫濕度傳感器,硬件接線如圖4所示。SHT30是瑞士盛世瑞恩生產(chǎn)的一款高精度溫濕度數(shù)字式傳感器,較市面上的普通溫濕度傳感器具有信號增強、可編程式溫濕度極限報警模式等功能,廣泛應(yīng)用于精度要求較高的電子器件中,同時該傳感器感知精度高并且可以在不同溫度下穩(wěn)定運行,因此非常適合在火災(zāi)監(jiān)測領(lǐng)域應(yīng)用。信號輸出轉(zhuǎn)換的測量數(shù)據(jù)總是以16位值(無符號整數(shù))傳輸。這些數(shù)值已經(jīng)線性化并補償了溫度和電源的影響。使用以下公式可以將這些原始值轉(zhuǎn)換為物理量。
圖4 濕度傳感器硬件接線
相對濕度換算公式為:
溫度換算公式為:
其中,和S分別表示原傳感器輸出的溫度和濕度。只有和S用十進制表示時,該公式才能計算正確。
(2)煙霧傳感器
本設(shè)計采用的是MQ-2型煙霧傳感器,接線如圖5所示。當其檢測到空氣中的煙霧濃度升高時,它的導(dǎo)電率也會相應(yīng)地升高。MQ-2型煙霧傳感器主要特點是靈敏度很高、響應(yīng)速度快、精度很高且抗干擾能力強,適合用于對日常環(huán)境的監(jiān)測。煙霧傳感器把采集到的煙霧值轉(zhuǎn)換為電壓信號輸出,然后利用分壓電路把單片機引腳可接收的電壓值送入單片機內(nèi)部進行相應(yīng)的處理。
圖5 煙霧傳感器接線
(3)CO傳感器
本設(shè)計采用的是CO濃度采集傳感器,接線如圖6所示。當CO濃度檢測模塊檢測到空氣中有CO氣體時,它的導(dǎo)電率會因為空氣中異常氣體含量提高而提高。CO濃度傳感器主要特點是靈敏度很高、響應(yīng)速度快、精度很高且抗干擾能力強;另外該器件可以長期穩(wěn)定工作,不會出現(xiàn)老化現(xiàn)象,因此得到了廣泛使用。
圖6 CO傳感器接線
從圖6可知,CO傳感器輸出的是模擬信號,把采集到的CO濃度轉(zhuǎn)換為電壓信號輸出,輸出電壓在0~5 V之間,由于單片機基準電壓是3.3 V,所以在輸出接口處采用了分壓電路,另用兩個10 kΩ電阻組成分壓電路,因此單片機引腳接收到的最大電壓值是2.5 V,滿足單片機電壓要求,把電壓信號送入單片機A/D轉(zhuǎn)換引腳PA1,經(jīng)過系統(tǒng)內(nèi)部模數(shù)轉(zhuǎn)換后,輸出數(shù)字量的CO濃度值。
無線通信模塊型號選用BC26,與GSM/GPRS系列移動通信的M26模組兼容,方便客戶切換至NB-IoT網(wǎng)絡(luò)。BC26基于聯(lián)發(fā)科MT2625芯片平臺研發(fā),支持廣泛的頻段。BC26因其體積小等優(yōu)點可以有效地幫助客戶減小終端尺寸并優(yōu)化產(chǎn)品成本,尤其適合可穿戴設(shè)備、安防以及便攜式智能健康監(jiān)控儀器等緊湊型終端。實物圖如圖7所示。
圖7 BC26實物圖
本系統(tǒng)選用的是OLED12864顯示屏,該顯示屏是一款單芯片CMOS/PLED驅(qū)動器, 硬件接線如圖8所示。OLED12864由132個段組成,64個公共端可支持128×64的最大顯示分辨率。OLED12864 嵌入了對比度控制,顯示RAM振蕩器和高效的DC/DC轉(zhuǎn)換器,減少了外部元件的數(shù)量和功耗。使用前要進行I/O初始化、延時函數(shù)初始化、I/O方向函數(shù)定義。
圖8 OLED12864顯示屏硬件接線
本系統(tǒng)中的嵌入式軟件主要采用C語言對MCU微處理器進行程序編寫,實現(xiàn)對消防環(huán)境及設(shè)備信息的數(shù)據(jù)采集,并通過火災(zāi)預(yù)警、NB-IoT模塊的通信傳輸、接收云平臺下發(fā)的指令實現(xiàn)對設(shè)備的控制,通過閾值設(shè)置實現(xiàn)報警等功能。主程序流程如圖9所示。
圖9 主程序流程
首先給系統(tǒng)通電后對串口、GPIO口等進行初始化并啟動A/D轉(zhuǎn)換,然后BC26模塊初始化,傳感器采集數(shù)據(jù)并經(jīng)過主控制器判斷是否超過閾值,若采集的數(shù)據(jù)大于閾值則進行報警,并將采集數(shù)據(jù)和產(chǎn)生火災(zāi)預(yù)警的結(jié)果上傳到云平臺可視化界面。
主控制器STM32F301與SHT30之間通過IC標準串行接口相連接進行數(shù)據(jù)采集,并通過主控芯片的PA6引腳與SHT30模塊連接。系統(tǒng)采集數(shù)據(jù)時首先要初始化SHT30,配置SHT30用到的I/O口,系統(tǒng)通過中斷的方式,使IC終端服務(wù)函數(shù)發(fā)送信號量,然后開始計算溫濕度。溫濕度程序流程如圖10所示,具體計算公式如式(1)~(3)所示。
圖10 溫濕度程序流程
本文的煙霧濃度采集模塊選用的是MQ-2傳感器。由圖11可知,系統(tǒng)上電后,煙霧傳感器首先進行模塊初始化;然后控制中心讀取A/D轉(zhuǎn)換后的數(shù)字信號值,若讀取信號正確,則系統(tǒng)把數(shù)字信號值轉(zhuǎn)換為對應(yīng)的煙霧值并輸出。
圖11 MQ-2模塊程序流程
火災(zāi)探測系統(tǒng)數(shù)據(jù)采集完成后的數(shù)據(jù)傳輸是系統(tǒng)中的一個重要部分,數(shù)據(jù)傳輸?shù)陌踩院涂煽啃灾苯記Q定著系統(tǒng)的穩(wěn)定性。首先獲取各個傳感器采集的數(shù)據(jù)并將所有采集到的數(shù)據(jù)合并字符串后轉(zhuǎn)換為一幀數(shù)據(jù);然后使用CRC校驗算法生成兩位校驗位放在數(shù)據(jù)幀的最后,并將其通過串口發(fā)送至NB-IoT模塊;最后通過NB-IoT模塊將數(shù)據(jù)以AT指令的形式發(fā)送到服務(wù)器端。具體的軟件流程如圖12所示。
圖12 數(shù)據(jù)傳輸模塊程序流程
ECS(Elastic Compute Service)是一種高性能、穩(wěn)定、安全的云計算服務(wù)器。此云服務(wù)器可以降低IT成本,與使用公共資源一樣無感、高效地使用服務(wù)器,使得計算資源使用更加方便,并得到拓展。將BC26作為無線傳輸模塊,利用NB-IoT技術(shù)將硬件終端采集的數(shù)據(jù)上傳至阿里云平臺,同時也接收云平臺反饋的JSON格式指令進行下一步操作。
在進行阿里云信息配置時,第一個參數(shù)是固定的,一定是"ALIAUTH";第二個參數(shù)是Will標志位,如果為0,那么忽略Will參數(shù)的配置,一般情況下為0;剩下三個是阿里云必需的元素,即product_key、device_name、device_secret,這三個參數(shù)可以在阿里云端創(chuàng)建設(shè)備之后非常容易地獲得。阿里云參數(shù)配置如圖13所示。
圖13 阿里云參數(shù)配置
訪問阿里云需要提交的JSON數(shù)據(jù)如下:
對硬件系統(tǒng)采集終端和無線通信模塊進行通電測試,如果傳感器和NB-IoT的指示燈亮,則表明系統(tǒng)成功初始化并正常工作,如圖14所示。
圖14 硬件系統(tǒng)實物圖
通電測試后,將程序通過FlyMcu下載進系統(tǒng)后,各采集模塊經(jīng)初始化后開始采集環(huán)境數(shù)據(jù),同時NB-IoT模塊遠程連接阿里云服務(wù)器。如圖15和圖16所示,登錄阿里云PC端網(wǎng)頁可以實時查看數(shù)據(jù)大小和變化趨勢。
圖15 云平臺數(shù)據(jù)采集界面
圖16 云平臺可視化界面
本文設(shè)計了一種基于NB-IoT的火災(zāi)探測系統(tǒng),可以采集火災(zāi)發(fā)生前后的環(huán)境參數(shù),如CO濃度、溫度、濕度等,并通過無線傳輸模塊上傳至云平臺。測試表明,系統(tǒng)能夠正常工作,并符合火災(zāi)探測的參數(shù)要求,通過接入阿里云平臺可以將數(shù)據(jù)實時上傳,能夠為火災(zāi)防治提供有效幫助。