程鵬 內(nèi)蒙古工業(yè)大學(xué)
現(xiàn)代智能家居已經(jīng)逐漸進入市場,智能家居對提升人們的生活質(zhì)量有重要的作用,成為關(guān)注的熱點。信息化時代下,人們不僅關(guān)注住宅的周邊環(huán)境、居室面積、交通等,也更加關(guān)注安全防范、信息服務(wù)、外界溝通等要求。智能家居應(yīng)運而生。利用智能家居系統(tǒng),能夠?qū)崿F(xiàn)自動控制、安全防范等。通過不同的家居方式,以及系統(tǒng)功能,可以對家庭日程事務(wù)、住宅的日常事務(wù)進行管理,使人們的生活更加舒適、便利、安全?,F(xiàn)代智能手機使用普遍,本文設(shè)計可以登錄手機客戶端的智能家居控制系統(tǒng),實現(xiàn)家居的安全管理。
本次研究設(shè)計的智能家居系統(tǒng),主要架構(gòu)包括Android 手機客戶端監(jiān)控界面、WiFi 通信、單片機 STM32 開發(fā)板。使用單片機STM32開發(fā)板進行設(shè)計,采集視頻監(jiān)控、環(huán)境監(jiān)測、燈光照明控制等數(shù)據(jù)信息。通過手機連接 WiFi,傳輸數(shù)據(jù),遠(yuǎn)程監(jiān)控各個模塊。
圖1 系統(tǒng)框架
本次設(shè)計使用STM32開發(fā)板,系統(tǒng)主處理器使用STM32F103。微控制單元應(yīng)用STM32F103ZET6。接口包括無線模塊接口、攝像頭接口、溫度傳感器接口、濕度傳感器接口等。STM32開發(fā)板接口位置合理,靈活方便。接口可以進行各種外設(shè)的實驗。并且主芯片能夠滿足大數(shù)據(jù)存儲的需求。
使用開發(fā)板上現(xiàn)有的兩個 LED 燈,模擬實現(xiàn)智能家居中燈光的控制。
考慮室內(nèi)溫度、濕度影響生活舒適度,設(shè)置環(huán)境監(jiān)測模塊,數(shù)據(jù)采集應(yīng)用DHT11傳感器。
設(shè)置視頻監(jiān)控模塊,方便用戶實時監(jiān)控家居情況。其視頻數(shù)據(jù)的采集應(yīng)用OV7670攝像頭。
單片機上各功能模塊需要與手機 APP進行數(shù)據(jù)傳輸,因此需要WiFi模塊。WiFi模塊能夠及時、高效地進行數(shù)據(jù)傳輸。硬件采用ATK-RM04 WiFi 模塊,采用串口與 MCU 通信,能夠轉(zhuǎn)換無線網(wǎng)、以太網(wǎng)、串口。不需要改變單片機開發(fā)板的任何配置,利用ATKRM04 WiFi模塊,就可以與WiFi模塊連接,采集視頻、溫度、濕度等數(shù)據(jù)。
本次設(shè)計中的編程、仿真和調(diào)試,應(yīng)用Keil 軟件。軟件設(shè)計主要是各個功能模塊。通過軟件設(shè)計,能夠?qū)崿F(xiàn)視頻監(jiān)控、溫度監(jiān)測、濕度監(jiān)測、燈光照明控制等。如下圖,為軟件設(shè)計流程圖,首先要初始化系統(tǒng)。然后進入檢測函數(shù),采集視頻數(shù)據(jù)、濕度數(shù)據(jù)、燈光情況數(shù)據(jù)、溫度數(shù)據(jù)等。最后進行傳輸。
圖2 軟件設(shè)計流程圖
環(huán)境監(jiān)測模塊的軟件設(shè)計,就是要采集和傳輸濕度數(shù)據(jù)、溫度數(shù)據(jù)。應(yīng)用DHT11數(shù)字溫濕度傳感器,單個數(shù)據(jù)引腳端口,進行雙向傳輸。先初始化設(shè)置傳感器。檢測不到 DHT11 的存在,返回0。檢測到存在,返回 1。然后讀取 DHT11 的濕度數(shù)據(jù)、溫度數(shù)據(jù)。依據(jù)單總線操作時序。如果讀取失敗,返回 1。如果讀取成功,返回 0。成功初始化后,每個100 ms讀取一次數(shù)據(jù),然后傳輸,在顯示屏上顯示相應(yīng)的數(shù)據(jù)。
通過設(shè)計視頻監(jiān)控模塊的軟件,能夠顯示視頻、傳輸視頻數(shù)據(jù)、采集視頻數(shù)據(jù)等。先將OV7670 相關(guān)的 IO 口進行初始化,再寄存器序列初始化。然后采集視頻圖像。利用JPEG 壓縮,原始圖像數(shù)據(jù)可以實時播放給客戶端 APP。為保證視頻傳輸?shù)馁|(zhì)量,應(yīng)用層使用TRTP /RTCP 協(xié)議。網(wǎng)絡(luò)層、傳輸層使用TCP/IP 協(xié)議。對客戶端APP的請求進行監(jiān)聽,從而實現(xiàn)網(wǎng)絡(luò)交互。
設(shè)計燈光照明模塊的軟件,控制燈光的亮滅。主要是兩個 LED燈的熄滅。先將LED 燈連接的硬件接口初始化,再進行高低電位的控制,對燈光亮滅進行控制。
本次設(shè)計中,開發(fā)Android 手機客戶端APP,應(yīng)用Java 語言,設(shè)計監(jiān)控界面。監(jiān)控界面中,包括溫度和濕度控制模塊、燈光控制模塊、視頻監(jiān)控模塊等。手機 APP作為客戶端。傳統(tǒng)的 C/S架構(gòu),為智能家居應(yīng)用系統(tǒng)。服務(wù)器端為嵌入式硬件。使用流程主要是,先將用戶界面初始化,再請求訪問服務(wù)器。成功響應(yīng)后,在用戶界面上會顯示數(shù)據(jù)。
圖3 模塊實現(xiàn)流程圖
客戶端訪問服務(wù)器的數(shù)據(jù)傳輸,使用底層 Socket,可以節(jié)省流量,而且把控細(xì)節(jié)。網(wǎng)絡(luò)請求需要耗費時間,利用JAVA回調(diào)機制,設(shè)置子線程在客戶端,向服務(wù)器發(fā)送數(shù)據(jù),再回調(diào)處理響應(yīng)的數(shù)據(jù)。如果在主線程中,直接請求網(wǎng)絡(luò),容易導(dǎo)致阻塞。
設(shè)計完手機APP 的程序,可以根據(jù)顯示設(shè)置,實現(xiàn)各項功能的操作。將單片機上的 WiFi模塊連接后,APP客戶端和單片機可以傳輸數(shù)據(jù)。通過各個功能模塊的實際情況,可以了解家居的實時情況。
本次基于STM32開發(fā)板,設(shè)計智能家居控制系統(tǒng),應(yīng)用手機客戶端 APP,WiFi 模塊、視頻監(jiān)控、燈光模塊、濕度模塊、溫度模塊等,實時了解和控制用戶的家居情況。進行系統(tǒng)測試,驗證系統(tǒng)的穩(wěn)定性和有效性。通過 I/O 口,將單片機與WiFi模塊、OV7670攝像頭、DHT11 溫濕度傳感器進行連接。程序代碼到STM32單片機開發(fā)板上。打開手機APP,輸入IP地址,連接WiFi。接入成功后,檢測燈光、視頻、溫濕度控制等情況。結(jié)果顯示,系統(tǒng)運行良好。如下圖所示,為系統(tǒng)執(zhí)行后的結(jié)果,符合智能家居控制系統(tǒng)的設(shè)計要求。
圖4 監(jiān)控結(jié)果
本次研究基于 STM32,設(shè)計智能家居控制系統(tǒng),通過 WiFi通信技術(shù),對環(huán)境檢測模塊、燈光照明模塊、視頻監(jiān)控模塊進行遠(yuǎn)程控制,滿足智能家居的基礎(chǔ)功能。并且操作簡單,成本低廉,具有良好的實用性。