1.1 項目介紹
【1】開發(fā)背景
隨著社會的發(fā)展和技術(shù)的進(jìn)步,人們對居住環(huán)境的安全性和智能化水平提出了更高的要求。特別是在校園宿舍這樣的集體生活環(huán)境里,由于人員密集且流動性大,傳統(tǒng)的安防措施已經(jīng)難以滿足現(xiàn)代安全標(biāo)準(zhǔn)的需求。為了提高宿舍區(qū)的安全防范能力,減少安全隱患,本項目提出了一套基于STM32微控制器與NBIoT(窄帶物聯(lián)網(wǎng))通信技術(shù)相結(jié)合的宿舍安防控制系統(tǒng)。
該系統(tǒng)的設(shè)計理念是將物聯(lián)網(wǎng)技術(shù)應(yīng)用于日常生活中,通過集成多種傳感技術(shù)來實現(xiàn)對宿舍環(huán)境的全方位監(jiān)控,并能夠及時響應(yīng)各種異常情況,從而達(dá)到預(yù)防火災(zāi)、防盜、節(jié)能等多重目的。例如,在發(fā)生火災(zāi)初期,通過安裝于宿舍內(nèi)的煙霧及火焰傳感器可以迅速感知火情并發(fā)出警報;同時,系統(tǒng)還能監(jiān)測用電安全,當(dāng)檢測到線路過載或短路等危險狀況時,自動切斷電源以避免事故進(jìn)一步擴(kuò)大。此外,考慮到實際使用中的便利性,該系統(tǒng)還具備了遠(yuǎn)程操控功能,允許用戶通過智能手機應(yīng)用程序或是PC端管理軟件隨時隨地掌握家中狀態(tài),并執(zhí)行如開啟門鎖等操作。
選擇STM32作為主控芯片是因為它具有強大的處理能力和豐富的外設(shè)資源,非常適合用來構(gòu)建復(fù)雜而高效的嵌入式系統(tǒng)。搭配NBIoT模塊,則保證了即使在網(wǎng)絡(luò)信號較差的情況下也能保持穩(wěn)定可靠的無線連接,這對于確保重要信息能夠及時準(zhǔn)確地傳輸至云端至關(guān)重要。與此同時,利用華為云提供的物聯(lián)網(wǎng)平臺服務(wù),不僅簡化了后端架構(gòu)的設(shè)計工作量,而且為用戶提供了一個直觀易用的數(shù)據(jù)展示界面以及靈活多樣的交互方式。
本項目結(jié)合先進(jìn)的嵌入式技術(shù)和物聯(lián)網(wǎng)概念,打造一套集成了環(huán)境監(jiān)測、安全防護(hù)以及智能家居控制于一體的綜合性解決方案,旨在為用戶提供更加安心舒適的生活體驗。通過這樣一個智能化的安全管理系統(tǒng),不僅可以有效提升宿舍區(qū)域的整體安全性,同時也促進(jìn)了節(jié)能減排目標(biāo)的實現(xiàn),對于推動智慧城市建設(shè)具有積極意義。
框架圖:
原理圖:
【2】實現(xiàn)需求
當(dāng)前項目使用的相關(guān)軟件工具已經(jīng)上傳到網(wǎng)盤:
https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink
為了明確本項目的具體實現(xiàn)需求,以下按照功能模塊詳細(xì)列出各項需求:
(1) 火焰檢測與報警 :
- 配備火焰檢測傳感器,能夠快速響應(yīng)火焰存在。
- 當(dāng)檢測到火焰時,系統(tǒng)應(yīng)立即啟動蜂鳴器報警,同時將警報信息通過NBIoT模塊發(fā)送到云端。
- 在本地LCD顯示屏上顯示火焰警告信息。
(2) 煙霧檢測與報警 :
- 使用MQ2煙霧傳感器,實時監(jiān)測環(huán)境中的煙霧濃度。
- 如果煙霧濃度超過預(yù)設(shè)閾值,觸發(fā)蜂鳴器報警,并將警報信息上傳至云端。
- LCD顯示屏同步更新顯示煙霧警告信息。
(3) 門磁控制 :
- 實現(xiàn)本地按鍵開門功能(內(nèi)部開門的按鈕),按下指定按鍵后,通過STM32控制電磁鎖開啟。
- 開發(fā)手機APP和Windows電腦上位機軟件,支持用戶遠(yuǎn)程發(fā)送開門指令。
(4) 人體感應(yīng) :
- 安裝紅外熱釋電人體檢測傳感器,用于探測宿舍內(nèi)是否有人。
- 傳感器數(shù)據(jù)用于輔助判斷是否需要保持照明或其他設(shè)備的工作狀態(tài)。
- 檢測結(jié)果同樣上傳至云端,并可在LCD顯示屏上查看。
(5) 電力監(jiān)測與保護(hù) :
- 通過電力參數(shù)采集模塊持續(xù)監(jiān)測宿舍內(nèi)的電壓、電流、功率等電氣參數(shù)。
- 設(shè)定合理的電流和功率閾值,當(dāng)超過這些閾值時,系統(tǒng)應(yīng)自動切斷電源,并觸發(fā)蜂鳴器報警。
- 監(jiān)測數(shù)據(jù)定期上傳至云端,并在LCD顯示屏上顯示。
(6) 數(shù)據(jù)上云 :
- 采用NBIoT模塊和MQTT協(xié)議將采集到的所有數(shù)據(jù)上傳到華為云物聯(lián)網(wǎng)平臺。
- 確保數(shù)據(jù)傳輸?shù)陌踩院涂煽啃?,同時保證低功耗運行。
- 提供API接口,便于Android手機APP和Windows上位機獲取云端數(shù)據(jù)。
(7) 本地數(shù)據(jù)顯示 :
- 利用1.44寸LCD顯示屏,實時顯示當(dāng)前的環(huán)境狀態(tài),包括但不限于煙霧濃度、火焰檢測狀態(tài)、電力參數(shù)等。
(8) 用戶界面 :
- 開發(fā)基于Qt框架的Android手機APP和Windows上位機軟件,界面友好且易于操作。
- 用戶界面需包含數(shù)據(jù)展示、遠(yuǎn)程控制、歷史記錄查詢等功能。
- 確保用戶界面能夠適應(yīng)不同尺寸的屏幕,并提供良好的用戶體驗。
【3】項目硬件模塊組成
本項目的硬件模塊組成如下,每個模塊都根據(jù)其特定的功能進(jìn)行了詳細(xì)的描述:
(1) 主控芯片 - STM32F103RCT6 :作為整個系統(tǒng)的核心,STM32F103RCT6負(fù)責(zé)處理來自各個傳感器的數(shù)據(jù)輸入、執(zhí)行邏輯運算以及控制輸出設(shè)備。它擁有豐富的外設(shè)接口,能夠滿足與多種傳感器及執(zhí)行器的連接需求。
(2) 煙霧檢測 - MQ2傳感器 :MQ2是一種常用的氣體傳感器,特別適用于檢測液化氣、丁烷、丙烷、甲烷、酒精、氫氣、煙霧等可燃?xì)怏w。在本項目中,它被用來監(jiān)測宿舍環(huán)境中是否存在異常煙霧,一旦檢測到煙霧濃度超標(biāo),即刻向主控發(fā)送信號。
(3) 電力參數(shù)采集模塊 :通過RS485、UART接口與STM32相連,此模塊能夠精確測量宿舍內(nèi)電路的電壓、電流、功率等參數(shù)。這些數(shù)據(jù)不僅用于顯示,也用于判斷是否存在過載或其他潛在的電氣風(fēng)險。
(4) LCD顯示屏 - 1.44寸LCD :作為人機交互的重要組成部分,這款小型彩色LCD屏幕用于展示實時監(jiān)測的各項數(shù)據(jù),如溫度、濕度、煙霧濃度以及電力使用情況等信息,使用戶能夠直觀了解當(dāng)前狀態(tài)。
(5) 蜂鳴器 - 高電平觸發(fā)的有源蜂鳴器 :當(dāng)系統(tǒng)檢測到火災(zāi)、煙霧或其他緊急情況時,STM32將控制蜂鳴器發(fā)聲,起到警示作用。蜂鳴器直接由STM32的GPIO引腳驅(qū)動。
(6) NBIoT模塊 - BC26 :作為物聯(lián)網(wǎng)通信的關(guān)鍵部件,BC26模塊使得系統(tǒng)能夠通過移動運營商網(wǎng)絡(luò)將采集到的數(shù)據(jù)上傳至云端服務(wù)器。它支持低功耗廣域網(wǎng)(LPWAN)技術(shù),非常適合于遠(yuǎn)程監(jiān)控應(yīng)用。
(7) 火焰檢測傳感器 :專門設(shè)計用于探測火焰的存在,通常基于紅外光譜特性工作。當(dāng)檢測到火焰時,傳感器會向STM32發(fā)送信號,觸發(fā)警報流程。
(8) 人體感應(yīng) - 紅外熱釋電傳感器 :這種類型的傳感器可以感知人體散發(fā)出的熱量變化,用于判斷房間內(nèi)是否有人。它對于提高系統(tǒng)的智能化程度,比如自動調(diào)整照明亮度或空調(diào)溫度非常有用。
(9) 電磁鎖 - :作為門禁系統(tǒng)的一部分,電磁鎖由STM32控制,可通過本地按鍵、手機APP或電腦遠(yuǎn)程解鎖。它提供了物理層面的安全保障,確保只有授權(quán)人員才能進(jìn)入宿舍。
(10) 穩(wěn)壓電源 - 12V 2A :為保證整個系統(tǒng)穩(wěn)定運行,選用一款輸出穩(wěn)定的直流電源適配器,為所有電子組件提供必要的電力支持。考慮到系統(tǒng)的總功耗,2安培的額定輸出足夠應(yīng)對大多數(shù)應(yīng)用場景。
【4】設(shè)計意義
本項目設(shè)計的意義在于通過集成多種先進(jìn)技術(shù)和智能設(shè)備,構(gòu)建一個高效、可靠且用戶友好的宿舍安防控制系統(tǒng),從而顯著提升宿舍環(huán)境的安全性和居住質(zhì)量。隨著城市化進(jìn)程的加快和學(xué)生群體的不斷增長,校園宿舍的安全問題日益受到重視。傳統(tǒng)的安防措施往往依賴于人工巡檢和簡單的報警系統(tǒng),無法實現(xiàn)全天候、全方位的監(jiān)控,且響應(yīng)速度慢,難以及時有效地處理突發(fā)事件。因此,開發(fā)一套基于現(xiàn)代物聯(lián)網(wǎng)技術(shù)的宿舍安防控制系統(tǒng)顯得尤為重要。
系統(tǒng)通過引入火焰檢測、煙霧檢測以及人體感應(yīng)等多種傳感器,能夠?qū)崟r監(jiān)測宿舍內(nèi)外的各種潛在威脅。一旦發(fā)現(xiàn)火災(zāi)或其他緊急情況,系統(tǒng)能夠立即作出反應(yīng),通過蜂鳴器發(fā)出警報,并將警報信息上傳至云端,確保管理人員第一時間得到通知并采取相應(yīng)措施。這種即時響應(yīng)機制大大減少了災(zāi)害發(fā)生的可能性及其帶來的損失。
門磁控制系統(tǒng)結(jié)合了本地按鍵開門與遠(yuǎn)程控制兩種方式,不僅增強了宿舍入口的安全性,還提供了極大的便利性。用戶可以通過智能手機應(yīng)用程序或PC端軟件隨時隨地進(jìn)行訪問控制,無論是忘記帶鑰匙還是需要臨時授權(quán)他人進(jìn)入,都能夠輕松解決。這種方式不僅提高了效率,也增加了靈活性,讓宿舍管理變得更加現(xiàn)代化。
電力參數(shù)監(jiān)測功能的加入,使得系統(tǒng)能夠持續(xù)跟蹤宿舍內(nèi)的用電狀況。通過對電壓、電流、功率等關(guān)鍵指標(biāo)的監(jiān)控,系統(tǒng)能夠在檢測到異常情況時及時切斷電源,防止電氣火災(zāi)的發(fā)生。這不僅保障了學(xué)生的生命財產(chǎn)安全,也有助于促進(jìn)節(jié)能減排,符合可持續(xù)發(fā)展的理念。
數(shù)據(jù)上云是本項目另一個重要的特點。通過NBIoT模塊將采集的數(shù)據(jù)上傳至華為云物聯(lián)網(wǎng)平臺,不僅實現(xiàn)了數(shù)據(jù)的集中管理和分析,也為用戶提供了一個便捷的遠(yuǎn)程查看和控制平臺。用戶可以在任何地方通過手機或電腦訪問系統(tǒng),查看最新的監(jiān)測數(shù)據(jù),并進(jìn)行相應(yīng)的操作。這種透明化的管理模式,既增強了用戶的參與感,也提升了整體管理效率。
通過本地LCD顯示屏的實時數(shù)據(jù)顯示,以及基于Qt開發(fā)的用戶界面,系統(tǒng)提供了直觀的操作體驗。用戶可以輕松獲取所需信息,并進(jìn)行簡單有效的交互。這樣的人機交互設(shè)計考慮到了用戶的實際需求,使得高科技產(chǎn)品變得更加親民易用。
綜上所述,本項目不僅在技術(shù)層面上實現(xiàn)了對宿舍環(huán)境的全面監(jiān)測與智能控制,更是在實際應(yīng)用中為學(xué)生創(chuàng)造了一個更加安全、便捷和舒適的居住環(huán)境。它代表了未來智能家居的一個發(fā)展方向,對于推動校園安全管理現(xiàn)代化、提升學(xué)生生活質(zhì)量具有重要意義。
【5】國內(nèi)外研究現(xiàn)狀
在中國,隨著智慧校園和智慧城市概念的推廣,宿舍安防控制系統(tǒng)的研究與應(yīng)用逐漸增多。北京航空航天大學(xué)曾推出了一款基于物聯(lián)網(wǎng)技術(shù)的宿舍安全管理系統(tǒng),該系統(tǒng)不僅能夠監(jiān)測宿舍內(nèi)的溫濕度、煙霧、一氧化碳等環(huán)境參數(shù),還可以通過智能門鎖實現(xiàn)對進(jìn)出人員的身份驗證。這套系統(tǒng)通過集成攝像頭和人臉識別技術(shù),進(jìn)一步增強了宿舍的安全性。此外,該系統(tǒng)還支持通過手機APP遠(yuǎn)程控制門鎖、查看宿舍內(nèi)環(huán)境數(shù)據(jù)以及接收警報信息,極大地方便了學(xué)生的生活。北京航空航天大學(xué)的這項研究展示了物聯(lián)網(wǎng)技術(shù)在提升宿舍安全性方面的巨大潛力。
在國外,類似的智能安防解決方案也在不斷發(fā)展。美國的一些高校,如麻省理工學(xué)院(MIT),已經(jīng)在宿舍中應(yīng)用了先進(jìn)的安防技術(shù)。MIT的宿舍區(qū)采用了多種智能傳感器和監(jiān)控設(shè)備,如運動探測器、門窗傳感器以及智能煙霧報警器。這些設(shè)備通過無線網(wǎng)絡(luò)連接到中央管理系統(tǒng),一旦檢測到異常情況,系統(tǒng)會自動向相關(guān)人員發(fā)送警報。此外,MIT還開發(fā)了一款名為“SafeWalk”的應(yīng)用程序,允許學(xué)生在夜間步行回宿舍時請求護(hù)送服務(wù),進(jìn)一步提高了校園的安全水平。
歐洲方面,德國的亞琛工業(yè)大學(xué)(RWTH Aachen University)實施了一個名為“Smart Campus”的項目,其中包含了宿舍安防系統(tǒng)的改進(jìn)。該項目利用了LoRaWAN(低功耗廣域網(wǎng)絡(luò))技術(shù)來連接分布在宿舍區(qū)的各種傳感器,包括門窗傳感器、水浸傳感器以及溫度濕度傳感器等。通過這些傳感器收集的數(shù)據(jù),系統(tǒng)能夠?qū)崟r監(jiān)測宿舍的安全狀況,并通過手機應(yīng)用程序向住戶發(fā)送警報。此外,亞琛工業(yè)大學(xué)還在研究如何利用機器學(xué)習(xí)算法來優(yōu)化警報系統(tǒng)的性能,減少誤報率,提高準(zhǔn)確性。
新加坡國立大學(xué)(NUS)也致力于通過技術(shù)創(chuàng)新來提高宿舍區(qū)的安全性。該校部署了一套結(jié)合了視頻監(jiān)控、面部識別技術(shù)和物聯(lián)網(wǎng)傳感器的綜合安防系統(tǒng)。這套系統(tǒng)不僅可以監(jiān)控宿舍區(qū)內(nèi)的異?;顒?,還能通過面部識別技術(shù)來識別進(jìn)出宿舍的人員身份,從而確保只有授權(quán)的人員才能進(jìn)入宿舍。同時,NUS還利用大數(shù)據(jù)分析來優(yōu)化宿舍區(qū)的安全管理策略,通過對大量數(shù)據(jù)的分析,識別潛在的安全隱患,并提前采取預(yù)防措施。
這些國內(nèi)外的實際案例表明,宿舍安防控制系統(tǒng)的研究正處于快速發(fā)展階段,新技術(shù)的應(yīng)用不僅提高了宿舍的安全水平,也大大提升了居住者的舒適度和便利性。隨著技術(shù)的不斷進(jìn)步,未來的宿舍安防系統(tǒng)將更加智能化、個性化,更好地服務(wù)于校園生活。
【6】摘要
本項目設(shè)計了一個基于STM32微控制器和NB-IoT通信技術(shù)的宿舍安防控制系統(tǒng)。系統(tǒng)集成了多種安防功能,包括火焰檢測、煙霧檢測、門磁控制、人體感應(yīng)、電氣監(jiān)測等。火焰和煙霧檢測通過相應(yīng)的傳感器實現(xiàn),一旦檢測到異常,系統(tǒng)會觸發(fā)蜂鳴器報警以提醒用戶。門磁控制功能允許用戶通過本地按鍵、手機APP和Windows電腦上位機遠(yuǎn)程控制門鎖的開啟與關(guān)閉。人體感應(yīng)功能可檢測宿舍內(nèi)是否有人員存在,用于防止盜竊或異常情況發(fā)生。
系統(tǒng)還具有電氣監(jiān)測功能,能夠?qū)崟r監(jiān)測直流電與單相交流電的電壓、電流與功率,并在電流或功率超出設(shè)定閾值時,通過蜂鳴器報警并自動切斷電源,確保用電安全。所有采集的數(shù)據(jù)通過NB-IoT模塊和MQTT協(xié)議上傳至華為云物聯(lián)網(wǎng)平臺,用戶可通過Android手機APP遠(yuǎn)程查看數(shù)據(jù)和控制設(shè)備。數(shù)據(jù)的本地顯示則通過1.44寸LCD屏完成,方便用戶實時獲取各項監(jiān)測信息。
本系統(tǒng)不僅具備本地和遠(yuǎn)程控制功能,還通過云平臺實現(xiàn)了數(shù)據(jù)的實時監(jiān)控和報警功能,增強了宿舍的安全性。該系統(tǒng)采用STM32F103RCT6作為主控芯片,結(jié)合MQ2、火焰檢測、人體感應(yīng)等傳感器,具有較高的集成度和實用性。
關(guān)鍵字
STM32, NB-IoT, 宿舍安防, 火焰檢測, 煙霧檢測, 門磁控制, 人體感應(yīng), 電氣監(jiān)測, 數(shù)據(jù)上云, MQTT, 華為云物聯(lián)網(wǎng), LCD顯示, 無線通信, 遠(yuǎn)程控制, 安全報警
1.2 系統(tǒng)總體設(shè)計
【1】系統(tǒng)功能需求分析
系統(tǒng)功能需求分析是項目規(guī)劃階段的重要組成部分,它明確了系統(tǒng)需要實現(xiàn)的具體功能,確保開發(fā)能夠準(zhǔn)確理解并滿足用戶的需求。對于基于STM32和NBIoT設(shè)計的宿舍安防控制系統(tǒng),以下是對其功能需求的詳細(xì)分析:
系統(tǒng)需配備高靈敏度的火焰檢測傳感器和煙霧傳感器,如MQ-2煙霧傳感器。這些傳感器應(yīng)能夠連續(xù)監(jiān)測宿舍環(huán)境,一旦檢測到火焰或異常煙霧濃度,系統(tǒng)應(yīng)當(dāng)立即觸發(fā)蜂鳴器發(fā)出警報,并通過NBIoT模塊將警報信息發(fā)送到云端。同時,警報信息也應(yīng)在本地LCD顯示屏上顯示,以便宿舍內(nèi)人員能夠迅速察覺并采取行動?;鹧媾c煙霧檢測是宿舍安防的基礎(chǔ),對于早期發(fā)現(xiàn)火災(zāi)隱患至關(guān)重要。
系統(tǒng)需要支持多種方式的門鎖控制,包括本地按鍵開門、手機APP遠(yuǎn)程開門以及通過Windows電腦上的上位機軟件遠(yuǎn)程控制。本地按鍵開門適用于日常出入,而遠(yuǎn)程開門則為特殊情況下的應(yīng)急處理提供了便利。電磁鎖應(yīng)由STM32控制,確保只有授權(quán)用戶才能通過合法途徑進(jìn)入宿舍。此外,每次開門動作都應(yīng)記錄下來并通過NBIoT模塊上傳至云端,以備后續(xù)審查和審計之用。
系統(tǒng)需集成紅外熱釋電人體感應(yīng)傳感器,用于檢測宿舍內(nèi)是否有人。當(dāng)檢測到有人時,系統(tǒng)可以自動調(diào)節(jié)照明和其他電器設(shè)備的狀態(tài),以節(jié)約能源。此外,人體感應(yīng)數(shù)據(jù)也可用于輔助判斷宿舍內(nèi)的安全狀態(tài),如在無人狀態(tài)下檢測到異常移動,系統(tǒng)應(yīng)立即發(fā)出警報并通知相關(guān)人員。人體感應(yīng)功能不僅提高了系統(tǒng)的智能化程度,也增強了安全性。
系統(tǒng)應(yīng)配置電力參數(shù)采集模塊,實時監(jiān)測宿舍內(nèi)的電壓、電流、功率等電氣參數(shù)。系統(tǒng)需設(shè)定合理的電流和功率閾值,一旦超過這些閾值,系統(tǒng)應(yīng)自動切斷電源,以防止電氣故障導(dǎo)致的火災(zāi)或其他安全事故。同時,電力監(jiān)測數(shù)據(jù)應(yīng)通過LCD顯示屏實時顯示,并通過NBIoT模塊定期上傳至云端,以便管理者進(jìn)行數(shù)據(jù)分析和趨勢預(yù)測。
通過NBIoT模塊和MQTT協(xié)議,系統(tǒng)需將所有收集到的數(shù)據(jù)上傳至華為云物聯(lián)網(wǎng)平臺。這包括火焰和煙霧警報、門鎖操作記錄、人體感應(yīng)數(shù)據(jù)以及電力參數(shù)等。數(shù)據(jù)上云后,可以通過Android手機APP和Windows電腦上的上位機軟件進(jìn)行遠(yuǎn)程查看。用戶可以隨時隨地監(jiān)控宿舍的安全狀況,并進(jìn)行遠(yuǎn)程控制,如遠(yuǎn)程開門等。云端數(shù)據(jù)存儲還便于進(jìn)行長期的數(shù)據(jù)分析和管理。
系統(tǒng)應(yīng)配備1.44寸LCD顯示屏,用于顯示實時的環(huán)境監(jiān)測數(shù)據(jù)和系統(tǒng)狀態(tài)。顯示屏應(yīng)清晰易讀,能夠顯示火焰檢測狀態(tài)、煙霧濃度、電力參數(shù)等關(guān)鍵信息。此外,顯示屏還應(yīng)顯示基本的操作指南和當(dāng)前設(shè)置狀態(tài),以方便用戶理解和操作。
系統(tǒng)設(shè)計需充分考慮穩(wěn)定性和安全性。硬件方面,應(yīng)選用可靠耐用的組件,并確保電源穩(wěn)定。軟件方面,程序應(yīng)具備良好的錯誤處理機制和數(shù)據(jù)加密功能,以保護(hù)用戶隱私和系統(tǒng)安全。系統(tǒng)還應(yīng)支持掉電恢復(fù)功能,確保在電力中斷后能夠恢復(fù)正常工作。
通過上述功能需求的實現(xiàn),該宿舍安防控制系統(tǒng)將能夠提供全面的安全防護(hù),同時為用戶提供便捷的遠(yuǎn)程控制體驗。系統(tǒng)不僅提升了宿舍的安全性,還促進(jìn)了能源的有效利用,體現(xiàn)了智能化管理的優(yōu)勢。
【2】系統(tǒng)總體方案設(shè)計
系統(tǒng)總體方案設(shè)計基于STM32微控制器和NBIoT通信技術(shù),旨在創(chuàng)建一個高度集成、智能化的宿舍安防控制系統(tǒng)。該系統(tǒng)集成了火焰檢測、煙霧檢測、門磁控制、人體感應(yīng)、電力監(jiān)測與保護(hù)以及數(shù)據(jù)上云等多項功能,確保宿舍環(huán)境的安全性、便捷性和智能化管理。核心組件包括STM32F103RCT6微控制器、MQ2煙霧傳感器、火焰檢測傳感器、紅外熱釋電人體感應(yīng)傳感器、電力參數(shù)采集模塊、蜂鳴器、NBIoT模塊BC26、5V電磁鎖、1.44寸LCD顯示屏以及一個5V 2A的穩(wěn)壓電源。
系統(tǒng)架構(gòu)分為三個主要部分:數(shù)據(jù)采集與處理、本地控制與顯示、遠(yuǎn)程監(jiān)控與管理。在數(shù)據(jù)采集與處理部分,STM32F103RCT6微控制器作為系統(tǒng)的大腦,負(fù)責(zé)接收來自各類傳感器的數(shù)據(jù),并進(jìn)行初步處理。火焰檢測傳感器和煙霧傳感器分別用于監(jiān)測火焰和煙霧,一旦檢測到異常,立即觸發(fā)蜂鳴器報警,并通過NBIoT模塊將警報信息上傳至云端。電力參數(shù)采集模塊通過串口與STM32通信,實時監(jiān)測宿舍內(nèi)的電壓、電流、功率等參數(shù),若超出預(yù)設(shè)的安全閾值,系統(tǒng)將自動切斷電源并發(fā)出警報。此外,紅外熱釋電人體感應(yīng)傳感器用于檢測宿舍內(nèi)是否有人存在,輔助判斷安全狀況并優(yōu)化能源使用。
在本地控制與顯示方面,系統(tǒng)通過1.44寸LCD顯示屏實時顯示各類傳感器的監(jiān)測數(shù)據(jù)及系統(tǒng)狀態(tài)。用戶可以通過本地按鍵控制門鎖開啟,同時,LCD顯示屏還提供了系統(tǒng)操作指南和當(dāng)前設(shè)置狀態(tài),增強了用戶的交互體驗。蜂鳴器作為報警裝置,會在檢測到異常情況時發(fā)出聲音警報,確保及時引起注意。門鎖采用5V電磁鎖,支持本地按鍵、手機APP以及Windows上位機軟件遠(yuǎn)程控制,確保了宿舍入口的安全性和便利性。
遠(yuǎn)程監(jiān)控與管理部分是通過NBIoT模塊BC26實現(xiàn)的。該模塊利用NB-IoT網(wǎng)絡(luò)將采集到的數(shù)據(jù)上傳至華為云物聯(lián)網(wǎng)平臺,實現(xiàn)了數(shù)據(jù)的遠(yuǎn)程存儲和管理。借助于華為云提供的服務(wù),用戶可以通過Android手機APP或Windows電腦上的上位機軟件隨時查看宿舍的實時狀態(tài),并執(zhí)行遠(yuǎn)程控制命令,如遠(yuǎn)程開門等。數(shù)據(jù)上傳至云端后,還支持?jǐn)?shù)據(jù)分析和歷史記錄查詢,為管理者提供了決策支持。
軟件開發(fā)方面,STM32的固件采用C語言編寫,利用Keil MDK開發(fā)環(huán)境進(jìn)行編譯和調(diào)試。固件代碼實現(xiàn)了傳感器數(shù)據(jù)采集、處理、報警邏輯以及與NBIoT模塊的通信。手機APP和Windows上位機軟件則基于Qt框架開發(fā),使用C++語言編寫,提供了直觀的用戶界面,支持?jǐn)?shù)據(jù)查看、遠(yuǎn)程控制以及系統(tǒng)配置等功能。通過這些軟件的支持,系統(tǒng)不僅能夠?qū)崿F(xiàn)基本的安全監(jiān)測和控制功能,還能提供豐富的用戶體驗。
綜上所述,本系統(tǒng)的總體設(shè)計方案綜合了先進(jìn)的傳感器技術(shù)、微控制器處理能力、NBIoT通信技術(shù)以及云端服務(wù),形成了一套完整且高效的宿舍安防解決方案。該方案不僅提高了宿舍的安全防護(hù)水平,還增強了用戶的便捷性和舒適度,是現(xiàn)代智慧校園建設(shè)的重要組成部分。
【3】系統(tǒng)工作原理
系統(tǒng)的工作原理基于STM32微控制器為核心,結(jié)合多種傳感器和執(zhí)行器,通過NBIoT通信技術(shù)實現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸和云端管理。整個系統(tǒng)的設(shè)計提供一個全面的宿舍安防解決方案,確保居住環(huán)境的安全性和便利性。
系統(tǒng)通過各類傳感器對宿舍環(huán)境進(jìn)行持續(xù)監(jiān)測。火焰檢測傳感器和煙霧傳感器(如MQ-2)分別用于檢測火焰和煙霧的存在。這些傳感器將環(huán)境中的物理變化轉(zhuǎn)化為電信號,然后傳遞給STM32微控制器。一旦檢測到火焰或煙霧濃度超過預(yù)設(shè)閾值,STM32會立即觸發(fā)蜂鳴器發(fā)出警報,提醒宿舍內(nèi)的人員注意潛在的火災(zāi)風(fēng)險。同時,系統(tǒng)會通過NBIoT模塊將警報信息發(fā)送到華為云物聯(lián)網(wǎng)平臺,以便遠(yuǎn)程監(jiān)控和快速響應(yīng)。
對于門磁控制,系統(tǒng)配備了5V電磁鎖,支持多種開門方式。用戶可以通過宿舍內(nèi)的本地按鍵手動開啟門鎖,也可以通過手機APP或Windows電腦上的上位機軟件發(fā)送遠(yuǎn)程開門指令。這些指令通過NBIoT模塊傳輸?shù)絊TM32,由微控制器解析后控制電磁鎖的動作。每次門鎖操作都會記錄下來,并通過NBIoT模塊上傳至云端,便于后續(xù)的數(shù)據(jù)分析和安全審計。
人體感應(yīng)功能由紅外熱釋電傳感器實現(xiàn)。該傳感器能夠檢測宿舍內(nèi)是否有人存在,并將信號發(fā)送給STM32。這不僅有助于判斷宿舍內(nèi)是否有未經(jīng)授權(quán)的闖入者,還可以根據(jù)檢測結(jié)果自動調(diào)整宿舍內(nèi)的照明和其他電器設(shè)備的狀態(tài),以節(jié)省能源。人體感應(yīng)數(shù)據(jù)同樣會被記錄并上傳至云端,以供進(jìn)一步分析和使用。
電力監(jiān)測是系統(tǒng)的一項重要功能。通過電力參數(shù)采集模塊,系統(tǒng)能夠?qū)崟r監(jiān)測宿舍內(nèi)的電壓、電流和功率等參數(shù)。當(dāng)這些參數(shù)超過預(yù)設(shè)的安全閾值時,系統(tǒng)會自動切斷電源以防止電氣故障,并通過蜂鳴器發(fā)出警報。電力監(jiān)測數(shù)據(jù)也會通過LCD顯示屏顯示,并通過NBIoT模塊上傳至云端,便于遠(yuǎn)程監(jiān)控和故障排查。
在數(shù)據(jù)處理和傳輸方面,STM32微控制器負(fù)責(zé)接收來自各個傳感器的數(shù)據(jù),進(jìn)行初步處理,并通過NBIoT模塊BC26將數(shù)據(jù)發(fā)送到華為云物聯(lián)網(wǎng)平臺。NBIoT技術(shù)以其低功耗和廣覆蓋的特點,非常適合于這類需要長時間在線監(jiān)測的應(yīng)用場景。數(shù)據(jù)上傳至云端后,可以通過手機APP或Windows上位機軟件進(jìn)行遠(yuǎn)程查看和控制。用戶可以隨時隨地監(jiān)控宿舍的安全狀況,并執(zhí)行遠(yuǎn)程操作,如遠(yuǎn)程開門等。
系統(tǒng)還配備了一個1.44寸LCD顯示屏,用于本地顯示各種監(jiān)測數(shù)據(jù)和系統(tǒng)狀態(tài)。這使得用戶可以直接在宿舍內(nèi)查看關(guān)鍵信息,而不需要依賴遠(yuǎn)程設(shè)備。顯示屏還可以顯示系統(tǒng)的基本操作指南,方便用戶理解和操作。
系統(tǒng)通過集成多種傳感器、執(zhí)行器和通信模塊,實現(xiàn)了對宿舍環(huán)境的全面監(jiān)測與控制。從火焰和煙霧檢測到門磁控制,再到電力監(jiān)測和人體感應(yīng),每一項功能都緊密配合,確保宿舍的安全和舒適。通過NBIoT技術(shù)與云端服務(wù)的結(jié)合,系統(tǒng)不僅實現(xiàn)了本地的即時響應(yīng),還提供了遠(yuǎn)程監(jiān)控和控制的能力,為用戶提供了一個全方位、智能化的宿舍安防解決方案。
1.3 系統(tǒng)框架圖
1.4 系統(tǒng)功能總結(jié)
為了清晰地展示系統(tǒng)的主要功能,下面是一個系統(tǒng)功能總結(jié)的表格。這個表格列出了每個功能的描述、涉及的關(guān)鍵組件以及預(yù)期的效果。
功能模塊 | 描述 | 關(guān)鍵組件 | 預(yù)期效果 |
---|---|---|---|
火焰檢測 | 檢測宿舍內(nèi)是否存在火焰,觸發(fā)警報 | 火焰檢測傳感器, STM32, 蜂鳴器, NBIoT模塊 | 及時發(fā)現(xiàn)火災(zāi)風(fēng)險,發(fā)出警報并上傳警報信息至云端 |
煙霧檢測 | 檢測宿舍內(nèi)是否存在煙霧,觸發(fā)警報 | MQ2煙霧傳感器, STM32, 蜂鳴器, NBIoT模塊 | 及時發(fā)現(xiàn)火災(zāi)風(fēng)險,發(fā)出警報并上傳警報信息至云端 |
門磁控制 | 支持本地按鍵開門、手機APP和Windows上位機遠(yuǎn)程開門 | 5V電磁鎖, STM32, NBIoT模塊 | 提供多種開門方式,增強便利性和安全性 |
人體感應(yīng) | 檢測宿舍內(nèi)是否有人存在 | 紅外熱釋電傳感器, STM32, NBIoT模塊 | 輔助判斷宿舍狀態(tài),優(yōu)化能源使用,提高安全性 |
電力監(jiān)測與保護(hù) | 監(jiān)測宿舍內(nèi)的電壓、電流、功率,超限時發(fā)出警報并切斷電源 | 電力參數(shù)采集模塊, STM32, 蜂鳴器, NBIoT模塊 | 防止電氣故障,確保用電安全 |
數(shù)據(jù)上云 | 通過NBIoT模塊將采集的數(shù)據(jù)上傳至華為云物聯(lián)網(wǎng)平臺 | NBIoT模塊BC26, STM32 | 實現(xiàn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)分析 |
本地數(shù)據(jù)顯示 | 通過1.44寸LCD顯示屏顯示實時數(shù)據(jù)和系統(tǒng)狀態(tài) | 1.44寸LCD顯示屏, STM32 | 提供直觀的數(shù)據(jù)展示,方便用戶查看和操作 |
遠(yuǎn)程控制 | 通過手機APP和Windows上位機軟件實現(xiàn)遠(yuǎn)程監(jiān)控和控制 | NBIoT模塊, STM32, 手機APP, Windows上位機 | 用戶可以隨時隨地查看宿舍狀態(tài)并執(zhí)行遠(yuǎn)程控制 |
功能總結(jié)
- 火焰檢測與煙霧檢測 :通過火焰檢測傳感器和MQ2煙霧傳感器實時監(jiān)測宿舍內(nèi)的火焰和煙霧情況,一旦檢測到異常,立即觸發(fā)蜂鳴器報警,并通過NBIoT模塊將警報信息上傳至云端,確保及時響應(yīng)火災(zāi)風(fēng)險。
- 門磁控制 :結(jié)合5V電磁鎖和STM32微控制器,支持本地按鍵開門、手機APP和Windows上位機遠(yuǎn)程開門,提高宿舍入口的安全性和便利性。
- 人體感應(yīng) :利用紅外熱釋電傳感器檢測宿舍內(nèi)是否有人存在,輔助判斷宿舍狀態(tài),優(yōu)化能源使用,并提高安全性。
- 電力監(jiān)測與保護(hù) :通過電力參數(shù)采集模塊監(jiān)測宿舍內(nèi)的電壓、電流和功率,當(dāng)超過預(yù)設(shè)閾值時,系統(tǒng)自動切斷電源并發(fā)出警報,確保用電安全。
- 數(shù)據(jù)上云 :通過NBIoT模塊BC26將采集的數(shù)據(jù)上傳至華為云物聯(lián)網(wǎng)平臺,實現(xiàn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)分析,便于管理者進(jìn)行決策。
- 本地數(shù)據(jù)顯示 :1.44寸LCD顯示屏實時顯示宿舍內(nèi)的各種監(jiān)測數(shù)據(jù)和系統(tǒng)狀態(tài),提供直觀的信息展示。
- 遠(yuǎn)程控制 :通過手機APP和Windows上位機軟件,用戶可以遠(yuǎn)程查看宿舍狀態(tài)并執(zhí)行控制命令,如遠(yuǎn)程開門等,提高系統(tǒng)的靈活性和可用性。
1.5 系統(tǒng)原理圖
1.6 實物圖
1.7 模塊的技術(shù)詳情介紹
【1】NBIOT-BC26模塊
NBIoT-BC26模塊是由中國移動通信研究院和移遠(yuǎn)通信合作推出的一款NB-IoT(窄帶物聯(lián)網(wǎng))通信模塊,專為低功耗廣域網(wǎng)(LPWAN)應(yīng)用而設(shè)計。NB-IoT是物聯(lián)網(wǎng)領(lǐng)域的一項重要通信技術(shù),具有低功耗、低成本、大連接和廣覆蓋的特點,能夠為各種智能終端提供穩(wěn)定、高效的無線連接。BC26模塊廣泛應(yīng)用于智能表計、智慧城市、資產(chǎn)追蹤、環(huán)境監(jiān)測和遠(yuǎn)程控制等領(lǐng)域。
BC26模塊的尺寸小巧(大約為19.9mm × 23.6mm),功耗極低,非常適合空間有限、功耗敏感的物聯(lián)網(wǎng)應(yīng)用。模塊支持電池供電,并具備深度睡眠模式,使其在無操作時的功耗極低,這在需要長時間工作和持續(xù)連接的應(yīng)用中極為重要。BC26模塊在設(shè)計上特別注重能效管理,其低功耗特性為長時間、低成本的物聯(lián)網(wǎng)部署提供了可行性。
BC26模塊支持NB-IoT標(biāo)準(zhǔn)的三種部署模式:獨立部署、保護(hù)帶部署和帶內(nèi)部署,使其能夠適應(yīng)不同網(wǎng)絡(luò)環(huán)境。它支持多個頻段,如B1、B3、B5、B8、B20等,能夠滿足不同地區(qū)和國家的通信需求。BC26模塊提供高達(dá)幾百kbps的下行速率,盡管比4G等高帶寬網(wǎng)絡(luò)慢得多,但對于大多數(shù)傳感器數(shù)據(jù)、環(huán)境監(jiān)測數(shù)據(jù)和狀態(tài)上報等低數(shù)據(jù)量的物聯(lián)網(wǎng)通信來說已經(jīng)足夠。
在網(wǎng)絡(luò)連接上,BC26模塊使用了NB-IoT技術(shù)特有的窄帶無線頻譜,使其具備極強的網(wǎng)絡(luò)覆蓋能力。與傳統(tǒng)移動網(wǎng)絡(luò)相比,NB-IoT模塊能夠在更深的樓宇或地下環(huán)境中保持穩(wěn)定連接。這一特性對于智慧城市建設(shè)中廣泛分布的智能設(shè)備至關(guān)重要,確保了物聯(lián)網(wǎng)設(shè)備的可靠通信。
BC26模塊支持標(biāo)準(zhǔn)的AT命令集,使得開發(fā)者能夠通過簡單的指令進(jìn)行配置和操作,包括網(wǎng)絡(luò)注冊、連接管理、數(shù)據(jù)發(fā)送與接收等。使用AT命令,開發(fā)人員可以快速實現(xiàn)與云平臺的通信、數(shù)據(jù)傳輸和遠(yuǎn)程管理。BC26模塊還支持多種通信協(xié)議,如UDP和CoAP,可以通過這些協(xié)議實現(xiàn)高效的物聯(lián)網(wǎng)數(shù)據(jù)傳輸。
為了滿足物聯(lián)網(wǎng)的安全需求,BC26模塊支持多種加密和認(rèn)證機制,如數(shù)據(jù)加密、SIM卡認(rèn)證等。這些功能增強了通信過程中的安全性,確保數(shù)據(jù)在傳輸過程中不會被惡意截取或篡改。通過與云平臺的連接,BC26模塊能夠?qū)⒉杉降脑O(shè)備數(shù)據(jù)上傳至云端,實現(xiàn)遠(yuǎn)程監(jiān)控、數(shù)據(jù)分析和設(shè)備管理等功能,助力企業(yè)構(gòu)建智能化的物聯(lián)網(wǎng)應(yīng)用。
BC26模塊具備較強的抗干擾能力和穩(wěn)定性,即使在復(fù)雜的無線環(huán)境下也能保持高效通信。它的接口類型包括UART、SPI和I2C等,方便與各種單片機、傳感器和其他外圍設(shè)備集成。BC26模塊還支持多種電源管理模式,開發(fā)者可以根據(jù)應(yīng)用需求設(shè)置不同的功耗模式,以優(yōu)化能源使用。
NBIoT-BC26模塊以其低功耗、高效能、廣覆蓋和易于開發(fā)的特點,為物聯(lián)網(wǎng)應(yīng)用提供了可靠的無線通信解決方案。它特別適用于大規(guī)模、分布廣泛、低數(shù)據(jù)量傳輸?shù)膱鼍?,成為智能終端和遠(yuǎn)程數(shù)據(jù)采集的重要通信模塊之一。BC26模塊的靈活性和可靠性為各類物聯(lián)網(wǎng)項目的構(gòu)建和部署提供了理想的支持。
【2】MQ2氣體傳感器
MQ2氣體傳感器是一種常見的氣體檢測設(shè)備,能夠用于監(jiān)測環(huán)境中的多種氣體,包括可燃性氣體和煙霧等。其工作原理基于金屬氧化物半導(dǎo)體(MOS),當(dāng)傳感器暴露于特定氣體環(huán)境中時,其電阻會發(fā)生變化,從而使傳感器產(chǎn)生不同的電信號,進(jìn)而被檢測出來。以下是MQ2傳感器的詳細(xì)介紹:
MQ2傳感器的主要特點是能夠檢測多種氣體,如液化氣(LPG)、丙烷、氫氣、一氧化碳(CO)、酒精和煙霧。由于其靈敏度較高,尤其在檢測煙霧和可燃性氣體方面表現(xiàn)優(yōu)異,因此被廣泛應(yīng)用于家庭安全系統(tǒng)、氣體泄漏報警設(shè)備、工業(yè)監(jiān)測和其他涉及氣體檢測的應(yīng)用場景中。它在確保居家安全和工業(yè)生產(chǎn)安全方面扮演著重要角色。
MQ2傳感器通常由一個加熱元件和一個電阻傳感元件組成。當(dāng)傳感器通電時,其內(nèi)部加熱元件會加熱傳感表面,這一過程有助于加速氣體與傳感層之間的反應(yīng)速度。加熱器會在傳感器表面形成一個高溫環(huán)境,從而提高檢測氣體的反應(yīng)速度。傳感元件的電阻在不同濃度的可燃?xì)怏w或煙霧中會發(fā)生變化,通過測量該電阻的變化,可以得到環(huán)境中氣體的濃度信息。
該傳感器的輸出為模擬信號,通常需要通過微控制器(如STM32)進(jìn)行信號的采集和處理。為了將MQ2的模擬信號轉(zhuǎn)化為數(shù)字信號,通常會配合ADC(模數(shù)轉(zhuǎn)換器)模塊。還可以使用合適的閾值設(shè)定來判斷是否達(dá)到報警條件。大多數(shù)情況下,它需要一定的預(yù)熱時間來達(dá)到穩(wěn)定的工作狀態(tài)(一般為20至30秒),以確保檢測結(jié)果的準(zhǔn)確性。
MQ2傳感器的優(yōu)點在于價格低廉、靈敏度較高、易于使用并且能夠適應(yīng)不同氣體檢測需求。它的工作電壓通常為5V,并支持模擬和數(shù)字兩種輸出模式。需要注意的是,MQ2的輸出信號會受到環(huán)境溫濕度的影響,因此在某些特殊環(huán)境下需要進(jìn)行校準(zhǔn)或考慮其影響。同時,由于傳感器對多種氣體具有一定的反應(yīng),因此有可能出現(xiàn)干擾,需要針對特定場景做專門的氣體選擇性檢測。
在使用時,MQ2氣體傳感器通常與負(fù)載電阻(Load Resistor)連接形成一個簡單的電路。負(fù)載電阻的大小可以影響傳感器的靈敏度和響應(yīng)時間,因此需要根據(jù)應(yīng)用需求進(jìn)行合理選擇。MQ2氣體傳感器適用于氣體檢測報警、電路保護(hù)、消防報警和家用安全等領(lǐng)域。
【3】火焰檢測模塊
火焰檢測模塊是一種基于紅外或紫外光譜檢測火焰的傳感器裝置,廣泛用于火災(zāi)預(yù)警、工業(yè)安全、家居安防和自動化系統(tǒng)等領(lǐng)域。它通過感應(yīng)火焰發(fā)出的光信號來實現(xiàn)火焰的檢測和監(jiān)控,可以快速識別火源并提供警報信號,從而有效降低火災(zāi)風(fēng)險,保護(hù)生命和財產(chǎn)安全。
火焰檢測模塊通常依靠感應(yīng)火焰所產(chǎn)生的特定波長的光線來進(jìn)行檢測。大多數(shù)火焰檢測模塊基于紅外感應(yīng)技術(shù),能夠探測到760納米至1100納米波長的紅外光,部分高精度的模塊也能夠探測紫外光(185-260納米范圍)。由于火焰中含有熾熱的燃燒氣體,這些氣體會在燃燒過程中發(fā)出特定波長的紅外或紫外線,因此火焰檢測模塊可以通過識別這些光信號來判斷火焰的存在。
火焰檢測模塊一般由光敏元件、濾光器和放大電路等組成。光敏元件可以是光電二極管、光敏晶體管或其他類型的紅外傳感器。當(dāng)火焰光線被光敏元件接收時,會引起光電效應(yīng),從而產(chǎn)生電信號。經(jīng)過濾波和放大處理后,這一信號被傳遞到微控制器(如STM32)或報警電路中,觸發(fā)相應(yīng)的動作,比如蜂鳴器報警或關(guān)閉電源。
火焰檢測模塊的輸出通常為數(shù)字和模擬信號兩種模式。數(shù)字信號輸出通常以高低電平的形式表示是否檢測到火焰。對于許多簡單應(yīng)用,數(shù)字信號足以實現(xiàn)火焰的快速識別。模擬信號輸出則提供了更精確的測量值,可以反映火焰的強度和距離。通過對模擬信號的采集和處理,可以對火焰的狀態(tài)和變化進(jìn)行更深入的分析和判斷。
火焰檢測模塊具有反應(yīng)迅速、靈敏度高和抗干擾性強的特點,能夠在短時間內(nèi)檢測到火焰的存在并發(fā)出警報。其檢測距離和角度通常受光敏元件的靈敏度和透鏡的設(shè)計影響,一般的檢測角度為60°至120°,檢測距離可達(dá)幾米至十幾米。用戶可以通過調(diào)節(jié)模塊上的靈敏度電位器來設(shè)定檢測靈敏度,從而滿足不同應(yīng)用場景的需求。
在使用火焰檢測模塊時,環(huán)境光和反射物體可能會對檢測結(jié)果產(chǎn)生影響。因此,在安裝和應(yīng)用時需要注意避免陽光直射或強光干擾。模塊應(yīng)對準(zhǔn)可能的火源方向,以便獲得最佳的檢測效果。此外,為了提高火焰檢測的可靠性,模塊通常與其他傳感器(如煙霧傳感器、溫度傳感器)聯(lián)合使用,形成多層次的火災(zāi)預(yù)警系統(tǒng),以減少誤報警的風(fēng)險。
火焰檢測模塊被廣泛用于工業(yè)設(shè)備監(jiān)控、燃?xì)庠罹甙踩刂?、火?zāi)報警器等場合。它能夠在火災(zāi)初期迅速響應(yīng),及時發(fā)出報警信號或采取控制措施,從而大大提高火災(zāi)防控能力,保護(hù)生命和財產(chǎn)安全??偟膩碚f,火焰檢測模塊是一個重要的安防組件,為多種應(yīng)用提供了可靠的火災(zāi)預(yù)警和安全保障功能。
【4】蜂鳴器模塊
高低電平控制的有源蜂鳴器是一種集成了振蕩電路和發(fā)聲組件的電子器件,通過簡單的電平控制即可產(chǎn)生聲音提示,廣泛用于報警系統(tǒng)、家電、智能設(shè)備以及工控系統(tǒng)等需要聲音提示的場合。相比無源蜂鳴器,有源蜂鳴器不需要外部提供驅(qū)動頻率信號,內(nèi)部已包含振蕩電路,因此只需提供電源和控制電平就能發(fā)聲,使用更加方便。
有源蜂鳴器通常由電磁線圈、鐵芯、磁鐵、振蕩器、以及振膜等組成。當(dāng)給蜂鳴器供電時,內(nèi)置振蕩電路開始工作,產(chǎn)生一定頻率的交變磁場,使振膜不斷振動,從而發(fā)出連續(xù)的“嘀嘀”聲。蜂鳴器的工作頻率通常在2kHz至4kHz之間,這一頻段的聲音刺耳,便于在嘈雜環(huán)境中引起注意。
高低電平控制的有源蜂鳴器根據(jù)輸入信號的不同可以分為高電平觸發(fā)和低電平觸發(fā)兩種類型。高電平觸發(fā)的蜂鳴器在輸入信號為高電平時發(fā)聲,而低電平觸發(fā)的蜂鳴器則在輸入信號為低電平時發(fā)聲。此設(shè)計使得蜂鳴器能夠靈活適應(yīng)不同的控制電路要求,便于和各類控制器(如單片機、PLC)直接對接,通過簡單的GPIO信號即可控制蜂鳴器發(fā)聲或停止。
在電氣特性方面,有源蜂鳴器的工作電壓通常在3V到12V之間,常見的規(guī)格為5V和12V兩種,用戶可以根據(jù)應(yīng)用場合選擇適合的電壓等級。有源蜂鳴器的功耗較低,工作電流通常在幾十毫安左右,因此適合電池供電設(shè)備以及低功耗應(yīng)用場景。蜂鳴器的封裝形式有插件式和貼片式兩種,插件式適合在PCB上直接安裝,而貼片式則適合自動化設(shè)備生產(chǎn),更加適合高密度電路板應(yīng)用。
由于內(nèi)置了振蕩電路,有源蜂鳴器在使用中不需要考慮驅(qū)動頻率的問題,只需控制電平即可實現(xiàn)發(fā)聲與停止,因此開發(fā)簡單,安裝便捷。在實際應(yīng)用中,若需實現(xiàn)不同的報警音效,可以通過脈沖信號控制發(fā)聲的間歇頻率,使蜂鳴器產(chǎn)生間歇報警聲。此外,在電平驅(qū)動的電路中,有源蜂鳴器還可以與其他傳感器、開關(guān)、按鍵等組件配合,構(gòu)建智能化的聲音提示系統(tǒng),以提升設(shè)備的交互體驗。
【5】人體感應(yīng)傳感器
熱釋電人體感應(yīng)傳感器,也稱為PIR(Passive Infrared)傳感器,是一種常用于檢測人體活動的傳感設(shè)備。它基于紅外輻射感應(yīng)原理,能夠探測到人體發(fā)出的紅外熱輻射并產(chǎn)生信號輸出,從而感知人體的存在或運動。PIR傳感器廣泛應(yīng)用于自動門、安防報警系統(tǒng)、智能家居照明控制等領(lǐng)域,憑借其可靠性高、成本低和易于集成的特點,成為了主流的人體感應(yīng)方案。
PIR傳感器的核心組件是一個熱釋電元件,該元件能夠?qū)t外線的變化產(chǎn)生響應(yīng)。人體通常會發(fā)出紅外線,其波長在8到14微米范圍內(nèi)。當(dāng)一個人進(jìn)入傳感器的檢測范圍時,會引起傳感器探測區(qū)域內(nèi)紅外輻射的變化。傳感器內(nèi)的熱釋電元件在接收到紅外信號后,會產(chǎn)生微弱的電壓變化,通過放大電路將這種變化轉(zhuǎn)化為可用的電信號。這一電信號可以用于控制后續(xù)電路,比如啟動蜂鳴器報警或觸發(fā)電路開關(guān)等。
為了提高檢測精度和靈敏度,PIR傳感器通常會配備菲涅爾透鏡。菲涅爾透鏡可以將紅外線聚焦到傳感器的熱釋電元件上,并分成多個“檢測區(qū)域”,以便更精確地感知人體活動。這一設(shè)計使得傳感器能夠區(qū)分不同方向和距離的運動,從而更準(zhǔn)確地觸發(fā)感應(yīng)。
熱釋電人體感應(yīng)傳感器通常有兩種工作模式:觸發(fā)模式和非觸發(fā)模式。觸發(fā)模式用于檢測到運動后產(chǎn)生高低電平信號,并在延時后恢復(fù)初始狀態(tài)。這種模式適用于自動門控制和智能燈控制等場景。而在非觸發(fā)模式下,傳感器檢測到運動信號時,會保持高電平輸出,適合需要長時間信號保持的應(yīng)用。
PIR傳感器具有高靈敏度和較低的功耗,這使其非常適合電池供電的設(shè)備。同時,由于PIR傳感器本身是“被動”的,只需感知外界紅外輻射,無需主動發(fā)射信號,因此具有抗干擾能力強和安全性好的特點。此外,PIR傳感器的檢測距離和范圍通??梢酝ㄟ^調(diào)整其光學(xué)鏡頭和電路參數(shù)來設(shè)定,一般的檢測距離為3-7米,覆蓋角度約為120°至180°,具體參數(shù)可以根據(jù)應(yīng)用需求進(jìn)行配置。
需要注意的是,熱釋電人體感應(yīng)傳感器可能會受環(huán)境溫度變化影響。在高溫或低溫環(huán)境下,其檢測靈敏度可能會有所變化。此外,傳感器也可能受到電磁干擾的影響,因此在設(shè)計和使用時需注意電磁屏蔽和環(huán)境適配,以提高系統(tǒng)的穩(wěn)定性和可靠性。總體來說,PIR傳感器以其簡便的操作和廣泛的適用性,在智能家居、安防系統(tǒng)和自動化控制等方面得到了廣泛應(yīng)用。
【6】電磁鎖
電磁鎖是一種利用電磁力進(jìn)行控制的鎖具,常用于門禁系統(tǒng)、安防系統(tǒng)以及其他需要電子控制的場景。它以可靠性高、響應(yīng)快速、使用方便而著稱,是現(xiàn)代智能控制設(shè)備中常見的組件。電磁鎖的工作原理是通過電流產(chǎn)生的磁力來實現(xiàn)鎖定和解鎖,當(dāng)電流通過電磁線圈時,線圈內(nèi)會產(chǎn)生強磁場,使金屬鎖體吸附或釋放,從而控制門的開關(guān)狀態(tài)。
電磁鎖的基本結(jié)構(gòu)包括線圈、鐵芯和鎖體。通常情況下,當(dāng)鎖需要處于鎖定狀態(tài)時,通電后的線圈會產(chǎn)生強大的磁力,將鎖舌牢牢吸附在鎖體內(nèi),形成一個封閉的門鎖結(jié)構(gòu)。相反,當(dāng)需要解鎖時,切斷電源,電磁力隨之消失,鎖體便會自動釋放。由于其操作原理基于電磁效應(yīng),電磁鎖通常需要穩(wěn)定的直流電源供電,一般為12V或24V直流電。
電磁鎖有多種類型,常見的有普通電磁鎖、磁力鎖、斷電型和通電型。普通電磁鎖常用于門禁控制系統(tǒng),具有高強度的磁力吸附,能夠有效防止非法闖入。磁力鎖一般安裝在門框頂部,通過磁力將門吸住,適用于輕型門的開關(guān)控制。斷電型電磁鎖在斷電時解鎖,這種設(shè)計適用于緊急出口或消防安全通道,確保在斷電時門能夠自動解鎖,方便人員迅速疏散。而通電型電磁鎖則相反,在通電時解鎖,適用于某些特定的安防場景。
電磁鎖的優(yōu)勢在于其耐用性和安全性。由于其內(nèi)部沒有機械活動部件,工作時沒有磨損和卡滯,使用壽命長且維護(hù)成本較低。與傳統(tǒng)機械鎖相比,電磁鎖的操作也更加安靜和穩(wěn)定,尤其適合對噪音敏感的環(huán)境。此外,電磁鎖還可以與多種智能設(shè)備集成,支持遠(yuǎn)程控制、指紋識別、密碼輸入等多種解鎖方式,使其廣泛應(yīng)用于現(xiàn)代建筑的安防系統(tǒng)中。
在使用電磁鎖時,需要注意供電的穩(wěn)定性,防止電源波動或中斷可能導(dǎo)致的誤動作。通常,電磁鎖會配備斷電保護(hù)機制或后備電源,以確保在電力中斷的情況下依然能夠保持安全性。另外,在實際應(yīng)用中,電磁鎖的安裝位置和固定方式會影響其鎖緊力。為了確保安全性,必須保證鎖具與門體或門框緊密接觸,并避免松動或錯位。
電磁鎖的應(yīng)用范圍涵蓋了住宅小區(qū)、辦公樓、商場、機場、醫(yī)院等場所。由于其響應(yīng)快速、鎖定力強和易于與電子系統(tǒng)集成,電磁鎖在智能門禁系統(tǒng)中占據(jù)重要位置,為提升場所的安全性和管理便捷性提供了可靠的解決方案。
【7】MQTT協(xié)議
MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議)是一種輕量級、發(fā)布/訂閱模式的消息傳輸協(xié)議,專為低帶寬、不可靠網(wǎng)絡(luò)環(huán)境設(shè)計。它最早由IBM提出,現(xiàn)已成為物聯(lián)網(wǎng)(IoT)通信的重要協(xié)議之一。由于其高效、低功耗和實時性等特點,MQTT在智能家居、工業(yè)自動化、遠(yuǎn)程監(jiān)控和車聯(lián)網(wǎng)等領(lǐng)域得到了廣泛應(yīng)用。
MQTT的工作原理基于發(fā)布/訂閱模型。這種模型有別于傳統(tǒng)的客戶端-服務(wù)器模型,通信方不需要直接建立連接。MQTT由三個核心組件構(gòu)成:客戶端、代理(Broker)和主題(Topic)??蛻舳丝梢宰鳛橄⒌陌l(fā)布者或訂閱者,消息通過代理進(jìn)行路由。代理是一個中間服務(wù)端,用于接收和分發(fā)來自不同客戶端的消息。發(fā)布者發(fā)送消息到一個特定的主題上,代理負(fù)責(zé)將這些消息分發(fā)給所有訂閱了該主題的客戶端。通過這種解耦的架構(gòu)設(shè)計,客戶端之間可以實現(xiàn)松耦合的通信,降低了復(fù)雜性和依賴性。
在MQTT協(xié)議中,消息被分為不同的主題(Topic),例如“home/sensor/temperature”可以用來代表溫度傳感器數(shù)據(jù)??蛻舳丝梢杂嗛嗊@個主題,當(dāng)發(fā)布者發(fā)送新的數(shù)據(jù)到該主題時,所有訂閱該主題的客戶端都會收到更新信息。這種靈活的主題結(jié)構(gòu)和層次化的命名規(guī)則,使得MQTT在復(fù)雜場景下也能快速組織和管理消息流。
MQTT協(xié)議支持三種服務(wù)質(zhì)量(QoS)等級,分別為“至多一次”(QoS 0)、“至少一次”(QoS 1)和“僅一次”(QoS 2)。QoS 0表示消息傳輸盡力而為,可能會丟失或重復(fù);QoS 1確保消息至少送達(dá)一次,但可能會有重復(fù);QoS 2則確保消息恰好傳輸一次,保證消息的嚴(yán)格可靠性。這種設(shè)計使MQTT能夠適應(yīng)不同的應(yīng)用場景,用戶可以根據(jù)應(yīng)用需求選擇合適的QoS級別。
為了保證通信的安全性,MQTT支持用戶名和密碼驗證,代理可以對連接進(jìn)行身份認(rèn)證。此外,許多實現(xiàn)中還支持TLS/SSL加密通信,確保數(shù)據(jù)在傳輸過程中不會被竊取或篡改。用戶也可以使用不同的認(rèn)證方式來增強系統(tǒng)的安全性,適應(yīng)物聯(lián)網(wǎng)應(yīng)用中對安全性的高需求。
MQTT非常注重輕量化和低功耗。它的報文頭非常小,通信開銷很低,這使其特別適合在資源受限的設(shè)備或不穩(wěn)定的網(wǎng)絡(luò)環(huán)境中使用。MQTT支持“保持連接”和“遺囑消息”功能,客戶端可以在連接斷開時自動向代理發(fā)送遺囑消息,通知其他客戶端連接狀態(tài)的變化。這種特性有助于提高網(wǎng)絡(luò)的健壯性和系統(tǒng)的可用性。
MQTT的典型使用場景包括物聯(lián)網(wǎng)設(shè)備數(shù)據(jù)采集、實時監(jiān)控、消息推送和控制命令的發(fā)布。比如在智能家居中,傳感器可以發(fā)布環(huán)境數(shù)據(jù),如溫濕度、煙霧濃度等,控制設(shè)備根據(jù)收到的消息作出響應(yīng),實現(xiàn)自動化操作。在工業(yè)場景中,MQTT可以幫助收集和管理大規(guī)模設(shè)備的運行狀態(tài),實現(xiàn)集中化和高效的設(shè)備監(jiān)控。
總的來說,MQTT協(xié)議憑借其低功耗、高效能、實時性強等優(yōu)勢,已成為物聯(lián)網(wǎng)通信的主要協(xié)議之一。它的發(fā)布/訂閱模式簡化了設(shè)備之間的通信,使其特別適合多對多、低延遲、高可靠性的數(shù)據(jù)傳輸場景。MQTT易于使用、拓展性強,為開發(fā)者提供了靈活的解決方案來構(gòu)建各種物聯(lián)網(wǎng)應(yīng)用。
1.8 參考文獻(xiàn)
1. 韓軍,胡坤朋.基于STM32的宿舍防火防盜系統(tǒng)[J].電子技術(shù)與軟件工程,2019.
2. 蘇世雄,劉洲洲,李川等.基于STM32的高校智能宿舍系統(tǒng)研究與設(shè)計[J].自動化與儀器儀表,2023.
3. 李宇航,秦紅星,史苗紅等.基于STM32的宿舍智能防盜報警系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2023.
4. 麥家裕,吳家輝,倫文康.智能宿舍安全管理系統(tǒng)設(shè)計[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2021.
5. 廣西民族師范學(xué)院.基于物聯(lián)網(wǎng)技術(shù)智慧宿舍系統(tǒng)的設(shè)計[J].電子制作,2024.
6. 史振江.基于stm32單片機的公寓安全控制系統(tǒng)設(shè)計與實現(xiàn)[J].石家莊鐵路職業(yè)技術(shù)學(xué)院學(xué)報,2017.
7. 陜西鐵路工程職業(yè)技術(shù)學(xué)院.基于NB-IoT的校園宿舍智能鎖控制系統(tǒng)設(shè)計[J].自動化與儀器儀表,2024.
8. 陸麗娟,劉亞榮,謝曉蘭.基于物聯(lián)網(wǎng)技術(shù)的高校宿舍監(jiān)控管理系統(tǒng)[J].科技和產(chǎn)業(yè),2022.
9. 沈陽城市建設(shè)學(xué)院信息與控制工程系.基于物聯(lián)網(wǎng)的智能宿舍管理系統(tǒng)[J].電子技術(shù)與軟件工程,2018.
10. 趙娜,于克龍,王貴和等.基于Android和STM32的學(xué)生宿舍智能防盜鎖[J].遼東學(xué)院學(xué)報(自然科學(xué)版),2021.
11. 曲阜師范大學(xué)工學(xué)院.基于LabVIEW的網(wǎng)絡(luò)數(shù)據(jù)管理系統(tǒng)的設(shè)計與實現(xiàn)[J].電子技術(shù),2017.
12. 尹德睿,題原,范高倫.智能高校寢室安全監(jiān)控和學(xué)生管理系統(tǒng)[J].電工技術(shù),2019.
13. 馬光偉,樊廣曉,王玉虎等.宿舍用電監(jiān)控系統(tǒng)設(shè)計[J].河南科技學(xué)院學(xué)報(自然科學(xué)版),2020.
14. 王賾坤,桂玲.基于NB-IoT技術(shù)的智能安防監(jiān)測系統(tǒng)[J].計算機技術(shù)與發(fā)展,2021.
15. 王桂君,蔣蓁.基于STM32的室內(nèi)安防監(jiān)控系統(tǒng)設(shè)計[J].自動化儀表,2020.
16. 張鵬,苗鳳娟,田朋博等.基于stm32學(xué)生公寓消防安全監(jiān)控管理系統(tǒng)V1.0.齊齊哈爾大學(xué);,2021.
17. 何龍,冉東陽,楊柳.宿舍燈光與預(yù)警智能控制系統(tǒng)設(shè)計[J].電子制作,2023.
18. 李鵬霞,李宛睿.高校學(xué)生宿舍智慧化管理系統(tǒng)的設(shè)計與實現(xiàn)[J].長江信息通信,2023.
19. 宋耀華,王梅霞.基于物聯(lián)網(wǎng)技術(shù)的宿舍安防系統(tǒng)設(shè)計[J].機械與電子,2013.
20. 任建明,盧宇,管立偉.室內(nèi)環(huán)境無線監(jiān)控系統(tǒng)的設(shè)計[J].信息通信,2017.
21. 張強志,房楚杰,楊永華等.基于STM32的智能門控安防系統(tǒng)設(shè)計[J].嘉應(yīng)學(xué)院學(xué)報,2022.
22. 王歡.基于ZigBee網(wǎng)絡(luò)的高校宿舍智能安防系統(tǒng)設(shè)計[J].襄陽職業(yè)技術(shù)學(xué)院學(xué)報,2021.
23. 武漢理工大學(xué)自動化學(xué)院.基于NB-IOT的室內(nèi)環(huán)境監(jiān)測和報警系統(tǒng)[J].科技與創(chuàng)新,2021.
24. 章魁,衛(wèi)新華.遠(yuǎn)程智能安防與控制系統(tǒng)設(shè)計與實現(xiàn)[J].科技信息,2012.
25. He Bai, Yun Gao et al. “Study on College Apartment Fire Monitoring System Based on GSM.” Applied Mechanics and Materials(2014).
26. 王鵬,于潤嘉,羅全珍.基于物聯(lián)網(wǎng)的家庭智慧安防系統(tǒng)設(shè)計與實現(xiàn)[J].物聯(lián)網(wǎng)技術(shù),2020.
27. Xiangjun Su, G. Guo et al. “Design and Implementation of Dormitory Disciplinary Monitoring and Management System.” Applied Mechanics and Materials(2014).
28. Lele Niu, Zu‐Pei Ou et al. “Design of Indoor Intelligent Alarm System Based on STM32.” Proceedings of the 6th International Conference on Intelligent Information Processing(2021).
29. Fengshan Huang, Shaozi Li et al. “Design on Intelligent Smoke Alarm System.” 2022 12th International Conference on Information Technology in Medicine and Education (ITME)v(2022).
30. Biao Chen, Shihong Qin et al. “Design of Smart Home Control System Based on STM32.” 2021 4th International Conference on Robotics, Control and Automation Engineering (RCAE)(2021).
二、部署華為云物聯(lián)網(wǎng)平臺
華為云官網(wǎng): https://www.huaweicloud.com/
打開官網(wǎng),搜索物聯(lián)網(wǎng),就能快速找到 設(shè)備接入IoTDA
。
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è)備的快速接入;同時提供強大的開放能力,支撐行業(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ù)場景。
2.2 開通物聯(lián)網(wǎng)服務(wù)
地址: https://www.huaweicloud.com/product/iothub.html
點擊立即創(chuàng)建
。
正在創(chuàng)建標(biāo)準(zhǔn)版實例,需要等待片刻。
創(chuàng)建完成之后,點擊實例名稱。 可以看到標(biāo)準(zhǔn)版實例的設(shè)備接入端口和地址。
在上面也能看到 免費單元的限制。
開通之后,點擊總覽
,也能查看接入信息。 我們當(dāng)前設(shè)備準(zhǔn)備采用MQTT協(xié)議接入華為云平臺,這里可以看到MQTT協(xié)議的地址和端口號等信息。
總結(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是證書加密端口,單片機無法加載證書,所以使用1883端口比較合適。 接下來的ESP8266就采用1883端口連接華為云物聯(lián)網(wǎng)平臺。
2.3 創(chuàng)建產(chǎn)品
(1)創(chuàng)建產(chǎn)品
(2)填寫產(chǎn)品信息
根據(jù)自己產(chǎn)品名字填寫,下面的設(shè)備類型選擇自定義類型。
(3)產(chǎn)品創(chuàng)建成功
創(chuàng)建完成之后點擊查看詳情。
(4)添加自定義模型
產(chǎn)品創(chuàng)建完成之后,點擊進(jìn)入產(chǎn)品詳情頁面,翻到最下面可以看到模型定義。
模型簡單來說: 就是存放設(shè)備上傳到云平臺的數(shù)據(jù)。
你可以根據(jù)自己的產(chǎn)品進(jìn)行創(chuàng)建。
比如:
煙霧可以叫 MQ2
溫度可以叫 Temperature
濕度可以叫 humidity
火焰可以叫 flame
其他的傳感器自己用單詞簡寫命名即可。 這就是你的單片機設(shè)備端上傳到服務(wù)器的數(shù)據(jù)名字。
先點擊自定義模型。
再創(chuàng)建一個服務(wù)ID。
接著點擊新增屬性。
2.4 添加設(shè)備
產(chǎn)品是屬于上層的抽象模型,接下來在產(chǎn)品模型下添加實際的設(shè)備。添加的設(shè)備最終需要與真實的設(shè)備關(guān)聯(lián)在一起,完成數(shù)據(jù)交互。
(1)注冊設(shè)備
(2)根據(jù)自己的設(shè)備填寫
(3)保存設(shè)備信息
創(chuàng)建完畢之后,點擊保存并關(guān)閉,得到創(chuàng)建的設(shè)備密匙信息。該信息在后續(xù)生成MQTT三元組的時候需要使用。
(4)設(shè)備創(chuàng)建完成
(5)設(shè)備詳情
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
業(yè)務(wù)流程:
(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
對于設(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
根據(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
MQTT協(xié)議的端口支持1883和8883,它們的區(qū)別是:8883 是加密端口更加安全。但是單片機上使用比較困難,所以當(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
(2)生成MQTT三元組
華為云提供了一個在線工具,用來生成MQTT鑒權(quán)三元組: https://iot-tool.obs-website.cn-north-4.myhuaweicloud.com/
打開這個工具,填入設(shè)備的信息(也就是剛才創(chuàng)建完設(shè)備之后保存的信息),點擊生成,就可以得到MQTT的登錄信息了。
下面是打開的頁面:
填入設(shè)備的信息: (上面兩行就是設(shè)備創(chuàng)建完成之后保存得到的)
直接得到三元組信息。
得到三元組之后,設(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ā)布主題。
(2)打開網(wǎng)頁查看
完成上面的操作之后,打開華為云網(wǎng)頁后臺,可以看到設(shè)備已經(jīng)在線了。
點擊詳情頁面,可以看到上傳的數(shù)據(jù):
到此,云平臺的部署已經(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ā)上位機,需要使用云平臺的API接口,這些接口都需要token進(jìn)行鑒權(quán)。簡單來說,就是身份的認(rèn)證。 調(diào)用接口獲取Token時,就需要填寫IAM賬號信息。所以,接下來演示一下過程。
地址: https://console.huaweicloud.com/iam/?region=cn-north-4#/iam/users
**【1】獲取項目憑證 ** 點擊左上角用戶名,選擇下拉菜單里的我的憑證
項目憑證:
28add376c01e4a61ac8b621c714bf459
【2】創(chuàng)建IAM用戶
鼠標(biāo)放在左上角頭像上,在下拉菜單里選擇統(tǒng)一身份認(rèn)證
。
點擊左上角創(chuàng)建用戶
。
創(chuàng)建成功:
【3】創(chuàng)建完成
用戶信息如下:
主用戶名 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ù)。
設(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ù),完成上位機開發(fā)。
鏈接如下:
https://ad635970a1.st1.iotda-app.cn-north-4.myhuaweicloud.com:443/v5/iot/28add376c01e4a61ac8b621c714bf459/devices/663cb18871d845632a0912e7_dev1/shadow
三、上位機開發(fā)
為了方便查看設(shè)備上傳的數(shù)據(jù),接下來利用Qt開發(fā)一款A(yù)ndroid手機APP 和 Windows上位機。
使用華為云平臺提供的API接口獲取設(shè)備上傳的數(shù)據(jù),進(jìn)行可視化顯示,以及遠(yuǎn)程控制設(shè)備。
3.1 Qt開發(fā)環(huán)境安裝
Qt的中文官網(wǎng): https://www.qt.io/zh-cn/
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ù)安裝。
選擇MinGW 32-bit 編譯器: (一定要看清楚了)
說明: 我這里只是介紹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 新建上位機工程
前面2講解了需要用的API接口,接下來就使用Qt設(shè)計上位機,設(shè)計界面,完成整體上位機的邏輯設(shè)計。
【1】新建工程
【2】設(shè)置項目的名稱。
【3】選擇編譯系統(tǒng)
【4】選擇默認(rèn)繼承的類
【5】選擇編譯器
【6】點擊完成
【7】工程創(chuàng)建完成
3.3 設(shè)計UI界面與工程配置
【1】打開UI文件
打開默認(rèn)的界面如下:
【2】開始設(shè)計界面
根據(jù)自己需求設(shè)計界面。
3.5 編譯Windows上位機
點擊軟件左下角的綠色三角形按鈕進(jìn)行編譯運行。
3.6 配置Android環(huán)境
如果想編譯Android手機APP,必須要先自己配置好自己的Android環(huán)境。(搭建環(huán)境的過程可以自行百度搜索學(xué)習(xí))
然后才可以進(jìn)行下面的步驟。
【1】選擇Android編譯器
【2】創(chuàng)建Android配置文件
創(chuàng)建完成。
【3】配置Android圖標(biāo)與名稱
【3】編譯Android上位機
Qt本身是跨平臺的,直接選擇Android的編譯器,就可以將程序編譯到Android平臺。
然后點擊構(gòu)建。
成功之后,在目錄下可以看到生成的apk
文件,也就是Android手機的安裝包,電腦端使用QQ
發(fā)送給手機QQ,手機登錄QQ接收,就能直接安裝。
生成的apk
的目錄在哪里呢? 編譯完成之后,在控制臺會輸出APK文件的路徑。
知道目錄在哪里之后,在Windows的文件資源管理器里,找到路徑,具體看下圖,找到生成的apk文件。
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ā)
4.1 硬件接線說明
【1】 BC26-NBIOT模塊 接線
PA2------ >BC26的RXD
PA3------ >BC26的TXD
PB6------ >BC26的RST(復(fù)位腳)
GND---GND 地
VCC---VCC 電源(5.0V)
【2】 TFT 1.44 寸彩屏接線
GND 電源地
VCC 3.3v電源
SCL 接PC8(SCL)
SDA 接PC9(SDA)
RST 接PC10
DC 接PB7
CS 接PB8
BL 接PB11
【3】電力信息檢測模塊---波特率9600
PD2(RX) ----- >模塊的TXD
PC12(TX) ----- >模塊的RXD
VCC----------5V
GND----------GND
【4】蜂鳴器
GND----GND
VCC---3.3V
OUT---PC7
【5】MQ2煙霧濃度檢測
DO---PC0
AO---PA1
GND---GND 地
VCC---VCC 電源(5.0V)
【6】火焰檢測
GND----GND
VCC---5V
OUT---PC0
【7】人體檢測
GND----GND
VCC---5V
OUT---PC1
【7】門鎖開關(guān)
GND----GND
VCC---5V
OUT---PC2
【8】板載LED燈接線(這個不用接,這是開發(fā)板本身的)
LED1---PA8
LED2---PD2
【9】板載按鍵接線(這個不用接,這是開發(fā)板本身的)
K0---PA0
K1---PC5
K2---PA15
4.2 原理圖
4.3 框架圖
4.4 程序下載
打STM32的keil工程,編譯代碼、然后,使用USB線將開發(fā)板的左邊的USB口(串口1)與電腦的USB連接,打開程序下載軟件下載程序。
具體下載過程看下面圖:
打開程序下載軟件:[軟件就在資料包里的軟件工具目錄下]
4.5 程序正常運行效果
設(shè)備運行過程中會通過串口打印調(diào)試信息,我們可以通過串口打印了解程序是否正常。
程序下載之后,可以打開串口調(diào)試助手查看程序運行的狀態(tài)信息。[軟件就在資料包里的軟件工具目錄下]
4.6 主項目的邏輯代碼
當(dāng)前項目源碼已經(jīng)上傳到網(wǎng)盤:https://ccnr8sukk85n.feishu.cn/wiki/QjY8weDYHibqRYkFP2qcA9aGnvb?from=from_copylink
下面是提供的項目主項目的偽代碼
。展示整個項目的運行邏輯思路。
#include "stm32f10x.h"
#include "lcd.h"
#include "nbiot.h"
#include "mq2.h"
#include "flame_sensor.h"
#include "pir_sensor.h"
#include "power_module.h"
#include "door_lock.h"
#include "buzzer.h"
#include "keypad.h"
#include "usart.h"
#include "cloud_comm.h"
// 定義報警閾值
#define CURRENT_THRESHOLD 10.0
#define POWER_THRESHOLD 50.0
// 初始化函數(shù)聲明
void System_Init(void);
void Flame_Detection_Handler(void);
void Smoke_Detection_Handler(void);
void Human_Detection_Handler(void);
void Power_Monitoring_Handler(void);
void Door_Control_Handler(void);
int main(void) {
// 系統(tǒng)初始化
System_Init();
while (1) {
// 火焰檢測處理
Flame_Detection_Handler();
// 煙霧檢測處理
Smoke_Detection_Handler();
// 人體檢測處理
Human_Detection_Handler();
// 電力監(jiān)控處理
Power_Monitoring_Handler();
// 門磁控制處理
Door_Control_Handler();
// 其他操作,可以添加延時或功耗管理策略等
}
}
void System_Init(void) {
// 初始化外設(shè)和模塊
LCD_Init();
NBIOT_Init();
MQ2_Init();
FlameSensor_Init();
PIRSensor_Init();
PowerModule_Init();
DoorLock_Init();
Buzzer_Init();
Keypad_Init();
USART_Init();
CloudComm_Init();
LCD_DisplayString("System Initialized");
}
// 火焰檢測處理函數(shù)
void Flame_Detection_Handler(void) {
if (FlameSensor_Detect()) {
Buzzer_On();
LCD_DisplayString("Flame Detected!");
CloudComm_SendAlert("Flame detected in room!");
} else {
Buzzer_Off();
}
}
// 煙霧檢測處理函數(shù)
void Smoke_Detection_Handler(void) {
if (MQ2_DetectSmoke()) {
Buzzer_On();
LCD_DisplayString("Smoke Detected!");
CloudComm_SendAlert("Smoke detected in room!");
} else {
Buzzer_Off();
}
}
// 人體檢測處理函數(shù)
void Human_Detection_Handler(void) {
if (PIRSensor_Detect()) {
LCD_DisplayString("Human Detected");
CloudComm_SendData("Human detected in the room.");
}
}
// 電力監(jiān)控處理函數(shù)
void Power_Monitoring_Handler(void) {
float current = PowerModule_GetCurrent();
float power = PowerModule_GetPower();
// 顯示電力信息
LCD_DisplayPower(current, power);
// 超過閾值時報警并切斷電源
if (current > CURRENT_THRESHOLD || power > POWER_THRESHOLD) {
Buzzer_On();
LCD_DisplayString("Power Overload!");
PowerModule_Disconnect();
CloudComm_SendAlert("Power overload detected!");
} else {
Buzzer_Off();
}
}
// 門磁控制處理函數(shù)
void Door_Control_Handler(void) {
if (Keypad_Pressed()) {
DoorLock_Open();
CloudComm_SendData("Door opened via local keypad.");
}
// 遠(yuǎn)程開門請求處理
if (CloudComm_ReceiveCommand() == OPEN_DOOR_COMMAND) {
DoorLock_Open();
CloudComm_SendData("Door opened via remote control.");
}
}
4.7 MQTT協(xié)議設(shè)計
下面是BC26模塊的子模塊代碼框架,展示了如何利用BC26 NB-IoT模塊實現(xiàn)數(shù)據(jù)的初始化、發(fā)送和接收功能。
#include "bc26.h"
#include "usart.h"
#include < string.h >
// 發(fā)送和接收緩沖區(qū)
#define BC26_BUFFER_SIZE 256
static char txBuffer[BC26_BUFFER_SIZE];
static char rxBuffer[BC26_BUFFER_SIZE];
// 內(nèi)部函數(shù)聲明
static void BC26_SendCommand(const char* command);
static int BC26_WaitForResponse(const char* expectedResponse, uint32_t timeout);
// 初始化BC26模塊
void BC26_Init(void) {
// 配置USART用于通信
USART_Config();
// 復(fù)位BC26模塊
BC26_SendCommand("AT+NRBr");
if (BC26_WaitForResponse("OK", 5000) != 0) {
// 復(fù)位失敗處理
LCD_DisplayString("BC26 Reset Failed");
return;
}
LCD_DisplayString("BC26 Initialized");
// 配置BC26為NB-IoT網(wǎng)絡(luò)
BC26_SendCommand("AT+CGATT=1r"); // 附著網(wǎng)絡(luò)
if (BC26_WaitForResponse("OK", 3000) != 0) {
LCD_DisplayString("Network Attach Failed");
return;
}
// 配置MQTT連接(示例)
BC26_SendCommand("AT+QMTCFG="version",0,4r");
BC26_WaitForResponse("OK", 2000);
}
// 發(fā)送數(shù)據(jù)到云平臺
int BC26_SendData(const char* topic, const char* payload) {
// 設(shè)置發(fā)送MQTT消息
snprintf(txBuffer, sizeof(txBuffer), "AT+QMTPUB=0,0,0,0,"%s"r", topic);
BC26_SendCommand(txBuffer);
if (BC26_WaitForResponse(" >", 2000) != 0) {
return -1; // 等待消息提示失敗
}
// 發(fā)送實際消息負(fù)載
BC26_SendCommand(payload);
BC26_SendCommand("x1A"); // 結(jié)束符(Ctrl+Z)
return BC26_WaitForResponse("OK", 5000);
}
// 接收數(shù)據(jù)
int BC26_ReceiveData(char* buffer, size_t bufferSize) {
// 監(jiān)聽來自BC26的數(shù)據(jù)
size_t len = USART_ReceiveData(buffer, bufferSize, 1000);
if (len > 0) {
buffer[len] = '?'; // 確保字符串以NULL結(jié)尾
return len;
}
return 0; // 無數(shù)據(jù)接收
}
// 內(nèi)部函數(shù)實現(xiàn)
// 發(fā)送命令
static void BC26_SendCommand(const char* command) {
USART_SendString(command);
}
// 等待特定響應(yīng)
static int BC26_WaitForResponse(const char* expectedResponse, uint32_t timeout) {
uint32_t startTime = HAL_GetTick();
while ((HAL_GetTick() - startTime) < timeout) {
size_t len = USART_ReceiveData(rxBuffer, sizeof(rxBuffer) - 1, 100);
if (len > 0) {
rxBuffer[len] = '?';
if (strstr(rxBuffer, expectedResponse) != NULL) {
return 0; // 找到期望響應(yīng)
}
}
}
return -1; // 超時或失敗
}
4.8 MQ2煙霧檢測
在這個項目中,MQ2傳感器用于煙霧檢測。MQ2傳感器的輸出是一個模擬信號,需要通過ADC(模擬到數(shù)字轉(zhuǎn)換器)讀取數(shù)據(jù),并根據(jù)讀取的值來判斷是否發(fā)生煙霧或氣體泄漏。
#include "stm32f10x.h"
#include "MQ2.h"
#include "stdio.h"
#define MQ2_ADC_CHANNEL 0 // 假設(shè)MQ2連接在ADC通道0
#define MQ2_THRESHOLD 3000 // 假設(shè)閾值為3000,可以根據(jù)實際情況調(diào)整
// 定義函數(shù)原型
void MQ2_Init(void);
uint16_t MQ2_Read(void);
void MQ2_Process(void);
// 初始化MQ2傳感器
void MQ2_Init(void) {
// 配置ADC
ADC_InitTypeDef ADC_InitStructure;
ADC_CommonInitTypeDef ADC_CommonInitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
// 開啟ADC和GPIO時鐘
RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA, ENABLE);
// 配置GPIO:假設(shè)MQ2傳感器連接在PA0引腳
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; // 設(shè)置為模擬輸入模式
GPIO_Init(GPIOA, &GPIO_InitStructure);
// 配置ADC
ADC_CommonInitStructure.ADC_Mode = ADC_Mode_Independent;
ADC_CommonInitStructure.ADC_Prescaler = ADC_Prescaler_Div2; // 設(shè)置ADC預(yù)分頻器
ADC_CommonInitStructure.ADC_DMAAccessMode = ADC_DMAAccessMode_Disabled;
ADC_CommonInitStructure.ADC_TwoSamplingDelay = ADC_TwoSamplingDelay_5Cycles;
ADC_CommonInit(&ADC_CommonInitStructure);
ADC_InitStructure.ADC_ScanConvMode = DISABLE; // 單通道模式
ADC_InitStructure.ADC_ContinuousConvMode = ENABLE; // 連續(xù)轉(zhuǎn)換
ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_T1_CC1; // 軟件觸發(fā)
ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right; // 右對齊
ADC_InitStructure.ADC_NbrOfChannel = 1; // 只有一個通道
ADC_Init(ADC1, &ADC_InitStructure);
// 啟動ADC
ADC_Cmd(ADC1, ENABLE);
ADC_ResetCalibration(ADC1);
while (ADC_GetFlagStatus(ADC1, ADC_FLAG_ADEN) == RESET);
ADC_StartCalibration(ADC1);
while (ADC_GetFlagStatus(ADC1, ADC_FLAG_ADCAL) != RESET);
}
// 讀取MQ2傳感器數(shù)據(jù)
uint16_t MQ2_Read(void) {
ADC_SoftwareStartConvCmd(ADC1, ENABLE); // 啟動轉(zhuǎn)換
while (ADC_GetFlagStatus(ADC1, ADC_FLAG_EOC) == RESET); // 等待轉(zhuǎn)換完成
return ADC_GetConversionValue(ADC1); // 返回轉(zhuǎn)換結(jié)果
}
// 處理MQ2傳感器數(shù)據(jù)
void MQ2_Process(void) {
uint16_t MQ2_value = MQ2_Read();
printf("MQ2 Sensor Value: %dn", MQ2_value);
// 判斷是否超過煙霧閾值
if (MQ2_value > MQ2_THRESHOLD) {
printf("Warning: Smoke detected!n");
// 在此觸發(fā)報警或者其他動作,比如蜂鳴器
// Beeper_Alarm();
} else {
printf("No smoke detected.n");
}
}
代碼說明
- MQ2_Init函數(shù) :初始化ADC和GPIO模塊,為讀取MQ2傳感器的模擬信號做準(zhǔn)備。GPIOA引腳0被配置為模擬輸入模式,供ADC讀取數(shù)據(jù)。ADC1的相關(guān)配置包括單通道模式、連續(xù)轉(zhuǎn)換模式以及數(shù)據(jù)右對齊。
- MQ2_Read函數(shù) :啟動ADC轉(zhuǎn)換,等待轉(zhuǎn)換完成后返回轉(zhuǎn)換值。這個值是MQ2傳感器的模擬電壓值被轉(zhuǎn)換成的數(shù)字信號。根據(jù)這個值,可以推斷煙霧的濃度。
- MQ2_Process函數(shù) :這是一個高層處理函數(shù),它讀取MQ2傳感器的值,并判斷值是否超過預(yù)設(shè)的閾值。如果超過閾值,則認(rèn)為發(fā)生了煙霧或有害氣體泄漏,并進(jìn)行報警處理(此處通過打印信息顯示報警狀態(tài))。
五、總結(jié)
本項目設(shè)計并實現(xiàn)了一種基于STM32微控制器和NB-IoT通信技術(shù)的宿舍安防控制系統(tǒng),結(jié)合了多種傳感器和智能控制模塊,提供了全方位的安全保障。通過硬件和軟件的綜合設(shè)計,系統(tǒng)能夠?qū)崟r監(jiān)測宿舍環(huán)境的各種安全參數(shù),并能夠在發(fā)生火焰、煙霧、電氣異常等危險情況時自動觸發(fā)報警。項目的主要功能包括火焰檢測、煙霧檢測、門磁控制、人體感應(yīng)、電氣監(jiān)測以及遠(yuǎn)程數(shù)據(jù)監(jiān)控,充分實現(xiàn)了智能化安防的目標(biāo)。
系統(tǒng)特點
- 多種傳感器集成 :系統(tǒng)集成了MQ2煙霧傳感器、火焰?zhèn)鞲衅?、人體感應(yīng)傳感器、電流電壓采集模塊等硬件,能夠多角度實時檢測宿舍內(nèi)的安全狀況。
- 報警和控制功能 :當(dāng)檢測到火焰、煙霧、人體移動或電氣參數(shù)異常時,系統(tǒng)會通過蜂鳴器報警,并可以通過本地按鍵或遠(yuǎn)程控制(通過手機APP或PC上位機)進(jìn)行門鎖控制和其他應(yīng)急措施。
- 電氣監(jiān)測與保護(hù) :系統(tǒng)具備電氣監(jiān)測功能,能夠?qū)崟r檢測直流電和單相交流電的電壓、電流、功率等參數(shù),并在電流或功率超過設(shè)定閾值時自動切斷電源,確保用電安全。
- 數(shù)據(jù)云端管理 :通過NB-IoT通信模塊和MQTT協(xié)議,系統(tǒng)能夠?qū)⒉杉降臄?shù)據(jù)上傳至華為云物聯(lián)網(wǎng)平臺,實現(xiàn)數(shù)據(jù)的遠(yuǎn)程監(jiān)控和設(shè)備的遠(yuǎn)程管理。用戶可以通過Android手機APP遠(yuǎn)程查看設(shè)備狀態(tài)、調(diào)整參數(shù)并進(jìn)行控制。
- 本地顯示功能 :1.44寸LCD顯示屏提供了實時的本地數(shù)據(jù)顯示,用戶可以直接在本地查看傳感器的實時數(shù)據(jù)和報警狀態(tài),增強了系統(tǒng)的用戶友好性和可操作性。
項目實現(xiàn)過程
項目的實現(xiàn)過程中,在硬件設(shè)計階段選擇了合適的傳感器和控制模塊,確保能夠高效地進(jìn)行火焰、煙霧、人體感應(yīng)及電氣參數(shù)的實時檢測。STM32F103RCT6微控制器作為主控芯片,提供了足夠的處理能力來支持各個傳感器的數(shù)據(jù)采集和處理。
在軟件開發(fā)方面,使用Keil5開發(fā)環(huán)境,編寫了包括硬件初始化、傳感器數(shù)據(jù)采集、報警邏輯、LCD顯示及NB-IoT通信的完整代碼。數(shù)據(jù)上傳功能通過MQTT協(xié)議實現(xiàn),確保了數(shù)據(jù)能夠穩(wěn)定、安全地傳輸?shù)皆贫似脚_。
遇到的挑戰(zhàn)與解決方案
- 傳感器調(diào)試與靈敏度調(diào)整 :由于不同傳感器對環(huán)境因素的響應(yīng)差異較大,調(diào)試過程中需要精確設(shè)置各傳感器的閾值。例如,MQ2煙霧傳感器對氣體的反應(yīng)受環(huán)境濕度、溫度等因素的影響較大,通過反復(fù)測試和調(diào)整,最終確定了合理的觸發(fā)閾值。
- NB-IoT通信穩(wěn)定性 :NB-IoT模塊需要良好的信號覆蓋以保證數(shù)據(jù)上傳的穩(wěn)定性。為此,項目在硬件設(shè)計時加強了天線的布置,并對NB-IoT模塊的參數(shù)進(jìn)行了多次優(yōu)化測試,確保了數(shù)據(jù)傳輸?shù)目煽啃浴?/li>
- 系統(tǒng)功耗優(yōu)化 :由于該系統(tǒng)需要長時間運行,為了延長設(shè)備的使用壽命,采用了低功耗設(shè)計,如適時的休眠模式和合理的電源管理策略,確保了系統(tǒng)的高效能和低功耗。
項目創(chuàng)新點
- 集成化設(shè)計 :本項目通過將多種傳感器(如火焰、煙霧、人體、氣體、電氣參數(shù)等)和控制模塊(如門鎖控制、蜂鳴器報警)集成在一個系統(tǒng)中,實現(xiàn)了全方位的安防監(jiān)控,提升了宿舍的安全性。
- 云端與遠(yuǎn)程控制 :通過NB-IoT通信和MQTT協(xié)議,系統(tǒng)不僅支持本地控制,還可以通過云平臺進(jìn)行遠(yuǎn)程管理和控制。這種設(shè)計為宿舍管理者提供了便捷的實時監(jiān)控和遠(yuǎn)程操作功能,增強了系統(tǒng)的智能化和便捷性。
- 數(shù)據(jù)安全與監(jiān)控 :通過將實時監(jiān)測數(shù)據(jù)上傳到華為云物聯(lián)網(wǎng)平臺,確保了數(shù)據(jù)的安全存儲與備份,同時用戶可以隨時查看設(shè)備狀態(tài),并根據(jù)實際情況進(jìn)行調(diào)整,保證了宿舍環(huán)境的安全和舒適。
審核編輯 黃宇
-
單片機
+關(guān)注
關(guān)注
6039文章
44579瀏覽量
636452 -
控制系統(tǒng)
+關(guān)注
關(guān)注
41文章
6635瀏覽量
110687 -
STM32
+關(guān)注
關(guān)注
2270文章
10910瀏覽量
356584
發(fā)布評論請先 登錄
相關(guān)推薦
評論