




摘 要:隨著經(jīng)濟(jì)社會(huì)的不斷發(fā)展,加之電子信息技術(shù)的快速普及應(yīng)用,人們對(duì)居家智能化以及家用設(shè)施的智能化要求也不斷提升,越來越多的人們開始將智能家居羅列為生活中不可或缺的一環(huán)。本文提出了一種基于藍(lán)牙技術(shù)的自調(diào)節(jié)百葉窗系統(tǒng),系統(tǒng)以STM32為主控芯片,應(yīng)用多傳感器共同獲取環(huán)境信息實(shí)現(xiàn)自控制。本系統(tǒng)采用紅外傳感器作為開關(guān),由紫外傳感器采集信息,共同進(jìn)行環(huán)境檢測(cè)。本系統(tǒng)還選用藍(lán)牙并設(shè)計(jì)了相應(yīng)APP,負(fù)責(zé)用戶與百葉窗系統(tǒng)的通信。本智能百葉窗系統(tǒng)通過檢測(cè)室內(nèi)環(huán)境變化自動(dòng)調(diào)節(jié)百葉窗狀態(tài),同時(shí)用戶可通過藍(lán)牙發(fā)送相應(yīng)指令要求,免去了用戶手動(dòng)操作的麻煩。本系統(tǒng)旨在提升百葉窗的人性化程度與操作的便捷舒適性,具備較好的應(yīng)用價(jià)值和廣闊的市場前景。
關(guān)鍵詞:物聯(lián)網(wǎng);智能家居;百葉窗;智能控制;藍(lán)牙;STM32
中圖分類號(hào):TP39;TU228 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):2095-1302(2024)02-00-03
0 引 言
隨著市場經(jīng)濟(jì)的飛速發(fā)展,信息技術(shù)不斷改變著人們的生活,家居產(chǎn)品及技術(shù)也越來越趨向于智能化、自動(dòng)化和數(shù)字化,智能家居應(yīng)運(yùn)而生[1]。窗簾作為人們家居生活的必需品,它可以幫助我們遮擋隱私、隔絕光亮,傳統(tǒng)的窗簾需要用戶手動(dòng)對(duì)其進(jìn)行開關(guān)控制,而且操作過程中容易受到力或者操作者心情的影響而發(fā)生窗簾掉落事故[2]。與普通窗簾相比,智能遮陽百葉窗有其獨(dú)特的優(yōu)點(diǎn),可在滿足私密性、安全性要求的基礎(chǔ)上,讓使用者更加省時(shí)省力,還能夠根據(jù)人們對(duì)室內(nèi)有無光照和光照強(qiáng)度等要求,實(shí)施精準(zhǔn)控制[3]。
1 功能需求
本智能百葉窗系統(tǒng)能實(shí)現(xiàn)對(duì)外界環(huán)境的自動(dòng)感知,同時(shí)用戶還可根據(jù)自身需求對(duì)系統(tǒng)進(jìn)行實(shí)時(shí)控制。根據(jù)設(shè)計(jì)需求,本系統(tǒng)由感知層、控制層和傳輸層組成。感知系統(tǒng)負(fù)責(zé)實(shí)時(shí)檢測(cè)環(huán)境信息;控制模塊接收采集的數(shù)據(jù)并基于預(yù)設(shè)控制舵機(jī)模擬百葉窗葉片控制;藍(lán)牙模塊建立系統(tǒng)與用戶之間的通信連接,接收優(yōu)先指令發(fā)送給控制模塊,滿足用戶按需調(diào)節(jié)的需求[4-5]。
2 系統(tǒng)設(shè)計(jì)方案
本智能百葉窗系統(tǒng)包括傳感器組、控制模塊、模擬舵機(jī)和藍(lán)牙模塊。傳感器組由紅外傳感器和紫外傳感器構(gòu)成,負(fù)責(zé)環(huán)境數(shù)據(jù)的實(shí)時(shí)采集,采集后發(fā)送到單片機(jī)相應(yīng)接收端口。STM32單片機(jī)作為系統(tǒng)的核心控制器,控制與協(xié)調(diào)不同模塊之間的分工合作,同時(shí)接收遠(yuǎn)程藍(lán)牙信號(hào),實(shí)現(xiàn)百葉窗與移動(dòng)設(shè)備的遠(yuǎn)程連接。模擬舵機(jī)依據(jù)控制中心輸出的不同脈沖波調(diào)整百葉窗葉片角度,改變光照條件。藍(lán)牙模塊位于紅外傳感器之后、紫外傳感器之前,負(fù)責(zé)用戶移動(dòng)端與百葉窗系統(tǒng)建立通信[6]。
本設(shè)計(jì)可實(shí)現(xiàn)自動(dòng)模式和遙控模式。基于單片機(jī),通過采光設(shè)備獲取環(huán)境信息轉(zhuǎn)化為相應(yīng)數(shù)據(jù)返回給單片機(jī),單片機(jī)系統(tǒng)程序根據(jù)采光強(qiáng)度對(duì)數(shù)據(jù)進(jìn)行處理,然后按照指令操作控制舵機(jī)模塊選擇開啟或關(guān)閉百葉窗簾以及開啟百葉窗簾的角度。同時(shí)也可以通過移動(dòng)端如手機(jī)遠(yuǎn)程操控系統(tǒng),利用藍(lán)牙模塊使得Android APP與單片機(jī)進(jìn)行無線連接。用戶通過手機(jī)APP選擇對(duì)應(yīng)功能,并產(chǎn)生對(duì)應(yīng)指令通過藍(lán)牙模塊傳輸,單片機(jī)通過串口接口與藍(lán)牙模塊連接,接收指令調(diào)整角度[7-8]。系統(tǒng)設(shè)計(jì)如圖1所示。
3 硬件設(shè)計(jì)
本方案選用STM32F407系列單片機(jī)作為開發(fā)板,通過I/O端口與人體紅外傳感器、光敏傳感器、藍(lán)牙設(shè)備、模擬舵機(jī)接入。硬件設(shè)計(jì)如圖2所示。
從圖2可以看出,傳感器組、藍(lán)牙模塊以及模擬舵機(jī)都通過I/O口建立與單片機(jī)主控板的連接,用戶借由移動(dòng)APP實(shí)現(xiàn)與系統(tǒng)的通信連接。
本系統(tǒng)的整體供電由開發(fā)板外接電源提供。HC-SR501人體紅外檢測(cè)設(shè)置延遲參數(shù)為36 s,檢測(cè)范圍為半徑2 m張角120°的扇形。模塊采用藍(lán)牙3.0協(xié)議,通用性較高。作為藍(lán)牙串行端口,其可與Android設(shè)備和模塊透明連接。舵機(jī)的死區(qū)設(shè)置為4 μs,旋轉(zhuǎn)角活動(dòng)范圍可控制在0~90°,工作電流為100 mA,工作電壓選用3.3 V。舵機(jī)主要由VCC、GND和信號(hào)線組成,由單片機(jī)PC口提供周期為20 ms的PWM信號(hào)作為控制信號(hào)[9]。
4 軟件設(shè)計(jì)
4.1 傳感器組自動(dòng)模式設(shè)計(jì)
配置獨(dú)立模式雙通道DMA模式,選擇PB0和PB1分別對(duì)應(yīng)HC-SR501人體紅外檢測(cè)模塊和sensor_series光敏電阻傳感器模塊。系統(tǒng)開機(jī)初始化后,HC-SR501人體紅外傳感器將掃描人體信號(hào),通過D/A轉(zhuǎn)換作為系統(tǒng)開關(guān)的指標(biāo);系統(tǒng)開啟后會(huì)依據(jù)PB口采集的數(shù)據(jù)設(shè)置輸出脈沖波的占空比。傳感器信息采集控制流程如圖3所示。
部分代碼如下所示:
while (1){
ADC_ConvertedValueLocal[0] =(float) ADC_ConvertedValue[0]/4096*(float)3.3;
ADC_ConvertedValueLocal[1] =(float) ADC_ConvertedValue[1]/4096*(float)3.3;
if(!IS_HC05_CONNECTED())
{if(ADC_ConvertedValueLocal[0]lt;2)
{
ChannelPulse = 500;
__HAL_TIM_SetCompare(amp;TIM_TimeBaseStructure,TIM_CHANNEL_1,ChannelPulse);
}
else
{
ChannelPulse = (float) ADC_ConvertedValue[1]/4096*500+500;
__HAL_TIM_SetCompare(amp;TIM_TimeBaseStructure,TIM_CHANNEL_1,ChannelPulse);
}
Angle = (int)(ADC_ConvertedValueLocal[1] / 3.3 * 90);
/*printf(\"\r\n value1 = %f V \r\n\",ADC_ConvertedValueLocal[0]);
printf(\"\r\n angle" = %d" \r\n\",Angle);
printf(\"\r\n value2 = %f V \r\n\",ADC_ConvertedValueLocal [1]);
printf(\"\r\n\r\n\");*/
Delay(0xffffff);}
}
4.2 藍(lán)牙控制設(shè)計(jì)
ATK-HC05接線方式為藍(lán)牙模塊借助RXD和TXD與MCU通過串行通信交叉連接。分配串口,設(shè)置PA9口為TX發(fā)送,PA10口為RX接收;其次分配PB8,PB9用于檢測(cè)藍(lán)牙連接,當(dāng)藍(lán)牙模塊激活后,會(huì)將PB8置高,經(jīng)檢測(cè)后A/D轉(zhuǎn)換功能失效,進(jìn)入藍(lán)牙模式。通過移動(dòng)APP可以直接下達(dá)控制指令[10]。硬件驅(qū)動(dòng)程序邏輯如圖4所示。
部分代碼如下所示:
else if(IS_HC05_CONNECTED()){
while(getBuffer[0]==1amp;amp;ChannelPulselt;=1500){
ChannelPulse +=10 ;
__HAL_TIM_SetCompare(amp;TIM_TimeBaseStructure,TIM_CHANNEL_1,ChannelPulse);
if(ChannelPulse==1500){
ChannelPulse=1500;
__HAL_TIM_SetCompare(amp;TIM_TimeBaseStructure,TIM_CHANNEL_1,ChannelPulse);
}
Delay(0x02ffff);
}
while(getBuffer[0]==2amp;amp;ChannelPulsegt;=500){
ChannelPulse -=10 ;
__HAL_TIM_SetCompare(amp;TIM_TimeBaseStructure,TIM_CHANNEL_1,ChannelPulse);
if(ChannelPulse==500){
ChannelPulse=500;
__HAL_TIM_SetCompare(amp;TIM_TimeBaseStructure,TIM_CHANNEL_1,ChannelPulse);
}
Delay(0x02ffff);
}
if(getBuffer[0]==3){
ChannelPulse=500;
__HAL_TIM_SetCompare(amp;TIM_TimeBaseStructure,TIM_CHANNEL_1,ChannelPulse);
}
Delay(0x02ffff);
}
4.3 移動(dòng)端APP設(shè)計(jì)
移動(dòng)端APP采用安卓平臺(tái)軟件設(shè)計(jì)。APP設(shè)計(jì)頁面如圖5所示。
頁面初始化,藍(lán)牙客戶端斷開,頁面顯示百葉窗未連接,再次開啟APP時(shí)所有模塊狀態(tài)均正常。選擇藍(lán)牙設(shè)備,點(diǎn)擊相關(guān)按鈕即可彈出可連接設(shè)備的選擇框,選擇設(shè)備輸入密碼后即可返回。藍(lán)牙客戶端相關(guān)應(yīng)用已被封裝成模塊,所以選擇恰當(dāng)?shù)哪K,用合理的邏輯將其組合就能實(shí)現(xiàn)相應(yīng)功能
調(diào)用。
5 百葉窗功能
系統(tǒng)實(shí)際運(yùn)行邏輯:設(shè)備上電后,需進(jìn)行初始化操作,舵機(jī)葉片位置清零。單片機(jī)判斷是否接入藍(lán)牙,從而決定工作模式。非藍(lán)牙模塊激活情況下,HC-SR501紅外傳感器在感知信號(hào)時(shí),經(jīng)過一段時(shí)間(0.3~18 s)的延時(shí),輸出一個(gè)高電平,并一直保持該狀態(tài);當(dāng)檢測(cè)范圍內(nèi)無人時(shí),經(jīng)過36 s的延時(shí)后確認(rèn)感測(cè)范圍內(nèi)人非短暫離開,其輸出變?yōu)榈碗娖剑⑼ㄟ^PA口將電平信號(hào)送入單片機(jī)。單片機(jī)在確認(rèn)相應(yīng)高電平開啟信號(hào)后,接收光敏傳感器信號(hào)并進(jìn)入中斷,通過輸出不同占空比周期為20 ms的PWM信號(hào)控制舵機(jī)葉片在0~90°內(nèi)翻轉(zhuǎn)。當(dāng)藍(lán)牙模塊被激活時(shí),系統(tǒng)變?yōu)樗{(lán)牙控制。APP傳送葉片角度信息,單片機(jī)將角度信息轉(zhuǎn)化為脈沖波輸出給舵機(jī)。
該系統(tǒng)目前所能實(shí)現(xiàn)的具體功能主要表現(xiàn)為以下幾個(gè)
方面:
(1)自動(dòng)周期性掃描室內(nèi)人員情況并根據(jù)室內(nèi)是否有人控制窗簾開關(guān);在此基礎(chǔ)上設(shè)置延遲,防止出現(xiàn)因人員短時(shí)間進(jìn)出導(dǎo)致反復(fù)開關(guān),避免浪費(fèi)。
(2)處于開機(jī)狀態(tài)時(shí),對(duì)室內(nèi)采光強(qiáng)度進(jìn)行檢測(cè),單片機(jī)依據(jù)設(shè)定的控制邏輯控制舵機(jī)調(diào)節(jié)百葉窗。百葉窗可實(shí)現(xiàn)0~180°翻轉(zhuǎn)。
(3)當(dāng)人為開關(guān)百葉窗時(shí),比如午睡,可以通過手機(jī)APP借助藍(lán)牙連接單片機(jī),遙控設(shè)定百葉窗的開啟或者關(guān)閉狀態(tài)以及角度等。
6 結(jié) 語
本設(shè)計(jì)采用STM32作為主控,系統(tǒng)通過藍(lán)牙實(shí)現(xiàn)對(duì)百葉窗的遠(yuǎn)程控制。人體紅外傳感器與光敏傳感器配合使得百葉窗可根據(jù)環(huán)境自主做出決策。用戶可以在不接觸百葉窗的情況下對(duì)其進(jìn)行離線控制,在一定程度上豐富了百葉窗的控制方式。本文結(jié)合百葉窗的具體功能要求,簡要設(shè)計(jì)了對(duì)應(yīng)的智能控制方案,為相關(guān)產(chǎn)品提供了一種新的發(fā)展思路,豐富了用戶體驗(yàn)。隨著智能家居相關(guān)技術(shù)的不斷成熟與發(fā)展,智能家居系統(tǒng)的發(fā)展前景將更加廣闊。
參考文獻(xiàn)
[1]熊媛. 傳感器技術(shù)在自動(dòng)控制系統(tǒng)中的應(yīng)用及發(fā)展展望[J]. 工業(yè)設(shè)計(jì),2016,12(11):171.
[2]劉雪雪,趙夢(mèng)慧,王楷. 智能百葉窗的設(shè)計(jì)與研究[J].石河子科
技,2021,46(3):41-42.
[3]郭清華,夏斐,蔣麗. 玻璃屋面中智能遮陽百葉的應(yīng)用[J].山東科技大學(xué)學(xué)報(bào)(自然科學(xué)版),2006,8(3):17-19.
[4]管嘉誠,李曉烽,黃志芳,等. 基于 ESP8266 與機(jī)智云的物聯(lián)網(wǎng)智能家居[J].物聯(lián)網(wǎng)技術(shù),2023,13(3):140-142.
[5]付明雨,劉婷,嚴(yán)飛杰,等.基于物聯(lián)網(wǎng)的多功能窗簾[J].物聯(lián)網(wǎng)技術(shù),2021,11(6):74-75.
[6]浦靈敏,季愛明.基于STC89C52單片機(jī)智能窗戶控制系統(tǒng)的設(shè)計(jì)[J].中國科技信息,2011,23(10):150-151.
[7]宰文姣,汪華章.基于步進(jìn)電動(dòng)機(jī)的智能窗戶控制系統(tǒng)設(shè)計(jì)[J].微特電機(jī),2015,43(6):83-86.
[8]王杰,楊曄,蔡劍文.基于單片機(jī)的智能窗戶控制系統(tǒng)的設(shè)計(jì)[J].產(chǎn)業(yè)與科技論壇,2014,19(12):61-62.
[9]王娟.基于單片機(jī)智能窗戶控制系統(tǒng)[J].信息系統(tǒng)工程,2016,29(1):100-101.
[10]陳吉婷,趙康,何浩波.基于單片機(jī)的防雨、防塵智能窗戶控制系統(tǒng)設(shè)計(jì)[J].工業(yè)控制計(jì)算機(jī),2017,30(3):115.