




關鍵詞:STM32;智能家居;物聯網
中圖分類號:TP311 文獻標識碼:A
文章編號:1009-3044(2024)26-0080-03 開放科學(資源服務)標識碼(OSID) :
0 引言
科技與經濟的快速發展推動了社會進步,也改變了人們的生活方式和習慣。隨著生活水平的提高,人們對家居環境的智能化需求不斷增長。住宅不再僅僅是提供居住功能的空間,而是人們追求更高舒適度和生活品質的場所。智能家居應運而生,旨在實現家電的智能管理,簡化操作,提高資源利用效率,并降低能源消耗。同時,智能家居系統能夠監控室內溫濕度、PM2.5等指標,實時監測空氣質量,并根據數據提供健康提示,以保障用戶的生活環境。
1 系統分析
1.1 需求分析
智慧家庭概念的普及預示著未來家庭生活將發生深刻的變革,它不僅能夠提高生活便利性,還開啟了新的智能化生活方式。人工智能技術的應用正在推動智能家居的智能化程度不斷提升。人工智能技術的融入使智能系統能夠實現更精準、高效的控制,系統可以收集和分析用戶在不同房間的停留時間和頻率等數據,以便更深入地了解用戶的行為習慣和需求,從而提供更加個性化的服務。
1.2 可行性分析
本項目選擇STM32F103VC8T6作為主控芯片,該芯片擁有100個管腳,最高72 MHz主頻,具有強大的處理能力和高效率[1]。項目的外圍設備都是市場上通用的型號,能夠順利在STM32平臺上運行。本系統將集成溫度測量、煙霧檢測、指紋識別和遙控器等技術,這些技術源自校園和企業的技術積累,并將應用于云端并傳輸至手機應用程序。
2 智能家居硬件設計
2.1 總體設計
本項目采用STM32實現溫度和水分數據的采集,并利用液晶屏顯示數據[2]。門控系統由指紋模塊管理,同時系統監測室內煙氣的濃度。手機應用程序可以根據溫度、濕度等信息遠程控制門窗、窗簾和LED燈光。智能家居系統框架圖如圖1所示。
2.2 模塊硬件設計
2.2.1 燈光模塊硬件設計
LED燈主要用作模擬燈光和提示燈,其對應的接口分別為PA1、PC1、PC2、PC4、PC5。LED燈可模擬家庭環境燈光,同時作為提示燈和警報燈。警報燈與環境模塊配合使用,提示燈與通信模塊配合使用。
2.2.2 環境模塊硬件設計
環境模塊包括溫度、濕度、煙霧、語音和液晶屏[2]。本系統選用DHT11(溫濕度傳感器)、MQ2-135(煙霧傳感器)和12864(液晶顯示模塊)。DHT11傳感器精確檢測室內溫濕度,通過STM32與ESP8266通信,用戶可以通過手機應用程序調整環境參數,以確保室內環境舒適度[3]。在智能家居中,精確的溫濕度控制至關重要,DHT11的數據監測和預防異常,實現智能舒適環境。STM32 通過PA4 單總線與DHT11 通訊,DHT11的DO端口同時負責數據發送和接收。
2.2.3 窗簾控制模塊硬件設計
窗簾控制由步進電機、JQ8900 語音播報、ESP8266 共同完成開啟和關閉窗簾操作,APP 通過ESP8226下發窗簾開啟程度百分比,控制窗簾狀態。
2.2.4 門控模塊硬件設計
門控模塊外部配置有步進電機、JQ8900語音播報、指紋模塊、ESP8266通信模塊和按鍵,其功能涵蓋指紋識別、按鍵操作、APP控制開關及JQ8900語音提示。指紋系統采用AS608光學指紋系統,內置內存,斷電不丟數據,可讀取300個指紋。步進馬達選擇5-4相,可調節轉動角度,扭矩大,保證窗戶平穩轉動[4]。驅動芯片選擇DRV8833,具有低功耗、短路和故障保護等性能,穩定性好,可穩定驅動步進馬達。
3 智能家居軟件設計
3.1 模塊軟件設計
3.1.1 燈光模塊軟件設計
顯示燈光模塊由語音、LED和通信模塊構成,用于理解燈光功能。LED操作被封裝為可調用的函數。通過LED與JQ8900模塊的配合,實現語音提示,同時支持功能調試。
3.1.2 環境模塊軟件設計
DHT11系統通過單總線控制,響應啟動信號進入休眠。主信號啟動后,開始發送信號,總線設為輸入等待DHT11響應。接收數據后,總線拉高結束信號。數據包含4個字節的整數和小數,但系統僅處理整數部分。
3.1.3 窗簾模塊外設軟件設計
窗簾模塊實現百分比開啟功能,設定步進電機總步數為定值,通過數學轉換分為100份。操作函數用全局變量存取當前窗簾開啟程度,判斷目標值選擇開或關操作。函數流程圖如圖2所示。
3.1.4 門控模塊軟件設計
該門控制系統可通過按鍵、指紋和APP控制開關,具備開門、關門、指紋識別、錄入指紋和按鍵初始化功能[5]。根據模塊功能描述進行應用編程。
打開功能:門已開時不操作,門關后執行打開。
閉合功能:門已合時不操作,門開后執行關門。
系統支持指紋開鎖,使用AS608指紋識別。檢測到指紋時,STM32指令AS608獲取指紋,并搜索指紋庫比對。比對成功則開門,失敗則退出。錄入指紋時,AS608向用戶發出兩次采集指令,判斷兩次指紋是否相同,若相同則保存至指紋庫。
3.2 系統功能設計
智能家居系統按需調用功能,CPU無須持續檢測操作請求。本系統采用中斷機制實現燈光、環境、門控和窗簾模塊的操作。
3.2.1 燈光模塊系統功能設計
智能家居邏輯體系中描述燈光是通過App端控制。此過程需要用到ESP8266下發云端的數據,通過switch進行分支選擇,實現對應功能。
3.2.2 環境模塊系統功能設計
定時器斷續和外接斷續用于環境模塊的系統功能。MQ2煙霧傳感器檢測有毒氣體超標時,觸發外部中斷0,實現警報燈啟動、信息上報機智云和語音報警。
當觸發煙霧警報時,警報燈開啟并等待工作人員處理,當問題處理完后需要關閉警報燈,并上報問題已解決。溫濕度測量間隔執行,數據通過計時器每小時上傳至機智云,優化功耗和硬件效率。DHT11、語音、液晶和計時器協同,失敗超200次則停止。信息更新實時,通過App和液晶顯示。
3.2.3 門控模塊系統功能設計
在該系統中,用戶可利用指紋、按鍵或App三種方式中斷實現開/關門。系統采用指紋識別模塊,具備指紋錄入、刪除和識別功能。設計中,利用外部中斷6處理指紋鑒別。指紋檢測到時,觸發外部中斷6,進行指紋匹配。匹配成功則開門,否則發出聲音提示。外部中斷6實現指紋開門功能。
3.2.4 窗簾模塊系統功能設計
窗簾模塊的控制方式和燈光模塊的控制相似,同樣是利用串口中斷2接收事件類型,通過switch函數實現開/關窗簾操作。窗簾操作函數的應用圖如圖3所示。
4 系統的軟件設計
4.1 系統軟件的設計思路
軟件設計分為五個部分:語音識別、藍牙通信、環境監測、顯示及家電控制[6]。運行流程包括初始化設備模塊接口、串口、藍牙、ADC、PWM通道及OLED液晶,通過傳感器實時采集溫濕度、煙塵濃度及探測人體紅外線。
4.2 語音識別程序設計
語音識別模組程序設計主要流程包括系統初始化、載入識別關鍵字清單及使用者語音輸入比對輸出。本文還提出基于數字信號處理技術的語音指令設計方法。語音識別程序設計流程圖如圖4所示。
4.3 藍牙模塊程序設計
該設計包括系統初始化、藍牙與串口初始化以及訊號傳送判斷過程。移動端App定義控制命令,通過藍牙模塊實現數據傳輸[5]。藍牙接收手機控制信號,通過串口發至主控單片機。單片機處理控制指令,若匹配則觸發家庭功能控制。Bluetooth模塊與單片機經串口2傳輸數據。
4.4 環境監測程序設計
4.4.1 DHT11溫濕度檢測
溫濕度探測程序的設計流程如下:首先對模塊進行初始化,在開始之后,會自動采集溫度和濕度,并將采集到的數據存儲起來,然后由 OLED 屏幕進行調用,最后在 OLED屏幕上顯示出溫度和濕度的數據。
4.4.2 MQ135空氣質量檢測
在空氣質量檢測程序設計中,首先執行硬件的初始化程序,之后對 ADC通道進行數據采集,將采集到的模擬量數據經過處理、ADC轉換后,最后轉化為數字量數據,從而在 OLED屏幕上實時顯示出來。在采集到的數據數值達到或超過設定的危險閾值時,系統會發出蜂鳴聲,發出警報。
4.4.3 HC-SR501人體紅外檢測
人體紅外線感應探測主要是在安全模式下進行。
4.5 界面顯示程序設計
接口的顯示有兩種方式。傳統方式展示家庭裝置運行狀況及環境參數,操作中可實時更新界面。安全模式則適用于無人時,通過人體紅外線感應器偵測入侵并發出警報[7]。正常工作狀態下,煙氣感應器檢測有毒氣體超標也會報警。兩種顯示方式可通過按鈕切換。
5 系統測試
5.1 燈光模塊測試
燈光模塊測試主要關注燈光是否能按照系統指令正確開關。測試時,用單片機GPIO口控制燈光,通過串口中斷接收指令[3]。如燈光模塊響應異?;蛩俣嚷?,須進一步排查和調試。步驟如下:1) 確保燈光模塊與單片機連接正確,電路接通。2) 系統發送開啟指令,觀察燈光是否亮起。3) 系統發送關閉指令,觀察燈光是否熄滅。4) 重復開啟和關閉指令,驗證穩定性和可靠性。
5.2 環境模塊測試
MQ2煙霧傳感器測試:用香煙測試MQ2煙霧傳感器的煙霧濃度靈敏度,當遇到濃煙時觸發警報,此時語音播報警報信息,開啟警報燈,并將警報信息上傳機智云,App端會彈出警報信息。同時,對定時器計數初值進行修正,每10分鐘中斷一次,觀測LCD與APP內部的煙霧濃度。
5.3 門控模塊測試
用戶可通過App錄入多個指紋并選擇指紋ID。AS608芯片可存儲300個指紋,滿足日常需求[1]。操作有聲音反饋。錄入指紋后,用戶可通過App、按鍵或指紋控制門的狀態,其他操作不影響門運動。門的動作期間,其他操作不會干擾當前動作,符合系統設計原則。指紋識別測試圖如圖5所示。
5.4 窗簾模塊測試
首先測試窗簾全部收起時的計數值,值為1024,然后App端通過百分比控制窗簾的狀態,每一次操作完成后,語音會提示操作完成。
6 結束語
綜上所述,本文通過STM32+機智云可以進行遠程控制,通過煙霧傳感器可以對家中的空氣進行監控,通過指紋和 App可以對門和窗簾進行智能化的控制。此外,還可以通過語音播報來對用戶進行提示。