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