新聞中心

        EEPW首頁 > 物聯網與傳感器 > 設計應用 > 基于STM32單片機的智能家居測量系統設計*

        基于STM32單片機的智能家居測量系統設計*

        作者:張智勇,曹穎,劉梓博,王曉玲(北京信息科技大學儀器科學與光電工程學院,北京100192) 時間:2022-04-19 來源:電子產品世界 收藏
        編者按:為實現家居智能化的監控管理并且測量其溫度、空氣成分以及煙霧等重要數據,設計了基于STM32單片機的智能家居測量系統。硬件設計部分使用STM32單片機,并設計主電路;軟件設計中設置自動檢測家庭環境數據并實現實時上傳云端,完成智能家具測量系統。仿真實驗表明,該系統在一般環境和復雜環境中都有較高的測量精度和實時上傳云端功能。

        *本項目受北京信息科技大學大學生創新項目支持,項目編號:5102110802

        本文引用地址:http://www.104case.com/article/202204/433249.htm

        當今的家庭生活面臨著各種環境和健康問題,周圍的生活參數存在潛在的隱患,包括室溫、氣體中有害物質的濃度等。在新時代,人們越來越關注健康及其相關因素。隨著微電子技術的應用,電器的普及,以及和傳感器性能的快速提高,它可以通過和傳感器實現對室內各種環境參數的實時監測。進行調整,使生活體驗更好[1]。當前已經可以實現基本環境數據的測量,但是目前在實際應用當中存在成本高、可測量數據少、無法進行實時調控、行業標準不統一、跨領域協作困難等問題[2]。

        針對上述問題,為實現的價格合理化、標準化、簡易操作、注重使用者體驗、全面性等發展趨勢。開發基于 的智能家居測量系統本設計主要論述了由單片機控制的室內環境監測裝置,以實現數字化和智能化。各種室內環境參數可以通過顯示裝置實時顯示在用戶面前,再通過報警電路,用戶可以根據環境情況及時采取相應措施,從而享受更健康、更安全的生活[3]。

        1   智能家居測量系統總體設計方案

        該系統由硬件系統、原子云服務器和移動設備三部分組成??傮w方案結構如圖所示。硬件系統由單片機、傳感器模塊、Wi-Fi(wireless fidelity,無線網絡通信技術)無線模塊、電源模塊等組成。單片機作為硬件系統的主控芯片,對傳感器模塊采集的家庭環境信息進行處理,電源模塊為整個硬件系統的各個模塊供電[4]。原子云服務器作為本系統的中轉站與硬件系統交互環境信息,并對登錄信息進行處理,當用戶在移動端設備界面中請求時將環境信息發送給界面,實現實時回傳檢測數據[5]。當界面中有控制請求信息時,對控制信息進行處理,移動端設備界面中包含注冊界面、登錄界面、控制界面三大模塊,環境信息的顯示及警報均在控制界面中實現[6]。如圖1 為系統工作流程圖。

        1650351884913281.png

        圖1 系統工作流程

        2   系統硬件設計

        2.1 單片機

        選擇 單片機作為智能家居控制系統的主控中心,實現系統高性能、低功耗的應用需求。本文選用正點原子生產的STM32F407 單片機系統,STM32F407提供了工作頻率為168 MHz 的Cortex-M4 內核(具有浮點單元)的性能。

        2.2 主電路設計

        首先,設計外圍電路,包含空氣成分傳感器、溫濕度傳感器、煙霧傳感器、攝像頭模塊。其次添加了Wi-Fi 模塊,使系統具備遠程通信,控制以及觸發警報的功能。除此之外,還包括微控制電路、串口電路以及串口通信電路等多個外圍電路。

        大量實驗表明,最適宜人的溫濕度是:夏天溫度20~27 ℃,濕度為30%~60%;冬天溫度18~25 ℃,濕度為30%~80%。一般情況下, 室內溫度控制在18~26 ℃,濕度為30%~70% 時,人體感覺最舒適。因此對室內進行溫度、濕度、空氣質量等參數檢測,并通過遠程控制進行調整能獲得人體舒適的家居環境。

        2.3 傳感器設計

        2.3.1 溫濕度傳感器

        BME680 環境傳感器是一款MEMS(micro-electromechanical system,微機電系統) 的環境傳感器,可測量溫度濕度參數,非常適用于監測空氣數據。由于采用了MEMS 技術,該傳感器的體積非常小,功耗低,因此也適用于低功率場合,如可穿戴家居設備。

        2.3.2 煙霧氣體傳感器

        MQ-2 煙霧氣體傳感器模塊是用于監控煙霧氣體(例如液化氣和天然氣) 的模塊。它具有信號輸出指示和雙信號輸出的特點。可直接連接單片機,模擬輸出0-5 V 電壓,濃度越高,電壓越高。對液化氣,天然氣和城市燃氣具有良好的敏感性。具有長期使用壽命和可靠的穩定性,并具有快速響應恢復的特點。

        2.3.3 空氣質量傳感器

        SGP30 氣體傳感器模塊TVOC/eCO2 空氣質量甲醛二氧化碳測量模塊。SGP30 是一種金屬氧化物氣體傳感器,在單個芯片上具有多個傳感器元件。四個氣體傳感元件集成在其中,并具有完全校準的空氣質量輸出信號。此外,SGP 易于集成,可以將金屬氧化物氣體傳感器集成到移動設備中,為智能家居,家用電器和物聯網應用中的環境監控開辟了新的可能性。

        2.3.4 WIFI模塊

        該模塊使用串口(LVTTL) 與MCN( 或其他串口設備)通信,并內置TCP/IP 協議棧,可實現串口和Wi-Fi 之間的轉換。該模塊支持串口到Wi-Fi STA,串口到AP 和Wi-Fi STA + Wi-Fi AP 模式,從而快速構建串口-Wi-Fi 數據傳輸方案。該模塊體積小,通過6個2.54 毫米的間距引腳連接到外部,并且可以免費連接到原子云服務器。

        3   系統軟件設計

        設計需要用到STM32F407 單片機上集成的電路系統,另外加裝外部傳感器,在環境參數超過人體健康范圍的時候,使用單片機上集成的蜂鳴器發出警報聲,使用聲音警示環境變化[7]。

        家庭環境參數使用傳感器來收集信號。該功能與人類的感官一致,并且處于所有信息處理系統的最前沿[8]。傳感器類型的選擇應考慮傳感器參數的設計要求,如測量范圍、穩定性等,然后對每個測量參數進行不同的測試,最后以實際結果為準,選擇最佳選擇計劃[9]。通過對傳感信號采集和處理,單片機系統根據篩選結果分為數據采集、校正、分析和報警[10]。為保證信號的準確性,首先,主控芯片數字值進行校正和補償,并對數據的準確性進行綜合分析,是否超過設定的限值,否則報警[11]。

        3.1 數據采集前端軟件設計

        按照中華人民共和國GB/T1883-2002《室內空氣質量標準》,確定了室內溫度、濕度、有毒氣體含量等相關正常參數的范圍。根據居家生活實際環境與國家標準確定傳感器的工作模式,將其成本和體積降低,進一步提高性價比。一旦確定了測量參數,即著手制定一個總體設計計劃[12]。

        程序的一般流程如圖2 所示。首先啟動系統,然后各單片機和傳感器模塊開始工作。MQ-2 傳感器對空氣中有毒物質的濃度進行實時檢測,如果達到預定限度,就會向單片機發送信號。如果接收到信號,它會發出警報。如果沒有,它將繼續被檢測。BME680 溫濕度傳感器和SGP30 空氣質量傳感器同時實時采集室內空氣成分含量,并將參數發送至單片機。單片機收到對Wi-Fi無線模塊的請求后,通過串口向Wi-Fi 模塊傳輸數據,Wi-Fi 模塊透明實時傳輸數據。使用者可以在移動設備端登陸云賬號并查詢實時測量的家庭環境數據。圖2 為系統總體設計的工作流程圖。

        1650352329110121.png

        圖2 系統總體設計流程

        系統軟件設計流程復雜,涉及面廣,包括數據硬件軟件、原子云服務器設計、移動終端硬件設計,這是首次推出各傳感器模塊采集環境信息和監控控制系統名稱信息。通過端口發送,服務器接收對設備的控制。指令過程中,可將數據通過網絡傳輸至界面屏,通過無線通訊、數據采集、發送、發送等方式讀取數據,進而實現報警作用。

        3.2 數據處理方法

        在前端過濾錯誤數據后,執行下一個數據操作。首先,在配置功能中,在寄存器中獲取相關數據分析功能,以進一步獲取所需數據。以下以BME680 傳感器舉例。

        首先與BME680 進行交互,但是BME680 的讀寫取決于特定的硬件平臺,因此它們被操作為對象。在執行相關操作時,如果需要控制時序,則需要使用延遲操作。延遲處理始終取決于特定的軟件和硬件平臺,因此延遲處理被視為對象的操作。而使用SPI(serial peripheral interface,串行外設接口)時,沒有設備地址但有片選信號,如何操作片選信號依賴于硬件平臺,將對片選的操作定義為對象的操作函數。一個對象必須對其進行初始化才可使用。初始化對象主要有四個方面的內容:檢查對象賦值的合法性;屬性賦初值;為對象操作指定函數指針;對象所指向設備的初始配置。通常一些設備需要定義操作碼來實現讀寫區分,但BME680 采取了將寄存器地址的最高位置零表示為寫。之所以可以這樣定義,是因為BME680 寄存器地址分配的特殊性決定的。改變寄存器地址的最高位也能區分不同的寄存器,絕不會重復。

        BME680 環境傳感器支持SPI 和I2C(I2C總線)接口,SPI 也支持3 線和4 線模式,但在測試應用中只使用I2C 接口,SPI 接口還有待測試。BME680 環境傳感器在使用SPI 接口時支持SPI 模式0(CPOL = CPHA = 0) 和模式3(CPOL = CPHA = 1)。使用I2C 接口時,支持標準模式、快速模式和高速模式。而且在使用I2C 接口時,SDO 引腳必須接高電平或低電平,以確定設備地址。

        聲明不能立即使用此對象變量,并且需要使用驅動程序中定義的初始化函數來初始化此變量。BME680 環境傳感器有一個測量范圍寄存器。這個寄存器的值對應于兩組計算常數。這兩組常數用于計算測量值。一般來說,BME680 環境傳感器本身的讀寫操作并不復雜,但是計算和校正之間的關系相對復雜,尤其是空氣質量數據更應該注意這種校正關系[13]。另外傳感器與上述BME680 傳感器數據處理方法基本類似,相似算法本文不做過多贅述。

        3.2 云服務器軟件設計

        UI 界面作為用戶與MCU 系統之間的交互界面,可以提高用戶的直觀感覺。但是,UI 接口不能直接與MCU 系統交互,需要服務器作為傳輸來實現它們之間的信息傳輸。因此,設計了系統的UI 界面和服務器。考慮到QT 具有可用C++ 編寫UI 框采用QT 進行UI界面設計。此外,由于TCP 服務器在應對多網關數據同時接入時會存在一定的性能損耗,本系統采用基于Linux 下的C 語言編程設計原子云服務器。

        4   系統可靠性測試和傳感器標定

        4.1 系統可靠性測試

        4.1.1 居家環境測試

        系統穩定性與可靠性的低下會直接導致抗干擾能力較差。單片機的應用范圍遠遠超過了計算機和其他計算設備的總和,計算機工程的許多實際應用往往會產生比人類更多的控制程序。在這種情況下,很多技術人員往往會選擇同時使用多個控制程序,相互補充完善。但是需要注意的是,在這個過程中,軟件干擾是不活躍的,而硬件干預是活躍的。所以達到較高的抗干擾能力。只有技術人員將硬件與軟件抗干擾相結合,并且在這一過程中更加細致周到地分析干擾源,才能夠真正地起到完善系統穩定性的效果。

        智能家居測量系統在實際居家環境中測試記錄各傳感器數據,并制成如圖3 至圖6。

        image.png

        圖3 溫度濕度

        image.png

        圖4 氣壓

        image.png

        圖5 天然氣/VTOC含量

        image.png

        圖6 二氧化碳含量

        分析上述折線圖可得,日溫濕度曲線變化從上午八點到十二點是呈上升曲線,一般環境溫濕度會隨著日出而變化。氣壓折線圖有一個上升曲線,查閱資料得知,一天中,氣壓有一個最高值、一個最低值,分別出現在9~10 時和15~16 時,還有一個次高值和一個次低值,分別出現在21~22 時和3~4 時。氣壓日變化幅度較小,一般為0.1~0.4 kPa,并隨緯度增高而減小。二氧化碳折線圖有小幅度的波動,經分析得出,這樣的波動在誤差范圍內,是由于居家人數變化造成的數據輕微波動,峰值的出現不影響參數總體的測量。

        4.1.2 測試結果分析

        實測數據是一周內同一時間段同一環境下固定測量結果,取加權平均之后得到以上折線圖。如圖得到傳感器的測量數據可知,在實際居家環境中,環境數據時刻在變化,系統整體穩定性可靠,可保證長時間工作不會過熱死機,傳感器可持續穩定的工作。

        4.2 傳感器定標

        測試系統在真實家居環境中的工作狀態,得到真實的傳感器采樣數據,反饋到相應的傳感器數據計算函數。在更高精度的傳感器同測量環境下進行對標,以獲取更高精度的測量數據。

        因為本測量系統涉及多個傳感器同時工作,遂即采用單獨定標法。由于傳感器的設計不同,零件的加工存在誤差,以及裝配調整狀態不完全相同的因素,校準后每個傳感器的靈敏度不一致。但是,從用戶使用的角度來看,希望同一型號的產品應具有相同的靈敏度,輸入阻抗和其他技術參數,并且初始零輸出應盡可能細微,從而最大限度地減少在使用中調整系統的工作量,最大限度地提高測量精度。傳感器輸入和輸出之間的工作特性與非線性,滯后和非重復性問題有關。與線性傳感器相比,最好的解決方案是在每個傳感器測得的實際標準曲線中擬合一條直線,并且每個最大偏差曲線與直線的偏差將最小。例如,具有相同特性的傳感器具有最高的精度。校準線可以用線性方程y = kx + B表示,因為方程中的B 是傳感器輸出零的初始值,k 是傳感器輸出的靈敏度斜率。其中,xy 是來自傳感器的實驗( 校準)數據,因此通常使用平均斜率法或最小二乘法來處理并獲得直線。如圖7 為最小二乘法擬合曲線圖。

        image.png

        圖7 最小二乘法擬合曲線

        4.2.2 定標結果分析

        綜合測試結果的主要內容是對溫濕度傳感器、煙霧氣體傳感器、空氣質量傳感器進行靜態定標、動態定標以及補償。靜態定標或靜態校準的方法可以獲得測量系統的靜態特性。本次傳感器定標校準操作過程簡單,但是耗時較多,主要是多次重復性測量。得出各個傳感器需要進行改善才可以擁有良好的靜態特性,這是需要通過計算傳感器的靜態性能指標。對上述數據分別采用了分段擬合和分段直線擬合兩種方法,保證了遲滯、精度和重復性的要求。通過擬合測試得到靜態定標的基本方法,熟悉了數據處理的過程。測試系統的動態特性是其內的一種屬性,這種屬性只有系統受到激勵之后才能明顯表現出來,并且這隱含在系統的響應之中。階躍響應法是以階躍信號作為測試系統的輸入,通過對系統的輸出響應的測試,從中計算出系統的動態特性參數。本次定標已經知道上述傳感器的動態特性符合一階模型,所以用階躍響應法可方便測出。

        5   系統的提升與改進

        智能家居測量系統相比較傳統機械儀表測量,其功能全面性、智能化程度更高,可更快速便捷的獲取實時數據。體積較小,集成化程度高,現已成為智能設備未來的發展新方向。在較為傳統的機械儀表測量系統中,環境數據的監測需要依靠傳統的機械測量方式,有誤差大、反應慢、測量周期長等缺點,并且存在危害性環境不適宜機械儀器測量。但是智能家居測量系統正好克服這些缺點,因為其工作環境可以與監測顯示系統分開,做到云上傳數據并且云讀取。這樣大大減少了危害環境下對人體的傷害,并且可以做到在環境指數超標時及時警報提醒。對家居環境實時測量以抑制復雜環境對人可能造成的有害影響。集成化智能家居測量系統可以很大程度的節約成本,降低使用難度,并且在單一傳感器出現故障的時候可以更換維修,降低維護成本。集成化的環境測量系統體積較小,耗能少,可與智能手機智能云互聯,在外也可實時讀取家庭環境數據。

        參考文獻:

        [1] 林學偉,嚴明忠.基于STM32單片機的智能家居控制系統設計[J].廊坊師范學院學報(自然科學版),2020.20(4):35-38.

        [2] 余云飛,朱得元,章平.基于Arduino和ESP8266的多終端智能家居控制平臺的設計與實現[J].安慶師范大學學報(自然科學版),2019,25(3):36-40.

        [3] 劉璐,袁戰軍,王希娟.基于ARM及ZigBee的智能家居遠程監控系統的設計與實現[J].電子設計工程,2019,27(11):136-140+145.

        [4] 鄭凱,姜毅,趙永生.基于STM32單片機實驗平臺的測控綜合實踐教學探索[J].教育現代化,2020,47(53):12-14+18.

        [5] 熊斯鵬,黃敏.基于STM32單片機動力環境監控終端的設計與實現[J].電子產品世界,2020,27(2):74-76.

        [6] 王洪生.基于單片機與傳感器的智能家居環境監測系統設計[J].智能應用,2020.22.(9):24-27.

        [7] 胡學芝,程海博,南光群.基于STM32的智能家居系統設計與實現[J].湖北理工學院學報,2018,34(1):1-4.

        [8] 馮偉.單片機應用系統可靠性的影響因素以及測試方法分析[J].技術交流,2016.10.(93):130.

        [9] 陳建新.DHT11數字溫濕度傳感器在溫室控制系統中的應用[J].山東工業技術,2016(18):120.

        [10] 幸聯星.基于單片機的智能家居環境檢測系統設計[J].電子技術與軟件工程,2020(1):59-61.

        [11] 徐艇,張衛強,胡建平等.基于傳感技術的室內監護系統設計[J].傳感器與微系統,2019,38(2): 59-62.

        [12] Y X Lin,R Kong,R B She,et al. Design and Implementation of Remote/Short-range Smart Home Monitoring System Based on ZigBee and STM32 [Z].STMicroelectronics,2013.2040-7459.

        (本文來源于《電子產品世界》雜志2022年4月期)



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳城县| 马关县| 连城县| 革吉县| 福泉市| 长泰县| 武邑县| 扬州市| 惠来县| 洛扎县| 沧源| 徐水县| 苍梧县| 井研县| 瓮安县| 钦州市| 常宁市| 宁国市| 新泰市| 阳谷县| 南靖县| 嘉兴市| 金山区| 五家渠市| 盐池县| 康定县| 凤阳县| 台北市| 马山县| 盐山县| 乐至县| 太仆寺旗| 洪洞县| 冷水江市| 景谷| 富锦市| 万载县| 稻城县| 吴忠市| 石柱| 饶阳县|