熊力維
隨著經(jīng)濟(jì)和技術(shù)水平的提高,以及近年來(lái)自動(dòng)化控制技術(shù)、網(wǎng)絡(luò)通信技術(shù),以及計(jì)算機(jī)技術(shù)的迅猛發(fā)展,除工業(yè)各領(lǐng)域?qū)崿F(xiàn)智能化和自動(dòng)化,在家居生活方面,對(duì)智能化和自動(dòng)化的要求也逐漸提高。尤其在智慧城市和物聯(lián)網(wǎng)技術(shù)逐漸興起的今天,智能家居控制系統(tǒng)能夠?qū)崿F(xiàn)實(shí)時(shí)監(jiān)控和控制生活環(huán)境,為人們營(yíng)造更為舒適和安全的環(huán)境,提高生活質(zhì)量的同時(shí),增加了安全可靠性,同時(shí)節(jié)約時(shí)間和資金成本。設(shè)計(jì)、普及和推廣智能家居控制系統(tǒng)顯得尤為必要。
Arduino開(kāi)發(fā)板,有其獨(dú)特的開(kāi)源性,能夠較為便利地進(jìn)行硬件的二次開(kāi)發(fā),通過(guò)接入其他電子元器件,如輸入信號(hào)的各種傳感器,通信模塊,用來(lái)顯示的模塊,輸出控制設(shè)備,以及其他外圍設(shè)備,實(shí)現(xiàn)客戶需要達(dá)到的控制要求。本設(shè)計(jì)的控制核心采用Arduino開(kāi)發(fā)板。它是基于一種Simple I/O平臺(tái),可開(kāi)放原始代碼,同時(shí)采用類似于C/C++或Java 的語(yǔ)言開(kāi)發(fā)環(huán)境,可快速掌握Flash、Processing和Arduino語(yǔ)言[1],實(shí)現(xiàn)各種創(chuàng)新的作品,尤其是近幾年又推出了一種可視化的設(shè)計(jì)手段,可以在硬件開(kāi)發(fā)之前使用仿真手段進(jìn)行驗(yàn)證,使得開(kāi)發(fā)的門(mén)檻降低。因此,筆者選擇Arduino開(kāi)發(fā)板,配合其各種擴(kuò)展板、傳感器,能夠很好的實(shí)現(xiàn)智能家居的設(shè)計(jì)開(kāi)發(fā)。
圖1 Arduino主板實(shí)物圖
本設(shè)計(jì)將一系列傳感器分別安置在房間的各個(gè)角落,例如用煙霧、火焰?zhèn)鞲衅髋c溫控器來(lái)檢測(cè)廚房燒菜時(shí)的情況,用溫濕度傳感器來(lái)檢測(cè)衛(wèi)生間的滲水情況,用氣體、雨滴傳感器檢測(cè)外部的天氣情況,并據(jù)此考慮房間的通風(fēng)問(wèn)題,光照傳感器用來(lái)檢測(cè)采光情況,并據(jù)此考慮窗簾是否關(guān)閉,屋內(nèi)是否需要開(kāi)燈等等。將采集到的數(shù)據(jù)匯總后,由Arduino處理器進(jìn)行運(yùn)算處理,然后驅(qū)動(dòng)執(zhí)行機(jī)構(gòu)運(yùn)作,如電動(dòng)機(jī)負(fù)責(zé)窗簾的動(dòng)作,LED燈負(fù)責(zé)照明,蜂鳴器負(fù)責(zé)報(bào)警。這些傳感器全天候地根據(jù)周圍環(huán)境的變化實(shí)時(shí)采集數(shù)據(jù),反饋給中央控制系統(tǒng),改變執(zhí)行機(jī)構(gòu)的運(yùn)行狀態(tài),從而形成一個(gè)閉環(huán)的控制系統(tǒng)[2]。
圖2 智能家居構(gòu)想示意圖
總體設(shè)計(jì)以Arduino開(kāi)發(fā)板作為控制器,即中央控制系統(tǒng),通過(guò)各種傳感器、檢測(cè)模塊實(shí)現(xiàn)采集、檢測(cè)周圍環(huán)境的變化和用戶的動(dòng)作,經(jīng)由無(wú)線的方式發(fā)送給系統(tǒng),系統(tǒng)處理之后,驅(qū)動(dòng)各執(zhí)行機(jī)構(gòu)發(fā)出響應(yīng)。為了更好地改善用戶的體驗(yàn),我們將收集的數(shù)據(jù)傳送至用戶終端,并在終端控制系統(tǒng)上設(shè)置語(yǔ)音執(zhí)行模塊,以方便用戶發(fā)送指令。
圖3 系統(tǒng)設(shè)計(jì)方案
該系統(tǒng)的硬件部分除了Arduino控制器之外,還采用了一些傳感器和執(zhí)行部件。
圖4 硬件部分仿真效果
光照傳感器的功能是光照強(qiáng)度的檢測(cè),將檢測(cè)到的光照強(qiáng)度值轉(zhuǎn)化成電壓值。本設(shè)計(jì)中,該傳感器的作用是用于檢測(cè)外界光線強(qiáng)度,然后發(fā)送信號(hào)給中央控制器,以決定是否需要點(diǎn)亮屋內(nèi)的LED燈以及驅(qū)動(dòng)電機(jī)控制窗簾的打開(kāi)與關(guān)閉。
溫濕度檢測(cè)采用溫濕度一體化傳感器,更節(jié)約成本,它包括檢測(cè)模塊探頭和數(shù)字化處理電路兩部分,探頭利用數(shù)字集成傳感器制作,數(shù)字化處理電路,可將檢測(cè)到的模擬量數(shù)據(jù)轉(zhuǎn)換成對(duì)應(yīng)的標(biāo)準(zhǔn)模擬信號(hào),如0~10V電壓信號(hào)或4~20mA電流信號(hào)等,實(shí)現(xiàn)溫度和相對(duì)濕度的數(shù)據(jù)采集。本控制系統(tǒng)的設(shè)計(jì)中,這類傳感器主要安置在廚房、衛(wèi)生間的環(huán)境中,用于檢測(cè)廚房做飯時(shí)的溫濕度和衛(wèi)生間使用時(shí)的溫濕度變化,如果出現(xiàn)異常則驅(qū)動(dòng)蜂鳴器發(fā)出報(bào)警信號(hào)。
火焰?zhèn)鞲衅?,通過(guò)紅外線來(lái)接收檢測(cè)火焰亮度,轉(zhuǎn)化成電平信號(hào),火焰大,亮度高,轉(zhuǎn)化成高電平,火焰低,亮度低,轉(zhuǎn)化成低電平。中央處理器通過(guò)輸入端采集此高低電平信號(hào),再經(jīng)程序執(zhí)行和處理。本設(shè)計(jì)中用來(lái)檢測(cè)廚房燒菜時(shí)火焰過(guò)大的異常情況。
煙霧傳感器即煙感報(bào)警器,俗語(yǔ)煙霧報(bào)警器,通過(guò)空氣中煙霧的濃度來(lái)判定現(xiàn)場(chǎng)環(huán)境的安全性。當(dāng)空氣中煙霧濃度大于標(biāo)準(zhǔn)值時(shí),煙感報(bào)警器發(fā)出報(bào)警,提醒用戶房間煙霧濃度超標(biāo),其被各種消防報(bào)警系統(tǒng)廣泛運(yùn)用,該傳感器除了廚房以外,還可以安置在客廳,臥室等其他房間。
執(zhí)行機(jī)構(gòu)采用定位精準(zhǔn)的伺服電機(jī),用來(lái)控制窗簾開(kāi)關(guān)的速度,將電壓或電流信號(hào)轉(zhuǎn)換成轉(zhuǎn)矩和轉(zhuǎn)速,即把電信號(hào)轉(zhuǎn)換成電動(dòng)機(jī)轉(zhuǎn)子上的角位移或角速度輸出,從而驅(qū)動(dòng)被控制對(duì)象。由于伺服電機(jī)轉(zhuǎn)子轉(zhuǎn)速能夠?qū)崟r(shí)受控輸入信號(hào),并及時(shí)作出反應(yīng),將其作為執(zhí)行元件,具有線性度高、滯后時(shí)間常數(shù)短等特性。
LED指示燈即發(fā)光二極管,將電能轉(zhuǎn)換成光能,屬于一種固態(tài)半導(dǎo)體器件。本設(shè)計(jì)利用Arduino 開(kāi)發(fā)板的 PWM脈寬調(diào)制功能,通過(guò)控制半導(dǎo)體器件的通斷,輸出占空比可變的脈沖波形的原理[3],改變逆變電路輸出電壓的大小和輸出頻率,從而使LED燈的亮度能夠自動(dòng)調(diào)節(jié),對(duì)用戶的視力起到保護(hù)作用。
圖5 PWM原理圖
蜂鳴器常用于洗衣機(jī)、復(fù)印機(jī)、定時(shí)器、汽車電子設(shè)備、報(bào)警裝置等,將電信號(hào)轉(zhuǎn)換成聲音信號(hào),是一種一體化結(jié)構(gòu)的電子訊響器,在本設(shè)計(jì)中用于傳感器收集到異常信號(hào)時(shí)的報(bào)警裝置。
在進(jìn)行硬件的連接之后,軟件工作的主要內(nèi)容是讀取各個(gè)傳感器的信號(hào),送入Arduino進(jìn)行算法處理,然后根據(jù)處理的結(jié)果控制執(zhí)行結(jié)構(gòu)產(chǎn)生響應(yīng)。筆者在正式的硬件方案實(shí)施之前,先采用Proteus軟件進(jìn)行硬件的仿真,并結(jié)合最新的可視化設(shè)計(jì)手段,如圖6所示,設(shè)計(jì)流程清晰,并能調(diào)用傳感器自帶的函數(shù)(俗稱“方法”)進(jìn)行設(shè)計(jì)[4],屏蔽了接口上的諸多細(xì)節(jié),使得軟件的開(kāi)發(fā)效率更高。
圖6 可視化設(shè)計(jì)
在以上可視化設(shè)計(jì)中展示了部分軟件設(shè)計(jì),包括調(diào)用溫濕度傳感器的方法readTemperatue()和readHumidity()函數(shù)讀取當(dāng)前環(huán)境的溫度和濕度模擬值,將其轉(zhuǎn)換為相應(yīng)的數(shù)字信號(hào),同時(shí)用光照傳感器中的readLuminance()方法讀取當(dāng)前的光照強(qiáng)度,將上述傳感器獲得的數(shù)值分別保存在變量t、h和Lux中,然后將獲取的參數(shù)與用戶預(yù)先設(shè)定的閾值做比較,一旦超過(guò)閾值,將蜂鳴器置位ON,LED燈置位ON,控制電動(dòng)機(jī)正轉(zhuǎn)帶動(dòng)窗簾打開(kāi)。如果讀取的數(shù)值沒(méi)有超過(guò)用戶設(shè)定的閾值,則將蜂鳴器設(shè)為OFF,LED燈設(shè)為OFF,電動(dòng)機(jī)反轉(zhuǎn)帶動(dòng)窗簾關(guān)閉,直至相應(yīng)的限位停止運(yùn)行。用戶可以隨時(shí)改變閾值來(lái)修改執(zhí)行機(jī)構(gòu)的執(zhí)行條件,達(dá)到適合用戶的要求為止。
此控制系統(tǒng)以Arduino為核心,接入各種傳感檢測(cè)裝置,充分采集環(huán)境的各種變量,設(shè)計(jì)方案相對(duì)簡(jiǎn)單,能夠滿足大多人群需求,如果有更高智能控制的要求,可以進(jìn)行個(gè)性化的定制設(shè)計(jì)。例如,想要知道當(dāng)前房間中有多少人,可增加紅外傳感器,通過(guò)檢測(cè)人體體溫信號(hào)感知當(dāng)前房間里活動(dòng)的人員數(shù)量等等。
隨著現(xiàn)代新興技術(shù)的飛速發(fā)展,智能家居控制將占據(jù)越來(lái)越大的市場(chǎng),將基于Android控制的系統(tǒng),在其終端開(kāi)發(fā)成APP,便于用戶隨時(shí)監(jiān)控并操作,甚至加入語(yǔ)音識(shí)別功能,AI學(xué)習(xí)功能等,根據(jù)用戶個(gè)人喜好,滿足用戶工作和生活上的需求。