
















關鍵詞:森林火災;報警系統;STM32;北斗定位;無線傳輸
0 前言
森林火災是全球最嚴重的自然災害之一,不僅破壞生態環境,還會危及社會,使人的生命無法得到安全保障。2020年全國發生森林火災有1 153起,直接減少了八千多公頃森林覆蓋面積[1-2],2024年3月15日17時,四川省甘孜州雅江縣呷拉鎮白孜村發生森林火災,這些事故的發生都在時刻警醒著人們要把握森林防火安全。近年來由于全球氣溫異常,生態環境惡化,在非防火期內森林火災也時有發生,做好森林火災的預防及報警刻不容緩。
1 設計方案
基于北斗定位的森林火災報警系統要求以微處理器為控制核心,完成火災報警有兩個關鍵因素,即火災發生地的信息參數采集以及實現遠程報警。系統框圖如圖1所示。
1.2 設計方案選擇
選用STM32F103C8T6芯片作為基于北斗定位的森林火災報警系統的主控制器。選擇DS18B20溫度傳感器來測量森林環境中的溫度。MQ-2半導體氣體傳感器對煙霧氣體敏感,探測效果良好,性價比高,使用它來完成森林中煙霧濃度的探測。當探測到有火災時需要通過GSM模塊來把火災發生的地點信息發送到管理員的手機中。SIM900A模塊工作頻段是四頻的,支持藍牙串口,支持TTS功能,體積小[3],適合作為系統的無線通信模塊。使用OLED12864模塊實時顯示森林中的溫度以及經緯度信息。北斗定位系統是我國自主建設和運行的,定位精度達10米,測速精度0.2m/s,數據安全可靠,因此使用北斗+GPS雙模衛星定位GY-GPS6MV1 模塊來確定火災發生的地點位置。
2 硬件電路設計
2.1 STM32單片機最小系統電路設計
STM32F103C8T6內存容處量理以器及的1 M內B核的是閃存cor,te2x個-M132, 位,1us模數轉化器,可以映射到16個模數轉化通道,3個異步串行通信通道[4]。STM32F103C8T6單片機芯片原理圖如圖2所示。
2.2 煙霧采集電路設計
當森林中環境中煙霧濃度大于300PPM時,表示有火災發生,此時處理器將控制系統報警,并執行發報警短信的動作。本系統選用性價比較高的煙霧探測模塊MQ-2來采集環境中的煙霧濃度。煙霧檢測模塊MQ-2上設計電路把電導率的變化轉化為電壓的變化,因此只需要采集模塊引腳輸出的電壓值[5-6]。然后利用電壓和煙霧濃度之間的關系就可以計算出環境中具體的煙霧濃度值。煙霧檢測模塊MQ-2和處理器的連接電路如圖3所示。
2.3 溫度采集電路設計
溫度傳感器DS18B20一共只有3個引腳,其中兩個引腳是電源引腳,使用正5伏直流供電。溫度傳感器DS18B20內部已經把溫度轉化為數值,然后通過中間的2號引腳把溫度值傳出來,處理器需要按照一定的單總線協議從DQ引腳中把溫度讀取出來,然后把數據處理,最后把溫度顯示在顯示屏上。當溫度大于60度時,單片機發出控制命令,同時控制蜂鳴器報警,并發送報警短信。因此,在讀取溫度之前需要詳細地了解單總線通信協議,并通過PB5引腳利用單總線通信協議把溫度值讀取出來。DS18B20和處理器的連接電路如圖4所示。
2.4 定位電路設計
為了快速準確定位到火災發生的地址,使用北斗全球定位模塊來獲取火災目標的位置信息(經度和緯度)。北斗模塊的信號接收模塊為GY-GPS6MV1,核心是U-BLOX NEO-6M模組,它能快速準確地連接到衛星,并從衛星上連續不斷地獲取數據信息。此時獲取的數據信息是帶有起始位和結束位的一幀一幀的信息,每幀信息中包含了12個數據信息分別是:時間、緯度、緯度半球、經度、經度半球、GPS3toS+OkMZdH+87uWKGhr1f7xBuhAdNEFnsUvMahQ4Pg=狀態、正在使用解算位置的衛星數量、HDOP水平精度因子、海拔高度、地球橢球面相對大地水準面的高度、差分時間、差分站ID號[7-8]。GY-GPS6MV1模塊和處理器的電路連接圖如圖5所示。
2.5 短信報警電路設計
當火災發生地的環境溫度超過60度,或者煙霧濃度超過300PPM時,此時就通過GSM模塊發送經度和緯度的定位短信到管理員手機上。SIM900A模塊為5 伏直流供電,由于模塊在發送短信時的功耗較大,功耗高達10W,因此整個系統供電功率應該10W以上。為此,這里將使用5伏2.1A的電源適配器給整個系統供電。在使用SIM900A模塊時,應該先把手機卡插入到模塊的卡槽中,當模塊識別到移動網絡之后,此時模塊上的信號指示燈就會由快速閃爍變成,每間隔3 秒閃爍一次。此時模塊就處于正常工作狀態。系統處理器處理所有的數據,當系統滿足了報警條件,處理器就可以把字符串型的信息通過串口通信協議發送給手機模塊,手機模塊接收到信息就會自動觸發電信網絡,把數據信息發送出去。
手機GSM模塊SIM900A和處理器的連接電路如圖6所示。
2.6 蜂鳴器報警電路設計
基于北斗定位的森林火災報警系統中當環境溫度超過60度,或者煙霧濃度超過300PPM的值時,需要提醒用戶參數超標,這里使用有源蜂鳴器聲音來實現報警功能。蜂鳴器報警電路如圖7所示。
使用PNP三極管SS8550放大電流驅動蜂鳴器。溫度超過60度,或者煙霧濃度超過300PPM的值時,此時處理器通過PB11引腳給蜂鳴器報警電路一個低電平,此時SS8550三極管導通,有電流通過蜂鳴器,蜂鳴器響。當參數正常時,此時處理器通過PB11引腳給蜂鳴器報警電路一個高電平,此時SS8550三極管截止,沒有電流通過蜂鳴器,蜂鳴器停止發聲。
2.7 顯示電路設計
為了方便用戶實時直觀地看到整個系統所有采集的溫度和煙霧濃度等數據信息,這里將采用面積小且節能的OLED12864 作為系統的顯示屏。顯示屏OLED12864和處理器的接口電路如圖8所示。
本系統使用OLED12864字符顯示模塊一共有7 個引腳,使用3.3伏供電,供電引腳為1號引腳和2號引腳,1號引腳連接到電源地,2號引腳連接到3.3伏正電源[9-10]。3號引腳是SPI數據通信的時鐘線連接到處理器的PA5引腳,4號引腳是SPI數據通信的數據線連接到處理器的PA7引腳。6號引腳是SPI數據通信的通信數據或者命令的選擇引腳,當該引腳賦值為高電平,表示傳輸的是數據;當該引腳賦值為低電平,表示傳輸的是命令[11]。7號引腳是片選引腳,低電平有效。
本系統使用的OLED12864是一個字符型的顯示器件,只能顯示英文、數字以及特殊字符等等。單片機處理使用SPI通信協議把需要顯示的數據傳送給OLED12864,單片機在處理顯示的字符時,需要把字符轉化為ASCII碼,然后再把字符傳送給OLED12864 內部的控制器
3 軟件設計
3.1 總軟件流程設計
總軟件 設計流程圖如圖9所示。
基于北斗定位的森林火災報警系統在主函數中首先要把GSM短信報警模塊和北斗模塊使用的串口1和串口2初始化,完成了初始化之后,通過串口2從北斗模塊中獲取當前的經度值和緯度值并把數據顯示在顯示屏上,再通過ADC采集模塊從煙霧傳感器中采集煙霧值并把數據顯示在顯示屏上。接著采集溫度值,并把溫度值顯示在顯示屏上。最后進行比較判斷,如果煙霧濃度大于300PPM,或者溫度大于60度則表示森林中有發生火災,此時處理器控制蜂鳴器啟動報警,同時啟動串口1 通過GSM 模塊發送報警短信[12-13]。
3.2 溫度采集程序設計
本設計使用數字量輸出的溫度傳感器DS18B20 采集森林中環境的溫度。處理器連接溫度傳感器的數字信息輸出引腳,編寫代碼從該引腳中獲取數字量值,溫度傳感器中自帶有寄存器,不管處理器有沒有讀數據,溫度信息都保存在寄存器中。處理器通過總線協議可以從寄存器中讀取數值[14]。具體的讀取數據的流程如圖10所示。
首先把溫度數值信號初始化,然后處理器發送啟動指令給DS18B20的寄存器,然后再發送復位的指令給DS18B20,DS18B20寄存器接收到以上指令之后檢查寄存器是否做好數據輸出的準備。然后再進行跳過ROM操作,寄存器啟動轉換,輸出數值。此時處理器從寄存器中連續獲取高8位和低8位的數據,然后把數據合成為16位的數,但是此時的數據值并不是具體的溫度值,還需要把數值乘以0.0625,最終把數值換算成溫度值。
3.3 煙霧濃度采集程序設計
為了提高測量的準確度,本設計使用STM32F103 C8T6處理器自帶的12位ADC轉換器從煙霧傳感器的信號輸出引腳獲取數值。STM32F103C8T6處理器中12位的ADC轉換器是使用逐次比較的方式把傳感器輸入的電壓值以數值的形式輸出。電壓采集流程圖如圖11所示。
3.4 顯示軟件程序設計
顯示程序是對OLED12864顯示器件進行程序設計,程序中完成顯示屏的初始化以及顯示具體內容的設計,在顯示程序的初始化中對顯示屏的使能有效位進行控制,使其開啟顯示功能,之后設定字體大小、設定顯示位置以及清空顯示屏等內容進行程序設計,在具體的顯示內容中,通過顯示屏的數據引腳接收單片機傳送的具體數據,并按照具體顯示位置將數據顯示出來[15-16]。顯示函數運行時,首先使用SPI協議發送命令使顯示屏進行初始化,包括開啟屏幕、字體大小和位置確定。之后等待具體的顯示內容,收到顯示內容后,按照初始化的設定命令完成顯示。顯示流程圖如圖12所示。
3.5 遠程短信報警程序設計
GSM 模塊使用的是SIM900A 模塊,本次設計中STM32F103C8T6單片機為控制模塊,通過串口通信的方式發送AI指令來控制SIM900A模塊進行發短信的操作。GSM模塊程序流程圖如圖13所示。
4 系統調試
4.1 軟件調試
按照系統的整體功能,通過調用函數的方式,編寫邏輯控制代碼,全部代碼調試運行成功。
4.2 實物測試
使用電壓為5伏輸出電流為2A的適配器給系統供電。在手機模塊的卡槽中插入一張移動卡,然后再接通電源。通電后北斗模塊和手機模塊開始初始化操作。當手機模塊上的信號指示燈變成慢閃,且北斗模塊上的信號指示燈變亮,表示這兩個模塊都初始化成功。此時顯示屏上顯示當前的北斗模塊獲取的當前的經度和緯度信息,以及當前的溫度和煙霧濃度值。開機初始化成功后顯示界面如圖14所示。
接下來測試煙霧濃度過高報警。人為制造煙霧,并把煙霧對著煙霧傳感器的探頭,此時煙霧濃度升高,當煙霧濃度高于300PPM的時候,此時蜂鳴器開始響,同時管理員的手機上接收到一條報警短信。報警信息的內容如圖15所示。最后測試溫度過高報警。人為提高環境溫度,此時溫度升高,當溫度高于60度的時候,此時蜂鳴器開始報警,同時管理員的手機上接收到一條報警短信。報警信息的內容如圖16所示。
當管理員收到報警短信后,立即打開奧維互動地圖App(奧維互動地圖是由北京元生華網公司開發的跨平臺地圖瀏覽器,擁有強大的設計功能與地理信息展現技術,也可實現經緯度轉化為地點坐標,滿足人們的需求,因此可以選擇此軟件),選擇搜索輸入經緯度信息,如圖17所示:
輸入完成以后點擊確定,點擊地圖導航功能從我的位置到地圖中心點(火災發生地),點擊搜索,直接導航前往火災地進行救火。通過觀察奧維地圖App,地圖上顯示的經緯度與實際火災發生地的經緯度有一定的偏差,大概在15米左右,但這不完全是由定位模塊決定的,也有可能與地圖軟件本身的精確度有關,總體來說,該設計達到預期要求。中心點導航界面如圖18所示。
5 結論
基于北斗定位的森林火災報警系統在單片機和傳感器的共同作用下,實現了預期的溫度和煙霧濃度智能監測與顯示、火災發生地的實時定位和遠程報警功能。運行的結果可以明確地表明該設計從數據的智能采集到執行器件的自動控制均符合預期的目標,數據的采集過程中,數據穩定并準確,沒有發生錯誤,執行器件的控制中,執行器件穩定運行,沒有出現控制的邏輯錯誤。最終成功地實現了森林火災的遠程監控和報警功能。