基于STM32單片機的智能家居測量系統(tǒng)設(shè)計*
*本項目受北京信息科技大學(xué)大學(xué)生創(chuàng)新項目支持,項目編號:5102110802
本文引用地址:http://m.butianyuan.cn/article/202204/433249.htm當(dāng)今的家庭生活面臨著各種環(huán)境和健康問題,周圍的生活參數(shù)存在潛在的隱患,包括室溫、氣體中有害物質(zhì)的濃度等。在新時代,人們越來越關(guān)注健康及其相關(guān)因素。隨著微電子技術(shù)的應(yīng)用,電器的普及,以及單片機和傳感器性能的快速提高,它可以通過單片機和傳感器實現(xiàn)對室內(nèi)各種環(huán)境參數(shù)的實時監(jiān)測。進(jìn)行調(diào)整,使生活體驗更好[1]。當(dāng)前智能家居測量系統(tǒng)已經(jīng)可以實現(xiàn)基本環(huán)境數(shù)據(jù)的測量,但是目前智能家居測量系統(tǒng)在實際應(yīng)用當(dāng)中存在成本高、可測量數(shù)據(jù)少、無法進(jìn)行實時調(diào)控、行業(yè)標(biāo)準(zhǔn)不統(tǒng)一、跨領(lǐng)域協(xié)作困難等問題[2]。
針對上述問題,為實現(xiàn)智能家居測量系統(tǒng)的價格合理化、標(biāo)準(zhǔn)化、簡易操作、注重使用者體驗、全面性等發(fā)展趨勢。開發(fā)基于STM32 單片機的智能家居測量系統(tǒng)本設(shè)計主要論述了由單片機控制的室內(nèi)環(huán)境監(jiān)測裝置,以實現(xiàn)數(shù)字化和智能化。各種室內(nèi)環(huán)境參數(shù)可以通過顯示裝置實時顯示在用戶面前,再通過報警電路,用戶可以根據(jù)環(huán)境情況及時采取相應(yīng)措施,從而享受更健康、更安全的生活[3]。
1 智能家居測量系統(tǒng)總體設(shè)計方案
該系統(tǒng)由硬件系統(tǒng)、原子云服務(wù)器和移動設(shè)備三部分組成??傮w方案結(jié)構(gòu)如圖所示。硬件系統(tǒng)由單片機、傳感器模塊、Wi-Fi(wireless fidelity,無線網(wǎng)絡(luò)通信技術(shù))無線模塊、電源模塊等組成。單片機作為硬件系統(tǒng)的主控芯片,對傳感器模塊采集的家庭環(huán)境信息進(jìn)行處理,電源模塊為整個硬件系統(tǒng)的各個模塊供電[4]。原子云服務(wù)器作為本系統(tǒng)的中轉(zhuǎn)站與硬件系統(tǒng)交互環(huán)境信息,并對登錄信息進(jìn)行處理,當(dāng)用戶在移動端設(shè)備界面中請求時將環(huán)境信息發(fā)送給界面,實現(xiàn)實時回傳檢測數(shù)據(jù)[5]。當(dāng)界面中有控制請求信息時,對控制信息進(jìn)行處理,移動端設(shè)備界面中包含注冊界面、登錄界面、控制界面三大模塊,環(huán)境信息的顯示及警報均在控制界面中實現(xiàn)[6]。如圖1 為系統(tǒng)工作流程圖。
圖1 系統(tǒng)工作流程
2 系統(tǒng)硬件設(shè)計
2.1 STM32單片機
選擇STM32 單片機作為智能家居控制系統(tǒng)的主控中心,實現(xiàn)系統(tǒng)高性能、低功耗的應(yīng)用需求。本文選用正點原子生產(chǎn)的STM32F407 單片機系統(tǒng),STM32F407提供了工作頻率為168 MHz 的Cortex-M4 內(nèi)核(具有浮點單元)的性能。
2.2 主電路設(shè)計
首先,設(shè)計外圍電路,包含空氣成分傳感器、溫濕度傳感器、煙霧傳感器、攝像頭模塊。其次添加了Wi-Fi 模塊,使系統(tǒng)具備遠(yuǎn)程通信,控制以及觸發(fā)警報的功能。除此之外,還包括微控制電路、串口電路以及串口通信電路等多個外圍電路。
大量實驗表明,最適宜人的溫濕度是:夏天溫度20~27 ℃,濕度為30%~60%;冬天溫度18~25 ℃,濕度為30%~80%。一般情況下, 室內(nèi)溫度控制在18~26 ℃,濕度為30%~70% 時,人體感覺最舒適。因此對室內(nèi)進(jìn)行溫度、濕度、空氣質(zhì)量等參數(shù)檢測,并通過遠(yuǎn)程控制進(jìn)行調(diào)整能獲得人體舒適的家居環(huán)境。
2.3 傳感器設(shè)計
2.3.1 溫濕度傳感器
BME680 環(huán)境傳感器是一款MEMS(micro-electromechanical system,微機電系統(tǒng)) 的環(huán)境傳感器,可測量溫度濕度參數(shù),非常適用于監(jiān)測空氣數(shù)據(jù)。由于采用了MEMS 技術(shù),該傳感器的體積非常小,功耗低,因此也適用于低功率場合,如可穿戴家居設(shè)備。
2.3.2 煙霧氣體傳感器
MQ-2 煙霧氣體傳感器模塊是用于監(jiān)控?zé)熿F氣體(例如液化氣和天然氣) 的模塊。它具有信號輸出指示和雙信號輸出的特點??芍苯舆B接單片機,模擬輸出0-5 V 電壓,濃度越高,電壓越高。對液化氣,天然氣和城市燃?xì)饩哂辛己玫拿舾行浴>哂虚L期使用壽命和可靠的穩(wěn)定性,并具有快速響應(yīng)恢復(fù)的特點。
2.3.3 空氣質(zhì)量傳感器
SGP30 氣體傳感器模塊TVOC/eCO2 空氣質(zhì)量甲醛二氧化碳測量模塊。SGP30 是一種金屬氧化物氣體傳感器,在單個芯片上具有多個傳感器元件。四個氣體傳感元件集成在其中,并具有完全校準(zhǔn)的空氣質(zhì)量輸出信號。此外,SGP 易于集成,可以將金屬氧化物氣體傳感器集成到移動設(shè)備中,為智能家居,家用電器和物聯(lián)網(wǎng)應(yīng)用中的環(huán)境監(jiān)控開辟了新的可能性。
2.3.4 WIFI模塊
該模塊使用串口(LVTTL) 與MCN( 或其他串口設(shè)備)通信,并內(nèi)置TCP/IP 協(xié)議棧,可實現(xiàn)串口和Wi-Fi 之間的轉(zhuǎn)換。該模塊支持串口到Wi-Fi STA,串口到AP 和Wi-Fi STA + Wi-Fi AP 模式,從而快速構(gòu)建串口-Wi-Fi 數(shù)據(jù)傳輸方案。該模塊體積小,通過6個2.54 毫米的間距引腳連接到外部,并且可以免費連接到原子云服務(wù)器。
3 系統(tǒng)軟件設(shè)計
設(shè)計需要用到STM32F407 單片機上集成的電路系統(tǒng),另外加裝外部傳感器,在環(huán)境參數(shù)超過人體健康范圍的時候,使用單片機上集成的蜂鳴器發(fā)出警報聲,使用聲音警示環(huán)境變化[7]。
家庭環(huán)境參數(shù)使用傳感器來收集信號。該功能與人類的感官一致,并且處于所有信息處理系統(tǒng)的最前沿[8]。傳感器類型的選擇應(yīng)考慮傳感器參數(shù)的設(shè)計要求,如測量范圍、穩(wěn)定性等,然后對每個測量參數(shù)進(jìn)行不同的測試,最后以實際結(jié)果為準(zhǔn),選擇最佳選擇計劃[9]。通過對傳感信號采集和處理,單片機系統(tǒng)根據(jù)篩選結(jié)果分為數(shù)據(jù)采集、校正、分析和報警[10]。為保證信號的準(zhǔn)確性,首先,主控芯片數(shù)字值進(jìn)行校正和補償,并對數(shù)據(jù)的準(zhǔn)確性進(jìn)行綜合分析,是否超過設(shè)定的限值,否則報警[11]。
3.1 數(shù)據(jù)采集前端軟件設(shè)計
按照中華人民共和國GB/T1883-2002《室內(nèi)空氣質(zhì)量標(biāo)準(zhǔn)》,確定了室內(nèi)溫度、濕度、有毒氣體含量等相關(guān)正常參數(shù)的范圍。根據(jù)居家生活實際環(huán)境與國家標(biāo)準(zhǔn)確定傳感器的工作模式,將其成本和體積降低,進(jìn)一步提高性價比。一旦確定了測量參數(shù),即著手制定一個總體設(shè)計計劃[12]。
程序的一般流程如圖2 所示。首先啟動系統(tǒng),然后各單片機和傳感器模塊開始工作。MQ-2 傳感器對空氣中有毒物質(zhì)的濃度進(jìn)行實時檢測,如果達(dá)到預(yù)定限度,就會向單片機發(fā)送信號。如果接收到信號,它會發(fā)出警報。如果沒有,它將繼續(xù)被檢測。BME680 溫濕度傳感器和SGP30 空氣質(zhì)量傳感器同時實時采集室內(nèi)空氣成分含量,并將參數(shù)發(fā)送至單片機。單片機收到對Wi-Fi無線模塊的請求后,通過串口向Wi-Fi 模塊傳輸數(shù)據(jù),Wi-Fi 模塊透明實時傳輸數(shù)據(jù)。使用者可以在移動設(shè)備端登陸云賬號并查詢實時測量的家庭環(huán)境數(shù)據(jù)。圖2 為系統(tǒng)總體設(shè)計的工作流程圖。
圖2 系統(tǒng)總體設(shè)計流程
系統(tǒng)軟件設(shè)計流程復(fù)雜,涉及面廣,包括數(shù)據(jù)硬件軟件、原子云服務(wù)器設(shè)計、移動終端硬件設(shè)計,這是首次推出各傳感器模塊采集環(huán)境信息和監(jiān)控控制系統(tǒng)名稱信息。通過端口發(fā)送,服務(wù)器接收對設(shè)備的控制。指令過程中,可將數(shù)據(jù)通過網(wǎng)絡(luò)傳輸至界面屏,通過無線通訊、數(shù)據(jù)采集、發(fā)送、發(fā)送等方式讀取數(shù)據(jù),進(jìn)而實現(xiàn)報警作用。
3.2 數(shù)據(jù)處理方法
在前端過濾錯誤數(shù)據(jù)后,執(zhí)行下一個數(shù)據(jù)操作。首先,在配置功能中,在寄存器中獲取相關(guān)數(shù)據(jù)分析功能,以進(jìn)一步獲取所需數(shù)據(jù)。以下以BME680 傳感器舉例。
首先與BME680 進(jìn)行交互,但是BME680 的讀寫取決于特定的硬件平臺,因此它們被操作為對象。在執(zhí)行相關(guān)操作時,如果需要控制時序,則需要使用延遲操作。延遲處理始終取決于特定的軟件和硬件平臺,因此延遲處理被視為對象的操作。而使用SPI(serial peripheral interface,串行外設(shè)接口)時,沒有設(shè)備地址但有片選信號,如何操作片選信號依賴于硬件平臺,將對片選的操作定義為對象的操作函數(shù)。一個對象必須對其進(jìn)行初始化才可使用。初始化對象主要有四個方面的內(nèi)容:檢查對象賦值的合法性;屬性賦初值;為對象操作指定函數(shù)指針;對象所指向設(shè)備的初始配置。通常一些設(shè)備需要定義操作碼來實現(xiàn)讀寫區(qū)分,但BME680 采取了將寄存器地址的最高位置零表示為寫。之所以可以這樣定義,是因為BME680 寄存器地址分配的特殊性決定的。改變寄存器地址的最高位也能區(qū)分不同的寄存器,絕不會重復(fù)。
BME680 環(huán)境傳感器支持SPI 和I2C(I2C總線)接口,SPI 也支持3 線和4 線模式,但在測試應(yīng)用中只使用I2C 接口,SPI 接口還有待測試。BME680 環(huán)境傳感器在使用SPI 接口時支持SPI 模式0(CPOL = CPHA = 0) 和模式3(CPOL = CPHA = 1)。使用I2C 接口時,支持標(biāo)準(zhǔn)模式、快速模式和高速模式。而且在使用I2C 接口時,SDO 引腳必須接高電平或低電平,以確定設(shè)備地址。
聲明不能立即使用此對象變量,并且需要使用驅(qū)動程序中定義的初始化函數(shù)來初始化此變量。BME680 環(huán)境傳感器有一個測量范圍寄存器。這個寄存器的值對應(yīng)于兩組計算常數(shù)。這兩組常數(shù)用于計算測量值。一般來說,BME680 環(huán)境傳感器本身的讀寫操作并不復(fù)雜,但是計算和校正之間的關(guān)系相對復(fù)雜,尤其是空氣質(zhì)量數(shù)據(jù)更應(yīng)該注意這種校正關(guān)系[13]。另外傳感器與上述BME680 傳感器數(shù)據(jù)處理方法基本類似,相似算法本文不做過多贅述。
3.2 云服務(wù)器軟件設(shè)計
UI 界面作為用戶與MCU 系統(tǒng)之間的交互界面,可以提高用戶的直觀感覺。但是,UI 接口不能直接與MCU 系統(tǒng)交互,需要服務(wù)器作為傳輸來實現(xiàn)它們之間的信息傳輸。因此,設(shè)計了系統(tǒng)的UI 界面和服務(wù)器??紤]到QT 具有可用C++ 編寫UI 框采用QT 進(jìn)行UI界面設(shè)計。此外,由于TCP 服務(wù)器在應(yīng)對多網(wǎng)關(guān)數(shù)據(jù)同時接入時會存在一定的性能損耗,本系統(tǒng)采用基于Linux 下的C 語言編程設(shè)計原子云服務(wù)器。
4 系統(tǒng)可靠性測試和傳感器標(biāo)定
4.1 系統(tǒng)可靠性測試
4.1.1 居家環(huán)境測試
系統(tǒng)穩(wěn)定性與可靠性的低下會直接導(dǎo)致抗干擾能力較差。單片機的應(yīng)用范圍遠(yuǎn)遠(yuǎn)超過了計算機和其他計算設(shè)備的總和,計算機工程的許多實際應(yīng)用往往會產(chǎn)生比人類更多的控制程序。在這種情況下,很多技術(shù)人員往往會選擇同時使用多個控制程序,相互補充完善。但是需要注意的是,在這個過程中,軟件干擾是不活躍的,而硬件干預(yù)是活躍的。所以達(dá)到較高的抗干擾能力。只有技術(shù)人員將硬件與軟件抗干擾相結(jié)合,并且在這一過程中更加細(xì)致周到地分析干擾源,才能夠真正地起到完善系統(tǒng)穩(wěn)定性的效果。
智能家居測量系統(tǒng)在實際居家環(huán)境中測試記錄各傳感器數(shù)據(jù),并制成如圖3 至圖6。
圖3 溫度濕度
圖4 氣壓
圖5 天然氣/VTOC含量
圖6 二氧化碳含量
分析上述折線圖可得,日溫濕度曲線變化從上午八點到十二點是呈上升曲線,一般環(huán)境溫濕度會隨著日出而變化。氣壓折線圖有一個上升曲線,查閱資料得知,一天中,氣壓有一個最高值、一個最低值,分別出現(xiàn)在9~10 時和15~16 時,還有一個次高值和一個次低值,分別出現(xiàn)在21~22 時和3~4 時。氣壓日變化幅度較小,一般為0.1~0.4 kPa,并隨緯度增高而減小。二氧化碳折線圖有小幅度的波動,經(jīng)分析得出,這樣的波動在誤差范圍內(nèi),是由于居家人數(shù)變化造成的數(shù)據(jù)輕微波動,峰值的出現(xiàn)不影響參數(shù)總體的測量。
4.1.2 測試結(jié)果分析
實測數(shù)據(jù)是一周內(nèi)同一時間段同一環(huán)境下固定測量結(jié)果,取加權(quán)平均之后得到以上折線圖。如圖得到傳感器的測量數(shù)據(jù)可知,在實際居家環(huán)境中,環(huán)境數(shù)據(jù)時刻在變化,系統(tǒng)整體穩(wěn)定性可靠,可保證長時間工作不會過熱死機,傳感器可持續(xù)穩(wěn)定的工作。
4.2 傳感器定標(biāo)
測試系統(tǒng)在真實家居環(huán)境中的工作狀態(tài),得到真實的傳感器采樣數(shù)據(jù),反饋到相應(yīng)的傳感器數(shù)據(jù)計算函數(shù)。在更高精度的傳感器同測量環(huán)境下進(jìn)行對標(biāo),以獲取更高精度的測量數(shù)據(jù)。
因為本測量系統(tǒng)涉及多個傳感器同時工作,遂即采用單獨定標(biāo)法。由于傳感器的設(shè)計不同,零件的加工存在誤差,以及裝配調(diào)整狀態(tài)不完全相同的因素,校準(zhǔn)后每個傳感器的靈敏度不一致。但是,從用戶使用的角度來看,希望同一型號的產(chǎn)品應(yīng)具有相同的靈敏度,輸入阻抗和其他技術(shù)參數(shù),并且初始零輸出應(yīng)盡可能細(xì)微,從而最大限度地減少在使用中調(diào)整系統(tǒng)的工作量,最大限度地提高測量精度。傳感器輸入和輸出之間的工作特性與非線性,滯后和非重復(fù)性問題有關(guān)。與線性傳感器相比,最好的解決方案是在每個傳感器測得的實際標(biāo)準(zhǔn)曲線中擬合一條直線,并且每個最大偏差曲線與直線的偏差將最小。例如,具有相同特性的傳感器具有最高的精度。校準(zhǔn)線可以用線性方程y = kx + B表示,因為方程中的B 是傳感器輸出零的初始值,k 是傳感器輸出的靈敏度斜率。其中,x 和y 是來自傳感器的實驗( 校準(zhǔn))數(shù)據(jù),因此通常使用平均斜率法或最小二乘法來處理并獲得直線。如圖7 為最小二乘法擬合曲線圖。
圖7 最小二乘法擬合曲線
4.2.2 定標(biāo)結(jié)果分析
綜合測試結(jié)果的主要內(nèi)容是對溫濕度傳感器、煙霧氣體傳感器、空氣質(zhì)量傳感器進(jìn)行靜態(tài)定標(biāo)、動態(tài)定標(biāo)以及補償。靜態(tài)定標(biāo)或靜態(tài)校準(zhǔn)的方法可以獲得測量系統(tǒng)的靜態(tài)特性。本次傳感器定標(biāo)校準(zhǔn)操作過程簡單,但是耗時較多,主要是多次重復(fù)性測量。得出各個傳感器需要進(jìn)行改善才可以擁有良好的靜態(tài)特性,這是需要通過計算傳感器的靜態(tài)性能指標(biāo)。對上述數(shù)據(jù)分別采用了分段擬合和分段直線擬合兩種方法,保證了遲滯、精度和重復(fù)性的要求。通過擬合測試得到靜態(tài)定標(biāo)的基本方法,熟悉了數(shù)據(jù)處理的過程。測試系統(tǒng)的動態(tài)特性是其內(nèi)的一種屬性,這種屬性只有系統(tǒng)受到激勵之后才能明顯表現(xiàn)出來,并且這隱含在系統(tǒng)的響應(yīng)之中。階躍響應(yīng)法是以階躍信號作為測試系統(tǒng)的輸入,通過對系統(tǒng)的輸出響應(yīng)的測試,從中計算出系統(tǒng)的動態(tài)特性參數(shù)。本次定標(biāo)已經(jīng)知道上述傳感器的動態(tài)特性符合一階模型,所以用階躍響應(yīng)法可方便測出。
5 系統(tǒng)的提升與改進(jìn)
智能家居測量系統(tǒng)相比較傳統(tǒng)機械儀表測量,其功能全面性、智能化程度更高,可更快速便捷的獲取實時數(shù)據(jù)。體積較小,集成化程度高,現(xiàn)已成為智能設(shè)備未來的發(fā)展新方向。在較為傳統(tǒng)的機械儀表測量系統(tǒng)中,環(huán)境數(shù)據(jù)的監(jiān)測需要依靠傳統(tǒng)的機械測量方式,有誤差大、反應(yīng)慢、測量周期長等缺點,并且存在危害性環(huán)境不適宜機械儀器測量。但是智能家居測量系統(tǒng)正好克服這些缺點,因為其工作環(huán)境可以與監(jiān)測顯示系統(tǒng)分開,做到云上傳數(shù)據(jù)并且云讀取。這樣大大減少了危害環(huán)境下對人體的傷害,并且可以做到在環(huán)境指數(shù)超標(biāo)時及時警報提醒。對家居環(huán)境實時測量以抑制復(fù)雜環(huán)境對人可能造成的有害影響。集成化智能家居測量系統(tǒng)可以很大程度的節(jié)約成本,降低使用難度,并且在單一傳感器出現(xiàn)故障的時候可以更換維修,降低維護(hù)成本。集成化的環(huán)境測量系統(tǒng)體積較小,耗能少,可與智能手機智能云互聯(lián),在外也可實時讀取家庭環(huán)境數(shù)據(jù)。
參考文獻(xiàn):
[1] 林學(xué)偉,嚴(yán)明忠.基于STM32單片機的智能家居控制系統(tǒng)設(shè)計[J].廊坊師范學(xué)院學(xué)報(自然科學(xué)版),2020.20(4):35-38.
[2] 余云飛,朱得元,章平.基于Arduino和ESP8266的多終端智能家居控制平臺的設(shè)計與實現(xiàn)[J].安慶師范大學(xué)學(xué)報(自然科學(xué)版),2019,25(3):36-40.
[3] 劉璐,袁戰(zhàn)軍,王希娟.基于ARM及ZigBee的智能家居遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].電子設(shè)計工程,2019,27(11):136-140+145.
[4] 鄭凱,姜毅,趙永生.基于STM32單片機實驗平臺的測控綜合實踐教學(xué)探索[J].教育現(xiàn)代化,2020,47(53):12-14+18.
[5] 熊斯鵬,黃敏.基于STM32單片機動力環(huán)境監(jiān)控終端的設(shè)計與實現(xiàn)[J].電子產(chǎn)品世界,2020,27(2):74-76.
[6] 王洪生.基于單片機與傳感器的智能家居環(huán)境監(jiān)測系統(tǒng)設(shè)計[J].智能應(yīng)用,2020.22.(9):24-27.
[7] 胡學(xué)芝,程海博,南光群.基于STM32的智能家居系統(tǒng)設(shè)計與實現(xiàn)[J].湖北理工學(xué)院學(xué)報,2018,34(1):1-4.
[8] 馮偉.單片機應(yīng)用系統(tǒng)可靠性的影響因素以及測試方法分析[J].技術(shù)交流,2016.10.(93):130.
[9] 陳建新.DHT11數(shù)字溫濕度傳感器在溫室控制系統(tǒng)中的應(yīng)用[J].山東工業(yè)技術(shù),2016(18):120.
[10] 幸聯(lián)星.基于單片機的智能家居環(huán)境檢測系統(tǒng)設(shè)計[J].電子技術(shù)與軟件工程,2020(1):59-61.
[11] 徐艇,張衛(wèi)強,胡建平等.基于傳感技術(shù)的室內(nèi)監(jiān)護(hù)系統(tǒng)設(shè)計[J].傳感器與微系統(tǒng),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.
(本文來源于《電子產(chǎn)品世界》雜志2022年4月期)
評論