衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32設(shè)計的森林火災(zāi)監(jiān)測系統(tǒng)

DS小龍哥-嵌入式技術(shù) ? 來源:DS小龍哥-嵌入式技術(shù) ? 作者:DS小龍哥-嵌入式技 ? 2025-01-09 11:25 ? 次閱讀

[TOC]

一、前言

1.1 項目介紹

【1】項目開發(fā)背景

森林火災(zāi)是全球范圍內(nèi)頻繁發(fā)生的自然災(zāi)害之一,不僅對生態(tài)環(huán)境造成嚴(yán)重破壞,還可能威脅到人類的生命財產(chǎn)安全。傳統(tǒng)的森林防火措施主要依賴人工巡邏和地面觀測站,這種方式效率低下,且在森林中難以實現(xiàn)全面覆蓋。隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,智能監(jiān)測系統(tǒng)逐漸成為預(yù)防森林火災(zāi)的有效手段。基于此背景,設(shè)計了一款基于STM32F103RCT6的森林火災(zāi)監(jiān)測系統(tǒng),通過現(xiàn)代傳感技術(shù)和無線通訊技術(shù)提高森林火災(zāi)預(yù)警的及時性和準(zhǔn)確性。

該系統(tǒng)集成了多種傳感器,包括用于檢測環(huán)境溫度和濕度的SHT30傳感器、能夠識別火焰的火光檢測傳感器以及用于監(jiān)測煙霧濃度的MQ2氣體傳感器。這些傳感器可以實時收集環(huán)境數(shù)據(jù),一旦檢測到異常情況如溫度驟升、煙霧濃度增加或出現(xiàn)火焰等,將立即啟動蜂鳴器發(fā)出警報,同時通過Air724UG-4G模塊將數(shù)據(jù)上傳至華為云IOT物聯(lián)網(wǎng)服務(wù)器。這一過程不僅實現(xiàn)了對森林火災(zāi)的快速響應(yīng),也為后續(xù)的救援工作提供了準(zhǔn)確的信息支持。

為了便于森林管理員無論身處何地都能及時接收到火災(zāi)報警信息,本項目還特別開發(fā)了適用于Android手機(jī)和平板電腦的應(yīng)用程序及Windows上位機(jī)軟件,用戶可以通過這些客戶端實時查看由監(jiān)測點上傳的數(shù)據(jù),了解各監(jiān)測區(qū)域的環(huán)境狀況。此外,考慮到森林地區(qū)的特殊地理條件,系統(tǒng)設(shè)計時充分考慮了能源供應(yīng)的問題,采用了太陽能充電方案,確保監(jiān)測系統(tǒng)能夠在遠(yuǎn)離電網(wǎng)的野外長期穩(wěn)定運行。

綜上所述,本項目構(gòu)建一個高效、可靠、易于管理的森林火災(zāi)監(jiān)測平臺,通過集成先進(jìn)的傳感技術(shù)和網(wǎng)絡(luò)通信技術(shù),為森林防火提供了一種新的解決方案,有助于提升森林防火工作的智能化水平,減少森林火災(zāi)造成的損失。

【2】設(shè)計實現(xiàn)的功能

(1) 環(huán)境溫濕度監(jiān)測 :通過SHT30傳感器實時檢測森林內(nèi)的環(huán)境溫度和濕度,并將數(shù)據(jù)發(fā)送給主控芯片STM32F103RCT6進(jìn)行處理。

(2) 火焰檢測 :使用火光檢測傳感器監(jiān)控森林區(qū)域內(nèi)是否有火焰出現(xiàn),一旦發(fā)現(xiàn)火焰,立即將信號傳遞給主控芯片,作為火災(zāi)預(yù)警的一部分。

(3) 煙霧濃度監(jiān)測 :利用MQ2氣體傳感器檢測空氣中的煙霧濃度,當(dāng)煙霧濃度超過預(yù)設(shè)閾值時,向主控芯片發(fā)送警報信號。

(4) 自動報警功能 :當(dāng)系統(tǒng)檢測到火焰或煙霧濃度超標(biāo)時,會自動激活有源蜂鳴器發(fā)出聲音警報,提醒現(xiàn)場人員注意安全并采取相應(yīng)措施。

(5) 數(shù)據(jù)遠(yuǎn)程傳輸 :通過Air724UG-4G模塊,采用MQTT協(xié)議將采集到的環(huán)境參數(shù)和報警信息上傳至華為云IOT物聯(lián)網(wǎng)服務(wù)器,實現(xiàn)數(shù)據(jù)的遠(yuǎn)程監(jiān)控和管理。

(6) 移動設(shè)備實時監(jiān)控 :開發(fā)了專門的Android手機(jī)APP和Windows上位機(jī)軟件,森林管理員可以通過這些客戶端實時查看監(jiān)測點上傳的數(shù)據(jù),包括溫度、濕度、煙霧濃度等信息,以及接收火災(zāi)報警通知。

(7) OLED顯示屏本地顯示 :在監(jiān)測站點安裝0.96寸SPI接口OLED顯示屏,用于實時顯示環(huán)境參數(shù)和系統(tǒng)狀態(tài),方便護(hù)林員現(xiàn)場檢查設(shè)備工作情況和傳感器讀數(shù)是否正常。

(8) 太陽能充電支持 :為了解決森林地區(qū)供電不便的問題,系統(tǒng)配備了太陽能充電裝置,確保即使在偏遠(yuǎn)無電源的情況下也能持續(xù)運行。

【3】項目硬件模塊組成

(1) 主控模塊 :選用STM32F103RCT6作為系統(tǒng)的主控芯片,負(fù)責(zé)協(xié)調(diào)各個傳感器的工作、處理數(shù)據(jù)、控制報警以及與4G模塊進(jìn)行數(shù)據(jù)交換。

(2) 環(huán)境溫濕度傳感器模塊 :采用SHT30數(shù)字溫濕度傳感器,用于精確測量環(huán)境中的溫度和濕度,并將數(shù)據(jù)傳輸給主控芯片進(jìn)行處理。

(3) 火焰檢測模塊 :使用火焰?zhèn)鞲衅鱽頇z測是否有明火出現(xiàn),一旦檢測到火焰,立即將信號反饋給主控芯片,作為火災(zāi)預(yù)警的重要依據(jù)。

(4) 煙霧濃度檢測模塊 :通過MQ2氣體傳感器監(jiān)測空氣中煙霧的濃度,當(dāng)煙霧濃度達(dá)到一定閾值時,觸發(fā)報警機(jī)制。

(5) 報警模塊 :采用高電平觸發(fā)的有源蜂鳴器,當(dāng)系統(tǒng)檢測到火災(zāi)風(fēng)險時,蜂鳴器將自動發(fā)出警報聲,提醒周邊人員注意安全。

(6) 數(shù)據(jù)傳輸模塊 :利用Air724UG-4G模塊,結(jié)合MQTT協(xié)議,將采集到的數(shù)據(jù)上傳至華為云IOT物聯(lián)網(wǎng)服務(wù)器,實現(xiàn)遠(yuǎn)程監(jiān)控和管理。

(7) 本地數(shù)據(jù)顯示模塊 :配備0.96寸SPI接口的OLED顯示屏,用于實時顯示環(huán)境參數(shù)(如溫度、濕度、煙霧濃度等)和系統(tǒng)狀態(tài),便于現(xiàn)場工作人員快速了解設(shè)備運行情況。

(8) 太陽能充電模塊 :設(shè)計了太陽能充電系統(tǒng),包括太陽能電池板、充電控制器和蓄電池,以解決森林內(nèi)無固定電源供應(yīng)的問題,保證監(jiān)測系統(tǒng)長時間穩(wěn)定運行。

(9) 外部電源模塊 :為了確保系統(tǒng)的可靠性,在太陽能充電模塊之外,還提供了5V 2A的外置電源供電選項,可以在需要時為系統(tǒng)提供電力支持。

【4】研究背景與意義

森林火災(zāi)是全球面臨的一大環(huán)境挑戰(zhàn),不僅會導(dǎo)致嚴(yán)重的生態(tài)破壞,還會造成巨大的經(jīng)濟(jì)損失和人員傷亡。傳統(tǒng)的森林防火措施多依賴于人工巡邏和定點監(jiān)測,這種模式效率低下,覆蓋范圍有限,難以及時發(fā)現(xiàn)和應(yīng)對突發(fā)火災(zāi)。近年來,隨著物聯(lián)網(wǎng)、大數(shù)據(jù)、云計算等技術(shù)的迅速發(fā)展,智能監(jiān)測系統(tǒng)開始應(yīng)用于森林防火領(lǐng)域,極大地提高了火災(zāi)預(yù)警的準(zhǔn)確性和響應(yīng)速度。基于此背景,本項目提出了一套基于STM32F103RCT6的森林火災(zāi)監(jiān)測系統(tǒng),旨在通過集成先進(jìn)的傳感器技術(shù)和無線通信技術(shù),構(gòu)建一個高效、可靠的火災(zāi)預(yù)警平臺。

本項目的設(shè)計實現(xiàn)了對森林環(huán)境中溫度、濕度、煙霧濃度和火焰等關(guān)鍵參數(shù)的實時監(jiān)測,并通過4G網(wǎng)絡(luò)將數(shù)據(jù)上傳至云端,利用華為云IOT平臺進(jìn)行數(shù)據(jù)分析和處理。當(dāng)監(jiān)測到異常情況時,系統(tǒng)能夠自動觸發(fā)警報,并通過移動應(yīng)用和上位機(jī)軟件將警報信息推送給森林管理員,確保他們能夠第一時間了解火災(zāi)情況并采取相應(yīng)的應(yīng)急措施。此外,系統(tǒng)還支持太陽能充電,解決了森林內(nèi)部署監(jiān)測設(shè)備時面臨的供電難題,保證了系統(tǒng)的長期穩(wěn)定運行。

研究的意義在于,本項目不僅為森林防火提供了一種新的解決方案,還促進(jìn)了物聯(lián)網(wǎng)技術(shù)在環(huán)境保護(hù)領(lǐng)域的應(yīng)用和發(fā)展。通過精準(zhǔn)監(jiān)測和及時預(yù)警,可以有效降低森林火災(zāi)的發(fā)生率,減少火災(zāi)造成的生態(tài)破壞和經(jīng)濟(jì)損失,保護(hù)人民生命財產(chǎn)安全。同時,該項目的成功實施也將為其他類似應(yīng)用場景提供參考,推動智慧林業(yè)的發(fā)展,助力實現(xiàn)可持續(xù)發(fā)展目標(biāo)。

1.2 設(shè)計思路

在設(shè)計基于STM32F103RCT6的森林火災(zāi)監(jiān)測系統(tǒng)時,首先明確了系統(tǒng)的主要目標(biāo):實現(xiàn)對森林環(huán)境中溫度、濕度、煙霧濃度和火焰的實時監(jiān)測,并能夠及時發(fā)出警報,同時將數(shù)據(jù)上傳至云端,以便森林管理員能夠遠(yuǎn)程監(jiān)控和管理。為了達(dá)成這一目標(biāo),在設(shè)計過程中遵循了以下幾個核心思路:

選擇高性能的主控芯片STM32F103RCT6作為系統(tǒng)的控制中心。STM32F103RCT6具有強(qiáng)大的處理能力和豐富的外設(shè)接口,能夠高效地處理來自多個傳感器的數(shù)據(jù),并支持復(fù)雜的算法運算,滿足系統(tǒng)對數(shù)據(jù)處理的高要求。此外,它還具備低功耗特性,適合長時間在野外運行。

選用了多種高精度傳感器來實現(xiàn)對環(huán)境參數(shù)的全面監(jiān)測。SHT30溫濕度傳感器能夠提供準(zhǔn)確的溫度和濕度數(shù)據(jù);火焰?zhèn)鞲衅骱蚆Q2煙霧傳感器則分別用于檢測火焰和煙霧濃度。這些傳感器的選擇確保了系統(tǒng)能夠及時捕捉到火災(zāi)的早期跡象,從而提前發(fā)出預(yù)警。

為了實現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸,采用了Air724UG-4G模塊。該模塊支持4G網(wǎng)絡(luò),能夠通過MQTT協(xié)議將采集到的數(shù)據(jù)上傳至華為云IOT物聯(lián)網(wǎng)服務(wù)器。這樣,森林管理員無論身處何地,都可以通過手機(jī)APP或Windows上位機(jī)軟件實時查看監(jiān)測數(shù)據(jù)和接收警報信息,大大提高了火災(zāi)響應(yīng)的速度和效率。

在用戶界面方面,設(shè)計了一個0.96寸的SPI接口OLED顯示屏,用于顯示本地采集的環(huán)境參數(shù)和系統(tǒng)狀態(tài)。這不僅方便了現(xiàn)場工作人員的日常維護(hù)和檢查,還能在沒有網(wǎng)絡(luò)連接的情況下提供重要的信息反饋。

考慮到森林地區(qū)的特殊環(huán)境,特別加入了太陽能充電功能。通過太陽能電池板將太陽能轉(zhuǎn)換為電能,并儲存在蓄電池中,為整個系統(tǒng)供電。這一設(shè)計不僅解決了偏遠(yuǎn)地區(qū)供電困難的問題,還使得系統(tǒng)更加環(huán)保和可持續(xù)。

為了確保系統(tǒng)的穩(wěn)定性和可靠性,在軟件設(shè)計中加入了多種故障檢測和自我恢復(fù)機(jī)制。例如,當(dāng)傳感器發(fā)生故障時,系統(tǒng)能夠自動切換到備用傳感器;當(dāng)網(wǎng)絡(luò)連接中斷時,系統(tǒng)會自動嘗試重新連接。這些措施有效提高了系統(tǒng)的魯棒性,確保其在復(fù)雜多變的自然環(huán)境中能夠長期穩(wěn)定運行。

本項目的設(shè)計思路圍繞著高效、可靠、易用的目標(biāo)展開,通過集成先進(jìn)的傳感技術(shù)、無線通信技術(shù)和太陽能供電技術(shù),構(gòu)建了一個完整的森林火災(zāi)監(jiān)測解決方案。這不僅有助于提高森林防火的智能化水平,也為生態(tài)環(huán)境保護(hù)提供了有力的技術(shù)支持。

1.3 系統(tǒng)功能總結(jié)

功能模塊描述
環(huán)境溫濕度監(jiān)測通過SHT30傳感器實時檢測森林內(nèi)的環(huán)境溫度和濕度,并將數(shù)據(jù)發(fā)送給主控芯片進(jìn)行處理。
火焰檢測使用火焰?zhèn)鞲衅鞅O(jiān)控森林區(qū)域內(nèi)是否有火焰出現(xiàn),一旦發(fā)現(xiàn)火焰,立即將信號傳遞給主控芯片。
煙霧濃度監(jiān)測利用MQ2氣體傳感器檢測空氣中的煙霧濃度,當(dāng)煙霧濃度超過預(yù)設(shè)閾值時,向主控芯片發(fā)送警報信號。
自動報警功能當(dāng)系統(tǒng)檢測到火焰或煙霧濃度超標(biāo)時,會自動激活有源蜂鳴器發(fā)出聲音警報,提醒現(xiàn)場人員注意安全并采取相應(yīng)措施。
數(shù)據(jù)遠(yuǎn)程傳輸通過Air724UG-4G模塊,采用MQTT協(xié)議將采集到的環(huán)境參數(shù)和報警信息上傳至華為云IOT物聯(lián)網(wǎng)服務(wù)器,實現(xiàn)數(shù)據(jù)的遠(yuǎn)程監(jiān)控和管理。
移動設(shè)備實時監(jiān)控開發(fā)了專門的Android手機(jī)APP和Windows上位機(jī)軟件,森林管理員可以通過這些客戶端實時查看監(jiān)測點上傳的數(shù)據(jù),包括溫度、濕度、煙霧濃度等信息,以及接收火災(zāi)報警通知。
OLED顯示屏本地顯示在監(jiān)測站點安裝0.96寸SPI接口OLED顯示屏,用于實時顯示環(huán)境參數(shù)和系統(tǒng)狀態(tài),方便護(hù)林員現(xiàn)場檢查設(shè)備工作情況和傳感器讀數(shù)是否正常。
太陽能充電支持配備太陽能充電系統(tǒng),包括太陽能電池板、充電控制器和蓄電池,以解決森林地區(qū)供電不便的問題,確保監(jiān)測系統(tǒng)在偏遠(yuǎn)無電源的情況下也能持續(xù)運行。
外部電源模塊提供5V 2A的外置電源供電選項,可以在需要時為系統(tǒng)提供電力支持,確保系統(tǒng)的可靠性。

1.4 開發(fā)工具的選擇

【1】設(shè)備端開發(fā)

STM32的編程語言選擇C語言,C語言執(zhí)行效率高,大學(xué)里主學(xué)的C語言,C語言編譯出來的可執(zhí)行文件最接近于機(jī)器碼,匯編語言執(zhí)行效率最高,但是匯編的移植性比較差,目前在一些操作系統(tǒng)內(nèi)核里還有一些低配的單片機(jī)使用的較多,平常的單片機(jī)編程還是以C語言為主。C語言的執(zhí)行效率僅次于匯編,語法理解簡單、代碼通用性強(qiáng),也支持跨平臺,在嵌入式底層、單片機(jī)編程里用的非常多,當(dāng)前的設(shè)計就是采用C語言開發(fā)。

開發(fā)工具選擇Keil,keil是一家世界領(lǐng)先的嵌入式微控制器軟件開發(fā)商,在2015年,keil被ARM公司收購。因為當(dāng)前芯片選擇的是STM32F103系列,STMF103是屬于ARM公司的芯片構(gòu)架、Cortex-M3內(nèi)核系列的芯片,所以使用Kile來開發(fā)STM32是有先天優(yōu)勢的,而keil在各大高校使用的也非常多,很多教科書里都是以keil來教學(xué),開發(fā)51單片機(jī)、STM32單片機(jī)等等。目前作為MCU芯片開發(fā)的軟件也不只是keil一家獨大,IAR在MCU微處理器開發(fā)領(lǐng)域里也使用的非常多,IAR擴(kuò)展性更強(qiáng),也支持STM32開發(fā),也支持其他芯片,比如:CC2530,51單片機(jī)的開發(fā)。從軟件的使用上來講,IAR比keil更加簡潔,功能相對少一些。如果之前使用過keil,而且使用頻率較多,已經(jīng)習(xí)慣再使用IAR是有點不適應(yīng)界面的。

image-20221210225339928

【2】上位機(jī)開發(fā)

上位機(jī)的開發(fā)選擇Qt框架,編程語言采用C++;Qt是一個1991年由Qt Company開發(fā)的跨平臺C++圖形用戶界面應(yīng)用程序開發(fā)框架。它既可以開發(fā)GUI程序,也可用于開發(fā)非GUI程序,比如控制臺工具和服務(wù)器。Qt是面向?qū)ο蟮目蚣埽褂锰厥獾拇a生成擴(kuò)展(稱為元對象編譯器(Meta Object Compiler, moc))以及一些宏,Qt很容易擴(kuò)展,并且允許真正地組件編程。Qt能輕松創(chuàng)建具有原生C++性能的連接設(shè)備、用戶界面(UI)和應(yīng)用程序。它功能強(qiáng)大且結(jié)構(gòu)緊湊,擁有直觀的工具和庫。

image-20230218001243591

image-20230218001219105

1.5 參考文獻(xiàn)

1. 1. 廈門大學(xué)航空航天學(xué)院2. 閩西職業(yè)技術(shù)學(xué)院信息工程學(xué)院.改進(jìn)TDM-LoRa低功耗森林火災(zāi)監(jiān)測預(yù)警系統(tǒng)[J].福州大學(xué)學(xué)報(自然科學(xué)版),2024. 
2. 武風(fēng)波,張會可,呂茜彤.森林防火監(jiān)測系統(tǒng)的設(shè)計與開發(fā)[J].現(xiàn)代電子技術(shù),2018. 
3. 楊春迪,陸娟,儲增幫等.基于STM32F103RBT6單片機(jī)的新型森林火災(zāi)監(jiān)測報警裝置研究[J].科技創(chuàng)新與生產(chǎn)力,2023. 
4. 曾旻,唐治東,張保磊.基于STM32控制電路及Atlas 200加速模塊的森林防火機(jī)器人集成應(yīng)用[J].中國儀器儀表,2023. 
5. 徐崇奇,解建國,畢佳琦等.基于STM32的智能火災(zāi)監(jiān)測及滅火系統(tǒng)設(shè)計[J].河南科技,2022. 
6. Wu Fengbo, L. Xitong et al. “Design and Development of Forest Fire Monitoring Terminal.” 2018 International Conference on Sensor Networks and Signal Processing (SNSP)(2018). 
7. 安徽三聯(lián)學(xué)院機(jī)器人工程學(xué)院.森林滅火輔助機(jī)器人設(shè)計[J].技術(shù)與市場,2021. 
8. 張會可.基于STM32的森林防火監(jiān)測終端的設(shè)計與開發(fā)[D].西安科技大學(xué),2017. 
9. Min Yu, Taoyun Zhou et al. “Design of Forest Security Defense System Based on Beidou-Positioning.” Journal of Physics: Conference Series(2021). 
10. 楊晨,祁晉東,謝鑫焱等.基于無線傳感網(wǎng)絡(luò)的智能森林火災(zāi)防控系統(tǒng)的設(shè)計[J].數(shù)字技術(shù)與應(yīng)用,2022. 
11. 秦鈺林,周若麟,張珂欣等.基于NB-IoT窄帶通信和多傳感器組網(wǎng)技術(shù)的森林火災(zāi)監(jiān)測預(yù)警系統(tǒng)[J].物聯(lián)網(wǎng)技術(shù),2020. 
12. 李春成,楊云,陳亮等.自供電低功耗森林火災(zāi)無線監(jiān)測系統(tǒng)[J].電子器件,2021. 
13. Rohan Arunkumar, Atul Kumar Dubey. “FireSense: Integrating Deep Learning with ESP32 Microcontrollers for Enhanced Forest Fire Surveillance.” 2024 IEEE 48th Annual Computers, Software, and Applications Conference (COMPSAC)(2024). 
14. 王洋.基于嵌入式的森林火災(zāi)監(jiān)測平臺設(shè)計與實現(xiàn)[D].大連交通大學(xué),2021. 
15. Ziliu Ye, Fuwen Su et al. “Intelligent Fire-fighting robot based on STM32.” 2019 Chinese Automation Congress (CAC)(2019). 
16. 蔡志偉,張偉光,高亮等.基于物聯(lián)網(wǎng)的森林環(huán)境智能監(jiān)測系統(tǒng)終端監(jiān)測節(jié)點的設(shè)計[J].哈爾濱師范大學(xué)自然科學(xué)學(xué)報,2019. 
17. 大連民族大學(xué)信息與通信工程學(xué)院.基于物聯(lián)網(wǎng)技術(shù)的智能山火報警系統(tǒng)[J].智能計算機(jī)與應(yīng)用,2024. 
18. 蔣鵬.基于STM32的無線遙控山區(qū)物資運輸車研究與設(shè)計[J].內(nèi)燃機(jī)與配件,2023. 
19. 王強(qiáng)強(qiáng),李玉麗.基于物聯(lián)網(wǎng)云平臺的火災(zāi)監(jiān)測報警系統(tǒng)設(shè)計 附視頻[J].技術(shù)與市場,2024. 
20. Tammana Viswanadha Muralidhar, Vytla Venkata Sai Sandeep et al. “An IoT based Real Time Forest Fire Detection & Alerting System Using LoRa Communication.” 2024 11th International Conference on Signal Processing and Integrated Networks (SPIN)(2024). 
21. Zhao Minhua. “A Wireless Fire Detection and Alarm System Based on the Information Fusion Technology.” Electronic Science and Technology(2012). 
22. 李光輝,趙軍,王智.基于無線傳感器網(wǎng)絡(luò)的森林火災(zāi)監(jiān)測預(yù)警系統(tǒng)[J].傳感技術(shù)學(xué)報,2006. 
23. 趙英,陳淑娟.基于多傳感器數(shù)據(jù)融合的火災(zāi)預(yù)警系統(tǒng)[J].現(xiàn)代電子技術(shù),2010. 
24. 劉燕燕,楊幫華,丁麗娜等.基于STM32的紅外火災(zāi)探測系統(tǒng)設(shè)計[J].計算機(jī)測量與控制,2013. 
25. L. Niu, Zhubing Hu. “Information Fusion Technology Based on Wireless Fire Detection and Alarm System.” Advanced Materials Research(2013). 
26. Yazhou Zhong, Fei Wu et al. “Design of smoke alarm system based on STM32.” International Journal of Engineering Research and(2017). 
27. 朱黎,全斐,王磊等.基于無線網(wǎng)絡(luò)的環(huán)境監(jiān)測系統(tǒng)[J].電子制作,2022. 
28. 曲惠澤,魏東輝.基于STM32的林間信息采集機(jī)器人[J].林業(yè)機(jī)械與木工設(shè)備,2019. 
29. Cao Bin-qia. “Design of data acquisition system based on STM32+FPGA.” Computer Engineering and Design(2014). 
30. K. Zhao. “Design of Distributed Smoke and Heat Detector Based on STM32.” Control and Instruments in Chemical Industry(2015).

二、部署華為云物聯(lián)網(wǎng)平臺

華為云官網(wǎng): https://www.huaweicloud.com/

打開官網(wǎng),搜索物聯(lián)網(wǎng),就能快速找到 設(shè)備接入IoTDA

image-20221204193824815

2.1 物聯(lián)網(wǎng)平臺介紹

華為云物聯(lián)網(wǎng)平臺(IoT 設(shè)備接入云服務(wù))提供海量設(shè)備的接入和管理能力,將物理設(shè)備聯(lián)接到云,支撐設(shè)備數(shù)據(jù)采集上云和云端下發(fā)命令給設(shè)備進(jìn)行遠(yuǎn)程控制,配合華為云其他產(chǎn)品,幫助快速構(gòu)筑物聯(lián)網(wǎng)解決方案。

使用物聯(lián)網(wǎng)平臺構(gòu)建一個完整的物聯(lián)網(wǎng)解決方案主要包括3部分:物聯(lián)網(wǎng)平臺、業(yè)務(wù)應(yīng)用和設(shè)備。

物聯(lián)網(wǎng)平臺作為連接業(yè)務(wù)應(yīng)用和設(shè)備的中間層,屏蔽了各種復(fù)雜的設(shè)備接口,實現(xiàn)設(shè)備的快速接入;同時提供強(qiáng)大的開放能力,支撐行業(yè)用戶構(gòu)建各種物聯(lián)網(wǎng)解決方案。

設(shè)備可以通過固網(wǎng)、2G/3G/4G/5G、NB-IoT、Wifi等多種網(wǎng)絡(luò)接入物聯(lián)網(wǎng)平臺,并使用LWM2M/CoAP、MQTT、HTTPS協(xié)議將業(yè)務(wù)數(shù)據(jù)上報到平臺,平臺也可以將控制命令下發(fā)給設(shè)備。

業(yè)務(wù)應(yīng)用通過調(diào)用物聯(lián)網(wǎng)平臺提供的API,實現(xiàn)設(shè)備數(shù)據(jù)采集、命令下發(fā)、設(shè)備管理等業(yè)務(wù)場景。

img

2.2 開通物聯(lián)網(wǎng)服務(wù)

地址: https://www.huaweicloud.com/product/iothub.html

image-20221204194233414

點擊立即創(chuàng)建

image-20240117134653452

正在創(chuàng)建標(biāo)準(zhǔn)版實例,需要等待片刻。

image-20240117134729401

創(chuàng)建完成之后,點擊實例名稱。 可以看到標(biāo)準(zhǔn)版實例的設(shè)備接入端口和地址。

image-20240425180759670

在上面也能看到 免費單元的限制。

image-20240425180817704

開通之后,點擊總覽,也能查看接入信息。 當(dāng)前設(shè)備準(zhǔn)備采用MQTT協(xié)議接入華為云平臺,這里可以看到MQTT協(xié)議的地址和端口號等信息。

image-20240425180845461

總結(jié):

端口號:   MQTT (1883)| MQTTS (8883)	
接入地址:ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com

**根據(jù)域名地址得到IP地址信息: **

打開Windows電腦的命令行控制臺終端,使用ping 命令。ping一下即可。

Microsoft Windows [版本 10.0.19045.4170]
(c) Microsoft Corporation。保留所有權(quán)利。

C:Users11266 >ping ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com

正在 Ping ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com [117.78.5.125] 具有 32 字節(jié)的數(shù)據(jù):
來自 117.78.5.125 的回復(fù): 字節(jié)=32 時間=35ms TTL=93
來自 117.78.5.125 的回復(fù): 字節(jié)=32 時間=36ms TTL=93
來自 117.78.5.125 的回復(fù): 字節(jié)=32 時間=36ms TTL=93
來自 117.78.5.125 的回復(fù): 字節(jié)=32 時間=39ms TTL=93

117.78.5.125 的 Ping 統(tǒng)計信息:
    數(shù)據(jù)包: 已發(fā)送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),
往返行程的估計時間(以毫秒為單位):
    最短 = 35ms,最長 = 39ms,平均 = 36ms

C:Users11266 >

MQTT協(xié)議接入端口號有兩個,1883是非加密端口,8883是證書加密端口,單片機(jī)無法加載證書,所以使用1883端口比較合適。 接下來的ESP8266就采用1883端口連接華為云物聯(lián)網(wǎng)平臺。

2.3 創(chuàng)建產(chǎn)品

(1)創(chuàng)建產(chǎn)品

image-20230109164412041

(2)填寫產(chǎn)品信息

根據(jù)自己產(chǎn)品名字填寫,下面的設(shè)備類型選擇自定義類型。

image-20240612094809689

(3)產(chǎn)品創(chuàng)建成功

image-20240612095148945

創(chuàng)建完成之后點擊查看詳情。

image-20240612095134263

(4)添加自定義模型

產(chǎn)品創(chuàng)建完成之后,點擊進(jìn)入產(chǎn)品詳情頁面,翻到最下面可以看到模型定義。

模型簡單來說: 就是存放設(shè)備上傳到云平臺的數(shù)據(jù)。

你可以根據(jù)自己的產(chǎn)品進(jìn)行創(chuàng)建。

比如:

煙霧可以叫  MQ2
溫度可以叫  Temperature
濕度可以叫  humidity
火焰可以叫  flame
其他的傳感器自己用單詞簡寫命名即可。 這就是你的單片機(jī)設(shè)備端上傳到服務(wù)器的數(shù)據(jù)名字。

先點擊自定義模型。

image-20240612095517900

再創(chuàng)建一個服務(wù)ID。

image-20240612095542749

接著點擊新增屬性。

image-20240612095648815

image-20240612095711898

2.4 添加設(shè)備

產(chǎn)品是屬于上層的抽象模型,接下來在產(chǎn)品模型下添加實際的設(shè)備。添加的設(shè)備最終需要與真實的設(shè)備關(guān)聯(lián)在一起,完成數(shù)據(jù)交互。

(1)注冊設(shè)備

image-20240425181935561

(2)根據(jù)自己的設(shè)備填寫

image-20240612100115167

(3)保存設(shè)備信息

創(chuàng)建完畢之后,點擊保存并關(guān)閉,得到創(chuàng)建的設(shè)備密匙信息。該信息在后續(xù)生成MQTT三元組的時候需要使用。

image-20240612100128061

(4)設(shè)備創(chuàng)建完成

image-20240612100147232

(5)設(shè)備詳情

image-20240612100202960

image-20240612100217236

2.5 MQTT協(xié)議主題訂閱與發(fā)布

(1)MQTT協(xié)議介紹

當(dāng)前的設(shè)備是采用MQTT協(xié)議與華為云平臺進(jìn)行通信。

MQTT是一個物聯(lián)網(wǎng)傳輸協(xié)議,它被設(shè)計用于輕量級的發(fā)布/訂閱式消息傳輸,旨在為低帶寬和不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中的物聯(lián)網(wǎng)設(shè)備提供可靠的網(wǎng)絡(luò)服務(wù)。MQTT是專門針對物聯(lián)網(wǎng)開發(fā)的輕量級傳輸協(xié)議。MQTT協(xié)議針對低帶寬網(wǎng)絡(luò),低計算能力的設(shè)備,做了特殊的優(yōu)化,使得其能適應(yīng)各種物聯(lián)網(wǎng)應(yīng)用場景。目前MQTT擁有各種平臺和設(shè)備上的客戶端,已經(jīng)形成了初步的生態(tài)系統(tǒng)。

MQTT是一種消息隊列協(xié)議,使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,解除應(yīng)用程序耦合,相對于其他協(xié)議,開發(fā)更簡單;MQTT協(xié)議是工作在TCP/IP協(xié)議上;由TCP/IP協(xié)議提供穩(wěn)定的網(wǎng)絡(luò)連接;所以,只要具備TCP協(xié)議棧的網(wǎng)絡(luò)設(shè)備都可以使用MQTT協(xié)議。 本次設(shè)備采用的ESP8266就具備TCP協(xié)議棧,能夠建立TCP連接,所以,配合STM32代碼里封裝的MQTT協(xié)議,就可以與華為云平臺完成通信。

華為云的MQTT協(xié)議接入幫助文檔在這里: https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

img

業(yè)務(wù)流程:

img

(2)華為云平臺MQTT協(xié)議使用限制

描述限制
支持的MQTT協(xié)議版本3.1.1
與標(biāo)準(zhǔn)MQTT協(xié)議的區(qū)別支持Qos 0和Qos 1支持Topic自定義不支持QoS2不支持will、retain msg
MQTTS支持的安全等級采用TCP通道基礎(chǔ) + TLS協(xié)議(最高TLSv1.3版本)
單帳號每秒最大MQTT連接請求數(shù)無限制
單個設(shè)備每分鐘支持的最大MQTT連接數(shù)1
單個MQTT連接每秒的吞吐量,即帶寬,包含直連設(shè)備和網(wǎng)關(guān)3KB/s
MQTT單個發(fā)布消息最大長度,超過此大小的發(fā)布請求將被直接拒絕1MB
MQTT連接心跳時間建議值心跳時間限定為30至1200秒,推薦設(shè)置為120秒
產(chǎn)品是否支持自定義Topic支持
消息發(fā)布與訂閱設(shè)備只能對自己的Topic進(jìn)行消息發(fā)布與訂閱
每個訂閱請求的最大訂閱數(shù)無限制

(3)主題訂閱格式

幫助文檔地址:https://support.huaweicloud.com/devg-iothub/iot_02_2200.html

image-20221207153310037

對于設(shè)備而言,一般會訂閱平臺下發(fā)消息給設(shè)備 這個主題。

設(shè)備想接收平臺下發(fā)的消息,就需要訂閱平臺下發(fā)消息給設(shè)備 的主題,訂閱后,平臺下發(fā)消息給設(shè)備,設(shè)備就會收到消息。

如果設(shè)備想要知道平臺下發(fā)的消息,需要訂閱上面圖片里標(biāo)注的主題。

以當(dāng)前設(shè)備為例,最終訂閱主題的格式如下:
$oc/devices/{device_id}/sys/messages/down
    
最終的格式:
$oc/devices/663cb18871d845632a0912e7_dev1/sys/messages/down

(4)主題發(fā)布格式

對于設(shè)備來說,主題發(fā)布表示向云平臺上傳數(shù)據(jù),將最新的傳感器數(shù)據(jù),設(shè)備狀態(tài)上傳到云平臺。

這個操作稱為:屬性上報。

幫助文檔地址:https://support.huaweicloud.com/usermanual-iothub/iot_06_v5_3010.html

image-20221207153637391

根據(jù)幫助文檔的介紹, 當(dāng)前設(shè)備發(fā)布主題,上報屬性的格式總結(jié)如下:

發(fā)布的主題格式:
$oc/devices/{device_id}/sys/properties/report
 
最終的格式:
$oc/devices/663cb18871d845632a0912e7_dev1/sys/properties/report
發(fā)布主題時,需要上傳數(shù)據(jù),這個數(shù)據(jù)格式是JSON格式。

上傳的JSON數(shù)據(jù)格式如下:

{
  "services": [
    {
      "service_id": < 填服務(wù)ID >,
      "properties": {
        "< 填屬性名稱1 >": < 填屬性值 >,
        "< 填屬性名稱2 >": < 填屬性值 >,
        ..........
      }
    }
  ]
}
根據(jù)JSON格式,一次可以上傳多個屬性字段。 這個JSON格式里的,服務(wù)ID,屬性字段名稱,屬性值類型,在前面創(chuàng)建產(chǎn)品的時候就已經(jīng)介紹了,不記得可以翻到前面去查看。

根據(jù)這個格式,組合一次上傳的屬性數(shù)據(jù):
{"services": [{"service_id": "stm32","properties":{"DHT11_T":30,"DHT11_H":10,"BH1750":1,"MQ135":0}}]}

2.6 MQTT三元組

MQTT協(xié)議登錄需要填用戶ID,設(shè)備ID,設(shè)備密碼等信息,就像平時登錄QQ,微信一樣要輸入賬號密碼才能登錄。MQTT協(xié)議登錄的這3個參數(shù),一般稱為MQTT三元組。

接下來介紹,華為云平臺的MQTT三元組參數(shù)如何得到。

(1)MQTT服務(wù)器地址

要登錄MQTT服務(wù)器,首先記得先知道服務(wù)器的地址是多少,端口是多少。

幫助文檔地址:https://console.huaweicloud.com/iotdm/?region=cn-north-4#/dm-portal/home

image-20240509193207359

MQTT協(xié)議的端口支持1883和8883,它們的區(qū)別是:8883 是加密端口更加安全。但是單片機(jī)上使用比較困難,所以當(dāng)前的設(shè)備是采用1883端口進(jìn)連接的。

根據(jù)上面的域名和端口號,得到下面的IP地址和端口號信息: 如果設(shè)備支持填寫域名可以直接填域名,不支持就直接填寫IP地址。 (IP地址就是域名解析得到的)

華為云的MQTT服務(wù)器地址:117.78.5.125
華為云的MQTT端口號:1883

如何得到IP地址?如何域名轉(zhuǎn)IP? 打開Windows的命令行輸入以下命令。

ping  ad635970a1.st1.iotda-device.cn-north-4.myhuaweicloud.com

image-20240425182610048

(2)生成MQTT三元組

華為云提供了一個在線工具,用來生成MQTT鑒權(quán)三元組: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/

打開這個工具,填入設(shè)備的信息(也就是剛才創(chuàng)建完設(shè)備之后保存的信息),點擊生成,就可以得到MQTT的登錄信息了。

下面是打開的頁面:

image-20240425183025893

填入設(shè)備的信息: (上面兩行就是設(shè)備創(chuàng)建完成之后保存得到的)

直接得到三元組信息。

image-20240509193310020

得到三元組之后,設(shè)備端通過MQTT協(xié)議登錄鑒權(quán)的時候,填入?yún)?shù)即可。

ClientId  663cb18871d845632a0912e7_dev1_0_0_2024050911
Username  663cb18871d845632a0912e7_dev1
Password  71b82deae83e80f04c4269b5bbce3b2fc7c13f610948fe210ce18650909ac237

2.7 模擬設(shè)備登錄測試

經(jīng)過上面的步驟介紹,已經(jīng)創(chuàng)建了產(chǎn)品,設(shè)備,數(shù)據(jù)模型,得到MQTT登錄信息。 接下來就用MQTT客戶端軟件模擬真實的設(shè)備來登錄平臺。測試與服務(wù)器通信是否正常。

(1)填入登錄信息

打開MQTT客戶端軟件,對號填入相關(guān)信息(就是上面的文本介紹)。然后,點擊登錄,訂閱主題,發(fā)布主題。

image-20240509193457358

(2)打開網(wǎng)頁查看

完成上面的操作之后,打開華為云網(wǎng)頁后臺,可以看到設(shè)備已經(jīng)在線了。

image-20240612100508790

點擊詳情頁面,可以看到上傳的數(shù)據(jù):

image-20240612100529581

到此,云平臺的部署已經(jīng)完成,設(shè)備已經(jīng)可以正常上傳數(shù)據(jù)了。

(3)MQTT登錄測試參數(shù)總結(jié)

MQTT服務(wù)器:  117.78.5.125
MQTT端口號:  183

//物聯(lián)網(wǎng)服務(wù)器的設(shè)備信息
#define MQTT_ClientID "663cb18871d845632a0912e7_dev1_0_0_2024050911"
#define MQTT_UserName "663cb18871d845632a0912e7_dev1"
#define MQTT_PassWord "71b82deae83e80f04c4269b5bbce3b2fc7c13f610948fe210ce18650909ac237"

//訂閱與發(fā)布的主題
#define SET_TOPIC  "$oc/devices/663cb18871d845632a0912e7_dev1/sys/messages/down"  //訂閱
#define POST_TOPIC "$oc/devices/663cb18871d845632a0912e7_dev1/sys/properties/report"  //發(fā)布


發(fā)布的數(shù)據(jù):
{"services": [{"service_id": "stm32","properties":{"DHT11_T":30,"DHT11_H":10,"BH1750":1,"MQ135":0}}]}

2.8 創(chuàng)建IAM賬戶

創(chuàng)建一個IAM賬戶,因為接下來開發(fā)上位機(jī),需要使用云平臺的API接口,這些接口都需要token進(jìn)行鑒權(quán)。簡單來說,就是身份的認(rèn)證。 調(diào)用接口獲取Token時,就需要填寫IAM賬號信息。所以,接下來演示一下過程。

地址: https://console.huaweicloud.com/iam/?region=cn-north-4#/iam/users

**【1】獲取項目憑證 ** 點擊左上角用戶名,選擇下拉菜單里的我的憑證

image-20240509193646253

image-20240509193701262

項目憑證:

28add376c01e4a61ac8b621c714bf459

【2】創(chuàng)建IAM用戶

鼠標(biāo)放在左上角頭像上,在下拉菜單里選擇統(tǒng)一身份認(rèn)證

image-20240509193729078

點擊左上角創(chuàng)建用戶

image-20240509193744287

image-20240314153208692

image-20240314153228359

image-20240314153258229

創(chuàng)建成功:

image-20240314153315444

【3】創(chuàng)建完成

image-20240509193828289

用戶信息如下:

主用戶名  l19504562721
IAM用戶  ds_abc
密碼     DS12345678

2.9 獲取影子數(shù)據(jù)

幫助文檔:https://support.huaweicloud.com/api-iothub/iot_06_v5_0079.html

設(shè)備影子介紹:

設(shè)備影子是一個用于存儲和檢索設(shè)備當(dāng)前狀態(tài)信息的JSON文檔。
每個設(shè)備有且只有一個設(shè)備影子,由設(shè)備ID唯一標(biāo)識
設(shè)備影子僅保存最近一次設(shè)備的上報數(shù)據(jù)和預(yù)期數(shù)據(jù)
無論該設(shè)備是否在線,都可以通過該影子獲取和設(shè)置設(shè)備的屬性

簡單來說:設(shè)備影子就是保存,設(shè)備最新上傳的一次數(shù)據(jù)。

設(shè)計的軟件里,如果想要獲取設(shè)備的最新狀態(tài)信息,就采用設(shè)備影子接口。

如果對接口不熟悉,可以先進(jìn)行在線調(diào)試:https://apiexplorer.developer.huaweicloud.com/apiexplorer/doc?product=IoTDA&api=ShowDeviceShadow

在線調(diào)試接口,可以請求影子接口,了解請求,與返回的數(shù)據(jù)格式。

調(diào)試完成看右下角的響應(yīng)體,就是返回的影子數(shù)據(jù)。

image-20240509194152229

設(shè)備影子接口返回的數(shù)據(jù)如下:

{
 "device_id": "663cb18871d845632a0912e7_dev1",
 "shadow": [
  {
   "service_id": "stm32",
   "desired": {
    "properties": null,
    "event_time": null
   },
   "reported": {
    "properties": {
     "DHT11_T": 18,
     "DHT11_H": 90,
     "BH1750": 38,
     "MQ135": 70
    },
    "event_time": "20240509T113448Z"
   },
   "version": 3
  }
 ]
}

調(diào)試成功之后,可以得到訪問影子數(shù)據(jù)的真實鏈接,接下來的代碼開發(fā)中,就采用Qt寫代碼訪問此鏈接,獲取影子數(shù)據(jù),完成上位機(jī)開發(fā)。

image-20240509194214716

鏈接如下:

https://ad635970a1.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/28add376c01e4a61ac8b621c714bf459/devices/663cb18871d845632a0912e7_dev1/shadow

三、上位機(jī)開發(fā)

為了方便查看設(shè)備上傳的數(shù)據(jù),接下來利用Qt開發(fā)一款A(yù)ndroid手機(jī)APP 和 Windows上位機(jī)。

使用華為云平臺提供的API接口獲取設(shè)備上傳的數(shù)據(jù),進(jìn)行可視化顯示,以及遠(yuǎn)程控制設(shè)備。

3.1 Qt開發(fā)環(huán)境安裝

Qt的中文官網(wǎng): https://www.qt.io/zh-cn/image-20221207160550486

image-20221207160606892

QT5.12.6的下載地址:https://download.qt.io/archive/qt/5.12/5.12.6

或者去網(wǎng)盤里下載:https://pan.quark.cn/s/145a9b3f7f53

打開下載鏈接后選擇下面的版本進(jìn)行下載:

qt-opensource-windows-x86-5.12.6.exe 13-Nov-2019 07:28 3.7G Details

軟件安裝時斷網(wǎng)安裝,否則會提示輸入賬戶。

安裝的時候,第一個復(fù)選框里勾選一個mingw 32編譯器即可,其他的不管默認(rèn)就行,直接點擊下一步繼續(xù)安裝。

image-20221203151742653

選擇MinGW 32-bit 編譯器: (一定要看清楚了)

image-20221203151750344

說明: 我這里只是介紹PC端,也就是Windows系統(tǒng)下的Qt環(huán)境搭建。 Android的開發(fā)環(huán)境比較麻煩,如果想學(xué)習(xí)Android開發(fā),想編譯Android程序的APP,需要自己去搭建Android環(huán)境。

也可以看下面這篇文章,不過這個文章是在Qt開發(fā)專欄里付費的,需要訂閱專欄才可以看。 如果不想付費看,也可以自行找其他教程,自己搭建好必須的環(huán)境就行了

Android環(huán)境搭建的博客鏈接: https://blog.csdn.net/xiaolong1126626497/article/details/117254453

3.2 新建上位機(jī)工程

前面2講解了需要用的API接口,接下來就使用Qt設(shè)計上位機(jī),設(shè)計界面,完成整體上位機(jī)的邏輯設(shè)計。

【1】新建工程

image-20240117144052547

【2】設(shè)置項目的名稱。

image-20240509195711965

【3】選擇編譯系統(tǒng)

image-20240117144239681

【4】選擇默認(rèn)繼承的類

image-20240117144302275

【5】選擇編譯器

image-20240314162137170

【6】點擊完成

image-20240117144354252

【7】工程創(chuàng)建完成

image-20230421094133333

3.3 設(shè)計UI界面與工程配置

【1】打開UI文件

image-20230421094815236

打開默認(rèn)的界面如下:

image-20240425194845233

【2】開始設(shè)計界面

根據(jù)自己需求設(shè)計界面。

3.5 編譯Windows上位機(jī)

點擊軟件左下角的綠色三角形按鈕進(jìn)行編譯運行。

image-20240509202031739

3.6 配置Android環(huán)境

如果想編譯Android手機(jī)APP,必須要先自己配置好自己的Android環(huán)境。(搭建環(huán)境的過程可以自行百度搜索學(xué)習(xí))

然后才可以進(jìn)行下面的步驟。

【1】選擇Android編譯器

image-20240425232651515

image-20240509202408776

【2】創(chuàng)建Android配置文件

image-20240117144604025

image-20240117144635052

image-20240117144652014

創(chuàng)建完成。

【3】配置Android圖標(biāo)與名稱

image-20240612100947190

【3】編譯Android上位機(jī)

Qt本身是跨平臺的,直接選擇Android的編譯器,就可以將程序編譯到Android平臺。

然后點擊構(gòu)建。

image-20240509202534407

成功之后,在目錄下可以看到生成的apk文件,也就是Android手機(jī)的安裝包,電腦端使用QQ發(fā)送給手機(jī)QQ,手機(jī)登錄QQ接收,就能直接安裝。

生成的apk的目錄在哪里呢? 編譯完成之后,在控制臺會輸出APK文件的路徑。

知道目錄在哪里之后,在Windows的文件資源管理器里,找到路徑,具體看下圖,找到生成的apk文件。

image-20240509202712295

D:/linux-share-dir/QT/build-app_Huawei_Eco_tracking-Android_for_arm64_v8a_Clang_Qt_5_12_6_for_Android_ARM64_v8a-Release/android-build//build/outputs/apk/debug/android-build-debug.apk

四、STM32代碼開發(fā)

當(dāng)前項目源碼已經(jīng)上傳到網(wǎng)盤:[https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink]

以下是基于STM32F103RCT6的“森林火災(zāi)監(jiān)測系統(tǒng)”的 main.c 的完整代碼示例。

#include "stm32f10x.h"
#include "sht30.h"        // 環(huán)境溫濕度傳感器庫
#include "mq2.h"          // 煙霧傳感器庫
#include "flame_sensor.h" // 火焰?zhèn)鞲衅鲙?/span>
#include "oled.h"         // OLED顯示屏庫
#include "buzzer.h"       // 蜂鳴器庫
#include "air724ug.h"     // 4G模塊通信庫
#include "delay.h"        // 延時函數(shù)庫
#include "mqtt.h"         // MQTT協(xié)議庫

// 全局變量
float temperature, humidity;
uint16_t smoke_concentration;
uint8_t flame_detected;
char data_buffer[50];

// 函數(shù)聲明
void System_Init(void);
void Read_Sensors(void);
void Display_Data(void);
void Check_Alarm(void);
void Upload_Data(void);

int main(void) {
    System_Init();  // 系統(tǒng)初始化
    
    while (1) {
        Read_Sensors();     // 讀取傳感器數(shù)據(jù)
        Display_Data();     // 在OLED上顯示數(shù)據(jù)
        Check_Alarm();      // 檢查報警條件
        Upload_Data();      // 上傳數(shù)據(jù)到云端
        
        Delay_ms(5000);     // 每隔5秒運行一次
    }
}

// 系統(tǒng)初始化
void System_Init(void) {
    Delay_Init();      // 初始化延時
    SHT30_Init();      // 初始化溫濕度傳感器
    MQ2_Init();        // 初始化煙霧傳感器
    Flame_Sensor_Init(); // 初始化火焰?zhèn)鞲衅?/span>
    OLED_Init();       // 初始化OLED顯示
    Buzzer_Init();     // 初始化蜂鳴器
    Air724UG_Init();   // 初始化4G模塊
    MQTT_Init();       // 初始化MQTT協(xié)議
}

// 讀取傳感器數(shù)據(jù)
void Read_Sensors(void) {
    // 讀取溫濕度
    SHT30_ReadData(&temperature, &humidity);
    
    // 讀取煙霧濃度
    smoke_concentration = MQ2_ReadData();
    
    // 讀取火焰?zhèn)鞲衅鳡顟B(tài)
    flame_detected = Flame_Sensor_Read();
}

// 在OLED顯示屏上顯示數(shù)據(jù)
void Display_Data(void) {
    OLED_Clear();
    OLED_ShowString(0, 0, "Temp:");
    OLED_ShowFloat(40, 0, temperature, 2, 1);
    OLED_ShowString(80, 0, "C");
    
    OLED_ShowString(0, 1, "Humidity:");
    OLED_ShowFloat(64, 1, humidity, 2, 1);
    OLED_ShowString(104, 1, "%");
    
    OLED_ShowString(0, 2, "Smoke:");
    OLED_ShowNum(48, 2, smoke_concentration, 4, 10);
    
    OLED_ShowString(0, 3, "Flame:");
    if (flame_detected) {
        OLED_ShowString(48, 3, "YES");
    } else {
        OLED_ShowString(48, 3, "NO");
    }
}

// 檢查報警條件
void Check_Alarm(void) {
    // 檢測到火焰或煙霧濃度超出閾值則報警
    if (flame_detected || smoke_concentration > 300) {
        Buzzer_On();
    } else {
        Buzzer_Off();
    }
}

// 上傳數(shù)據(jù)到云端
void Upload_Data(void) {
    // 將數(shù)據(jù)格式化為字符串
    snprintf(data_buffer, sizeof(data_buffer), 
             "{"temperature": %.1f, "humidity": %.1f, "smoke": %d, "flame": %d}", 
             temperature, humidity, smoke_concentration, flame_detected);
    
    // 使用MQTT協(xié)議上傳數(shù)據(jù)
    MQTT_Publish("forest_fire_monitor/data", data_buffer);
}

代碼說明

  1. System_Init() :初始化所有硬件模塊,包括傳感器、OLED顯示屏、蜂鳴器、4G模塊和MQTT協(xié)議。
  2. Read_Sensors() :讀取各傳感器數(shù)據(jù)。
  3. Display_Data() :將采集的數(shù)據(jù)在OLED顯示屏上顯示,方便現(xiàn)場查看。
  4. Check_Alarm() :檢測火災(zāi)報警條件,若檢測到火焰或煙霧濃度超出閾值,觸發(fā)蜂鳴器報警。
  5. Upload_Data() :通過4G模塊上傳數(shù)據(jù)到華為云物聯(lián)網(wǎng)平臺。數(shù)據(jù)格式化成JSON字符串并通過MQTT協(xié)議發(fā)布到云服務(wù)器的指定主題。

運行邏輯

系統(tǒng)每5秒循環(huán)一次,執(zhí)行數(shù)據(jù)采集、顯示、報警檢測和數(shù)據(jù)上傳。

五、總結(jié)

森林火災(zāi)是全球面臨的一大環(huán)境挑戰(zhàn),不僅導(dǎo)致嚴(yán)重的生態(tài)破壞,還會造成巨大的經(jīng)濟(jì)損失和人員傷亡。傳統(tǒng)的森林防火措施多依賴于人工巡邏和定點監(jiān)測,效率低下且覆蓋范圍有限。為此,本項目設(shè)計了一套基于STM32F103RCT6的森林火災(zāi)監(jiān)測系統(tǒng)。該系統(tǒng)集成了多種傳感器,包括SHT30溫濕度傳感器、火焰?zhèn)鞲衅骱蚆Q2煙霧傳感器,能夠?qū)崟r監(jiān)測森林環(huán)境中的溫度、濕度、煙霧濃度和火焰情況。當(dāng)檢測到異常情況時,系統(tǒng)會自動觸發(fā)蜂鳴器報警,并通過Air724UG-4G模塊將數(shù)據(jù)上傳至華為云IOT物聯(lián)網(wǎng)服務(wù)器。此外,系統(tǒng)還開發(fā)了專門的Android手機(jī)APP和Windows上位機(jī)軟件,森林管理員可以通過這些客戶端實時查看監(jiān)測數(shù)據(jù)和接收火災(zāi)報警信息。為了適應(yīng)森林地區(qū)的特殊環(huán)境,系統(tǒng)支持太陽能充電,確保長期穩(wěn)定運行。本項目旨在提高森林火災(zāi)預(yù)警的準(zhǔn)確性和響應(yīng)速度,減少火災(zāi)造成的損失,為森林防火提供了一種新的解決方案。

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • STM32
    +關(guān)注

    關(guān)注

    2272

    文章

    10923

    瀏覽量

    357547
  • 監(jiān)測系統(tǒng)

    關(guān)注

    8

    文章

    2756

    瀏覽量

    81529
收藏 人收藏

    評論

    相關(guān)推薦

    基于STM32設(shè)計的森林火災(zāi)預(yù)警系統(tǒng)(聯(lián)動控制+SIM800C+華為云IoT)

    這篇文章就采用華為云iot物聯(lián)網(wǎng)平臺快速搭建一個森林火災(zāi)預(yù)警聯(lián)動控制系統(tǒng)模型,模擬演示檢測到森林火災(zāi)之后,如何快速上報到云平臺,向關(guān)聯(lián)的指定服務(wù)器發(fā)送數(shù)據(jù)報告,并自動向抽水泵發(fā)送指令,打開開關(guān)抽水滅火。
    的頭像 發(fā)表于 07-11 16:34 ?1761次閱讀
    基于<b class='flag-5'>STM32</b>設(shè)計的<b class='flag-5'>森林火災(zāi)</b>預(yù)警<b class='flag-5'>系統(tǒng)</b>(聯(lián)動控制+SIM800C+華為云IoT)

    請問對監(jiān)控區(qū)域煙霧、溫度等環(huán)境數(shù)據(jù)的實時監(jiān)測的TMS320F28335森林火災(zāi)預(yù)警系統(tǒng)怎么設(shè)計?

    本帖最后由 一只耳朵怪 于 2018-5-22 14:40 編輯 該設(shè)計是一種森林火災(zāi)預(yù)警系統(tǒng),通過對監(jiān)控區(qū)域煙霧、溫度等環(huán)境數(shù)據(jù)的實時監(jiān)測,利用CAN總線方式傳送到監(jiān)控終端,實現(xiàn)區(qū)域監(jiān)控。
    發(fā)表于 05-22 08:43

    無線傳感器網(wǎng)絡(luò)在森林火災(zāi)監(jiān)測中的應(yīng)用

    無線傳感器網(wǎng)絡(luò)在森林火災(zāi)監(jiān)測中的應(yīng)用 該文把無線傳感器網(wǎng)絡(luò)應(yīng)用在森林火災(zāi)監(jiān)測系統(tǒng)中,詳細(xì)設(shè)計了基于射頻SoC 芯片nRF9E5、溫度傳感器
    發(fā)表于 02-22 11:35 ?38次下載

    基于Cortex_M3的森林火災(zāi)監(jiān)測WSN節(jié)點的設(shè)計

    基于Cortex_M3的森林火災(zāi)監(jiān)測WSN節(jié)點的設(shè)計
    發(fā)表于 09-28 17:21 ?6次下載
    基于Cortex_M3的<b class='flag-5'>森林火災(zāi)</b><b class='flag-5'>監(jiān)測</b>WSN節(jié)點的設(shè)計

    基于STM32F和ZigBee的森林火監(jiān)測系統(tǒng)設(shè)計

    森林在國民經(jīng)濟(jì)中占有重要地位,然而,森林火災(zāi)會給森林帶來嚴(yán)重危害。但是,人類在制服森林火災(zāi)上,卻依然尚未取得突破性的進(jìn)展,于是在火災(zāi)還在萌芽
    發(fā)表于 11-30 09:31 ?1197次閱讀
     基于<b class='flag-5'>STM32</b>F和ZigBee的<b class='flag-5'>森林火</b>情<b class='flag-5'>監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>設(shè)計

    基于支持向量機(jī)的森林火災(zāi)預(yù)測研究

    定位的延遲和掃描儀高昂的設(shè)備成本和維護(hù)成本,這些方案不能用來解決所有的情況。然而,研究表明氣象因素對森林火災(zāi)有重要的影響。因此,有不少的學(xué)者建立森林火災(zāi)預(yù)測系統(tǒng)并將氣象數(shù)據(jù)納入量化指標(biāo)體系。隨機(jī)計算機(jī)的迅速
    發(fā)表于 01-02 16:50 ?0次下載

    森林火災(zāi)實時監(jiān)測與預(yù)警系統(tǒng)詳解

    侵害,嚴(yán)重威脅和損害森林生態(tài)和人類生命財產(chǎn)安全。因此,研究森林火災(zāi)特征并提供相應(yīng)的防治與控制技術(shù),為其設(shè)計合理的火災(zāi)自動監(jiān)控報警系統(tǒng)及滅火
    發(fā)表于 06-03 15:45 ?1.5w次閱讀
    <b class='flag-5'>森林火災(zāi)</b>實時<b class='flag-5'>監(jiān)測</b>與預(yù)警<b class='flag-5'>系統(tǒng)</b>詳解

    基于物聯(lián)網(wǎng)的森林火災(zāi)探測系統(tǒng)

    森林火災(zāi)森林中常見的危害,對野生動物和環(huán)境造成很大危害。如果可以在森林地區(qū)部署一個強(qiáng)大的系統(tǒng)來檢測火災(zāi)并提醒消防當(dāng)局立即采取行動,則可以避
    發(fā)表于 07-28 17:09 ?2304次閱讀
    基于物聯(lián)網(wǎng)的<b class='flag-5'>森林火災(zāi)</b>探測<b class='flag-5'>系統(tǒng)</b>

    森林火災(zāi)探測系統(tǒng)的構(gòu)建

    在這個項目中,在 Arduino UNO 和 GSM Shield 的幫助下構(gòu)建了一個森林火災(zāi)探測系統(tǒng),用于 SMS 警報。
    發(fā)表于 12-02 15:59 ?1次下載

    基于Gboard Pro 800的森林火災(zāi)探測系統(tǒng)

    在這個項目中,在 Arduino UNO 和 GSM Shield 的幫助下構(gòu)建了一個森林火災(zāi)探測系統(tǒng),用于 SMS 警報。
    發(fā)表于 12-06 10:11 ?0次下載

    TinyML空中森林火災(zāi)探測

    電子發(fā)燒友網(wǎng)站提供《TinyML空中森林火災(zāi)探測.zip》資料免費下載
    發(fā)表于 02-09 11:06 ?0次下載
    TinyML空中<b class='flag-5'>森林火災(zāi)</b>探測

    地物光譜儀在森林火災(zāi)監(jiān)測中的應(yīng)用

    森林火災(zāi)是全球性的生態(tài)問題,對于人類和自然環(huán)境都構(gòu)成重大威脅,因此及時有效的火災(zāi)監(jiān)測和管理至關(guān)重要。本文將討論地物光譜儀在森林火災(zāi)監(jiān)測中的應(yīng)
    的頭像 發(fā)表于 07-24 16:16 ?569次閱讀
    地物光譜儀在<b class='flag-5'>森林火災(zāi)</b><b class='flag-5'>監(jiān)測</b>中的應(yīng)用

    應(yīng)用案例 | 基于STM32WL的森林火災(zāi)探測解決方案,可實現(xiàn)戶外運行15年

    應(yīng)用案例 | 基于STM32WL的森林火災(zāi)探測解決方案,可實現(xiàn)戶外運行15年
    的頭像 發(fā)表于 09-28 17:40 ?1091次閱讀
    應(yīng)用案例 | 基于<b class='flag-5'>STM32</b>WL的<b class='flag-5'>森林火災(zāi)</b>探測解決方案,可實現(xiàn)戶外運行15年

    基于ZigBee的森林火災(zāi)監(jiān)測系統(tǒng)設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于ZigBee的森林火災(zāi)監(jiān)測系統(tǒng)設(shè)計.pdf》資料免費下載
    發(fā)表于 10-23 09:07 ?4次下載
    基于ZigBee的<b class='flag-5'>森林火災(zāi)</b><b class='flag-5'>監(jiān)測</b><b class='flag-5'>系統(tǒng)</b>設(shè)計

    森林火災(zāi)智能監(jiān)測攝像機(jī):守護(hù)綠色的屏障

    在保護(hù)森林資源、預(yù)防森林火災(zāi)方面,科技力量發(fā)揮著越來越重要的作用。森林火災(zāi)智能監(jiān)測攝像機(jī)作為一雙智慧的“眼睛”,全天候守護(hù)著林區(qū)安全,成為林區(qū)安全管理的得力助手。
    的頭像 發(fā)表于 07-17 10:46 ?546次閱讀
    <b class='flag-5'>森林火災(zāi)</b>智能<b class='flag-5'>監(jiān)測</b>攝像機(jī):守護(hù)綠色的屏障
    新全讯网网址112| 有破解百家乐仪器| 百家乐官网珠盘路| 英伦国际| 送现金百家乐的玩法技巧和规则| 长江百家乐官网的玩法技巧和规则 | 辉南县| 大发888娱乐客户端真钱| 百家乐赌博详解| 百家乐官网扑克牌手机壳| 沈阳盛京棋牌下载| 大哥大百家乐官网的玩法技巧和规则 | 威尼斯人娱乐城官方地址| 百家乐的庄闲概率| 百家乐官网庄闲对冲| 南康市| bet365体育投注心得| 百家乐社区| 百家乐大转轮| 24山风水发几房| 百家乐官网桌颜色可定制| 恒和国际| 大发888掉线| 榆次百家乐的玩法技巧和规则| 百家乐庄闲客户端| 爱拼百家乐官网的玩法技巧和规则| 澳门百家乐官网职业赌客| 确山县| 娱乐城注册送58| 威尼斯人娱乐场积分| 粤港澳百家乐娱乐场| 百家乐四式正反路| 3U百家乐官网的玩法技巧和规则| 百家乐官网单机版游戏下载| 百家乐官网公式分析| 皇冠走地| bet365游戏| 大发888优惠代码 官网| 百家乐过滤| 大赢家百家乐的玩法技巧和规则 | 百家乐代理商博彩e族|