基于TinyOS的智能家居系統(tǒng)設(shè)計與實現(xiàn)
隨著現(xiàn)代高新科學(xué)技術(shù)的發(fā)展,人們更加注重對生活品質(zhì)的追求,舒適度、智能化的家居日益成為人們關(guān)注的對象。家用電器的自動化已經(jīng)遠(yuǎn)遠(yuǎn)不能滿足現(xiàn)代人的需求。智能家居系統(tǒng)是一項多功能綜合技術(shù),它以家庭住宅為平臺,以先進(jìn)的通信技術(shù)、網(wǎng)絡(luò)技術(shù)、控制技術(shù)為依托,將家庭中各種電器設(shè)備通過某種形式的網(wǎng)絡(luò)有機地結(jié)合在一起,進(jìn)行網(wǎng)絡(luò)化的綜合管理與調(diào)控,為人們提供一種更加舒適、安全、環(huán)保、高效的生活環(huán)境。
本文引用地址:http://www.ex-cimer.com/article/201610/309175.htm人們對智能化家居的需求越來越迫切,本文結(jié)合TinyOS自身特點,提出并實現(xiàn)了一個智能家居系統(tǒng)設(shè)計方案。
1 TinyOS操作系統(tǒng)與nesC語言
TinyOS是當(dāng)前無線傳感器網(wǎng)絡(luò)開發(fā)的一種主流操作系統(tǒng)。TinyOS采用基于組件的體系結(jié)構(gòu),在此結(jié)構(gòu)下,一個完整的應(yīng)用程序包含多個組件,它的各種功能都是由組件實現(xiàn)
的,即TinyOS提供了一個適用于傳感器網(wǎng)絡(luò)開發(fā)應(yīng)用的編程框架。
NesC是對C語言的一種擴展,其語言的基本數(shù)據(jù)類型、運算符和表達(dá)式、基本語句和程序結(jié)構(gòu)都與C語言相同。它的最大特點是支持組件化的編程模式,將組件化/模塊化的思想和事件驅(qū)動的執(zhí)行模型結(jié)合起來,并采用基于任務(wù)和事件的并發(fā)模型。
2 智能家居總體設(shè)計
根據(jù)智能家居的實際應(yīng)用需求,智能家居系統(tǒng)設(shè)計主要包括網(wǎng)絡(luò)節(jié)點和監(jiān)控系統(tǒng)兩大部分。
網(wǎng)絡(luò)節(jié)點功能包括:主節(jié)點可以讀取從串口讀取的命令,并通過無線通信向分節(jié)點發(fā)送命令;同時可返回從分節(jié)點采集的數(shù)據(jù)。此系統(tǒng)另外含有3個分節(jié)點,燈光明暗控制節(jié)點,門鎖開關(guān)控制節(jié)點,溫、濕度數(shù)據(jù)采集節(jié)點。燈光明暗控制節(jié)點可以通過無線接收從主節(jié)點發(fā)送的命令,分級調(diào)節(jié)燈光的亮度,逐漸增亮或逐漸變暗。門鎖控制節(jié)點可以通過無線接收從主節(jié)點發(fā)送的命令,打開或者關(guān)閉門鎖。
監(jiān)控系統(tǒng)功能包括:可通過點擊按鈕經(jīng)串口通信向主節(jié)點發(fā)送命令,控制分節(jié)點動作(包括:燈光明暗以及門鎖開、關(guān)),可以顯示從分節(jié)點傳送的溫度、濕度、光照度以及電池容量的數(shù)據(jù),同時具有可以顯示數(shù)據(jù)的實時曲線功能,總體結(jié)構(gòu)如圖1所示。
本系統(tǒng)分為三層,分別為監(jiān)控層、設(shè)備控制與數(shù)據(jù)層、設(shè)備層。監(jiān)控層:系統(tǒng)的主界面,用來顯示當(dāng)前家居設(shè)備的狀態(tài),溫度、濕度、光照度曲線圖。設(shè)備控制與數(shù)據(jù)層:用來控制家居設(shè)備,并檢測家居設(shè)備反饋的信號狀態(tài)。設(shè)備層:系統(tǒng)的各網(wǎng)絡(luò)節(jié)點,設(shè)備主節(jié)點與各模塊從節(jié)點之間通過無線來進(jìn)行通信。
3 智能家居網(wǎng)絡(luò)節(jié)點設(shè)計
智能家居系統(tǒng)是一種小范圍、多節(jié)點、近距離無線傳輸?shù)捏w系。而具低復(fù)雜度、低成本和低功耗特點的Zigbee與其他無線網(wǎng)絡(luò)協(xié)議相比較,更加適用于此系統(tǒng),因此可通過在TinyOS中nesC語的編寫,實現(xiàn)ZigBee的MAC層協(xié)議,完成基于Zigbee的智能家居系統(tǒng)設(shè)計。
3.1 燈光控制設(shè)計
燈光明暗控制整合電路板工作原理:電路板可以檢測交流電波形的正負(fù)起始點;以及每隔特定時間收到節(jié)點發(fā)送的信號后,夾在可控硅上電壓的波形。可控硅由節(jié)點5號管腳控制。燈光的強度,實際取決于夾在燈泡兩端的電壓。電壓越高,燈泡越亮;反之,電壓越低,燈泡越暗。此硬件電路是通過可控硅調(diào)節(jié)相位的方式改變光的強度??煽毓枵{(diào)節(jié)光強度主要原理在于,改變觸發(fā)脈沖的施加時間改變導(dǎo)通角大小,從而改變燈光明暗。依據(jù)此原理,設(shè)計燈關(guān)明暗程序代碼,程序流程圖如圖2所示。
3.2 門鎖開關(guān)設(shè)計
門鎖控制整合模塊:電路板帶有兩組繼電器和交、直流電壓轉(zhuǎn)換器。交、直流電壓轉(zhuǎn)換器可以將110~220 V的交流電壓變?yōu)? V或者12 V直流電壓。12 V直流電供給直流電機工作。如果有5 V的控制信號夾在繼電器上,繼電器常開點閉合,反之常閉點閉合。繼電器由節(jié)點的5號和6號管腳控制。門鎖打開及閉合,主要依據(jù)繼電器通斷電的原理設(shè)計。
門鎖內(nèi)部配有直流電動機,當(dāng)電動機兩端加正向電壓時,電動機正轉(zhuǎn)門鎖打開;反之,當(dāng)直流電機兩端加反向電壓時,電動機反轉(zhuǎn)門鎖閉合,程序流程圖如圖3所示。
4 智能家居監(jiān)控系統(tǒng)設(shè)計
智能家居系統(tǒng)的各網(wǎng)路節(jié)點需要由一套完善的監(jiān)控系統(tǒng)控制運行狀態(tài)。監(jiān)控系統(tǒng)通過串口通信將命令發(fā)送至主節(jié)點,再由主節(jié)點將命令經(jīng)無線通信傳遞至分節(jié)點控制設(shè)備進(jìn)行相應(yīng)動作;同時,可將傳感器采集的環(huán)境數(shù)據(jù)存儲至數(shù)據(jù)庫內(nèi),并可顯示記錄結(jié)果,方便用戶及時查詢。
通過點擊【更亮】或者【更暗】按鍵命主節(jié)點向燈光控制節(jié)點發(fā)送命令,調(diào)亮或者調(diào)暗燈的照明度。點擊【門鎖】按鍵,可經(jīng)主節(jié)點向門鎖控制節(jié)點發(fā)送命令,打開或者關(guān)閉門鎖,并改變場景狀態(tài)顯示區(qū)域內(nèi)的門鎖狀態(tài)圖片。調(diào)亮燈的流程圖如圖4所示。門鎖控制模塊的流程圖如圖5所示。
5 系統(tǒng)功能實現(xiàn)
本系統(tǒng)的設(shè)計實現(xiàn)。是在搭載windows XP系統(tǒng)的PC機端進(jìn)行測試。分別給無線網(wǎng)絡(luò)主節(jié)點、燈光控制節(jié)點,門鎖控制等節(jié)點上電。圖6為智能家居監(jiān)控系統(tǒng)運行的主界面。下面以溫度和濕度數(shù)據(jù)采集和顯示為例,說明系統(tǒng)功能。進(jìn)入數(shù)據(jù)顯示界面,采集一分鐘內(nèi)的溫度的變化,并將數(shù)據(jù)以曲線形式顯示,其結(jié)果如圖7所示,橫坐標(biāo)代表時間,縱坐標(biāo)代表溫度,單位攝氏度。
同樣,將采集一分鐘內(nèi)的濕度變化,并將數(shù)據(jù)以曲線形式顯示,如圖8所示。橫坐標(biāo)代表時間,縱坐標(biāo)代表濕度,單位為%百分比。
6 結(jié)束語
本系統(tǒng)采用Visual C++設(shè)計了上位機監(jiān)控界面,實現(xiàn)了監(jiān)控界面與無線網(wǎng)絡(luò)主節(jié)點之間的串口通信,采用NesC語言在TinyOS操作系統(tǒng)環(huán)境下實現(xiàn)了網(wǎng)絡(luò)各節(jié)點之間的Zigbee無線通信。經(jīng)由主節(jié)點,上位機能夠控制其它無線網(wǎng)絡(luò)節(jié)點的動作,諸如燈光逐步增亮或者逐步變暗,門鎖打開或者閉合等等。同時,上位機監(jiān)控系統(tǒng)可以存儲和顯示由無線網(wǎng)絡(luò)節(jié)點采集的溫度、濕度、光照度等數(shù)據(jù)和變化趨勢。該設(shè)計初步滿足了家居系統(tǒng)控制的智能化,同時具有很強的擴展性。
評論