謝積錦
(北部灣大學欽州市大數(shù)據(jù)資源利用重點實驗室 廣西壯族自治區(qū)欽州市 535011)
伴隨著現(xiàn)代科技的層出不窮,移動設(shè)備更新?lián)Q代,極大的方便了人們的交流,智能家居系統(tǒng)通過物聯(lián)網(wǎng)平臺,利用通訊和傳感技術(shù)[1],使我們用手機就可以查看和控制家庭的環(huán)境和設(shè)備。遠程的智能家居控制系統(tǒng)提高了人們的生活質(zhì)量,有效的避免了資源的浪費,極大的方便了人們的生活。
本文將物聯(lián)網(wǎng)中的云平臺引入智能家居控制系統(tǒng),然后使用手機安卓APP 訪問物聯(lián)網(wǎng)云平臺或者向物聯(lián)網(wǎng)云平臺發(fā)送指令[2],最后由物聯(lián)網(wǎng)云平臺向下位機發(fā)送指令或者接收家居環(huán)境數(shù)據(jù),做到實時監(jiān)控家庭中的情況。本文智能家居系統(tǒng)需要解決如下三大問題:
(1)下位單片機控制系統(tǒng)能夠準確的采集到戶主家庭中的濕度數(shù)值、溫度數(shù)值、光照強度數(shù)值等主要環(huán)境信息;
(2)下位單片機控制系統(tǒng)能夠使用無線Wi-Fi 模塊與物聯(lián)網(wǎng)云平臺服務(wù)器通訊,云平臺不僅可以接收單片機控制系統(tǒng)采集的環(huán)境數(shù)據(jù)信息也可以反過來向單片機控制系統(tǒng)發(fā)送數(shù)據(jù);
(3)安卓手機可以讀取云平臺的來自家庭單片機控制系統(tǒng)收集讀取的環(huán)境數(shù)據(jù)還可以向云平臺發(fā)送控制指令,進而可以實現(xiàn)家居的智能遠程監(jiān)控。
本文設(shè)計的家居系統(tǒng)總體框圖如圖1 所示,包括主副單片機,Wi-Fi 通信模塊,溫濕度及燃氣檢測模塊、驅(qū)動電機模塊、燈光繼電器模塊、云平臺和安卓系統(tǒng),系統(tǒng)的最大特點是:家居主單片機配有顯示控制屏可以本地操作,還可以通過云平臺利用手機APP遠程操控,兩種方式無縫通信。
系統(tǒng)采用主控制和副控制兩個控制器,兩個控制器的功能不同,主控制負責發(fā)送控制指令和顯示家庭主要情況,是人與家庭控制系統(tǒng)交互的窗口;副控制負責接收安卓設(shè)備指令和主控制的指令實現(xiàn)控制家庭電器設(shè)備及監(jiān)控家居環(huán)境,兩個控制器使用串口通信實現(xiàn)數(shù)據(jù)指令的傳送。在STM32 主控器中,嵌入UCOSIII 操作系統(tǒng)和emWin 圖形GUI,采用多任務(wù)控制的方式使系統(tǒng)控制更加簡便清晰,控制界面更加友好。
STM32F103 是屬于中低端的32 位ARM 微控制器[4],該芯片是ST 公司出品,其內(nèi)核是Cortex-M3,用戶可以很方便的開發(fā),SM32F1 有很多優(yōu)點:
圖1:系統(tǒng)設(shè)計框圖
(1)STM32F1 單片機擁有非常豐富的外設(shè),芯片內(nèi)部集成了諸如:USART、I2C、SPI、ADC、DAC、PWM 等外設(shè),使用起來非常方便;
(2)STM32F1 單片機價格尤為低廉,本設(shè)計使用它可以節(jié)省家居系統(tǒng)的成本;
(3)實時性非常好,中斷源多,響應(yīng)快,尤為適用于智能系統(tǒng)。
本文采用ESP8266 無線Wi-Fi 模塊實現(xiàn)單片機與云平臺之間的通信,其為一款高性能的片上系統(tǒng)SOC,除了集成射頻模組外[5],還有包含GPIO、SPI、I2C 等標準數(shù)據(jù)接口,數(shù)據(jù)傳輸穩(wěn)定可靠,為將Wi-Fi 功能嵌入智能家居系統(tǒng)提供了便捷的解決方案。本文使用單片機的串行通信USART 接口與單片機的接收端(RXD)和發(fā)射端(TXD)進行無線數(shù)據(jù)傳輸。
本設(shè)計采用數(shù)字溫濕度傳感器DHT11 檢測家庭的環(huán)境溫度和濕度,由于其內(nèi)部含有已校準數(shù)字信號輸出的溫濕度復(fù)合傳感器[7],性能穩(wěn)定,可快速感知外界環(huán)境的變化;采用單線制串行接口,與單片機MCU 通信方便,體積小,功耗低,溫度測量范圍0°~ 50°,誤差為±1°,濕度測量范圍在20%~ 95%,測量誤差為±5%。溫濕度傳感器有四個引腳,VCC 和GND 為供電引腳,提供5V 電源。DATA 為數(shù)據(jù)輸出引腳,它與單片機MCU 進行串行連接,一次可以完整傳輸40bit 的溫度濕度數(shù)據(jù)。
圖2:副控制程序流程圖
MQ-9 氣體傳感器模塊可以檢測可燃氣體的濃度,如果一氧化碳或者煤氣等可燃氣體或者有毒氣體濃度過高,其相應(yīng)引腳的電位發(fā)生改變[8],單片機根據(jù)這個引腳的信號就可以知道燃氣濃度超限,產(chǎn)生危險警報。 MQ-9 氣體傳感器對一氧化碳、甲烷、液化氣的靈敏度非常高,而且價格便也不貴,正應(yīng)為它的成本低,可靠性好,使用方法簡單,所以本文采用該傳感器實現(xiàn)可燃氣體的檢測。該模塊有四個引腳,除了電源引腳,DOUT 腳為TTL 高低電平輸出端,AOUT 為模擬信號輸出端,給其供電,然后即可使用。
家庭中窗簾是必不可少的,用于遮擋陽光,本文采用減速直流電機控制窗簾的開合,減速直流電機雖然移動稍緩慢,但它的驅(qū)動力大,況且控制窗簾并不需要太快的速度,所以減速直流電機非常適用于控制家庭的窗簾。在此基礎(chǔ)上,由于減速直流電機自帶碼盤,是編碼電機,容易得到實時的電機速度值,根據(jù)速度反饋值引入先進PID 閉環(huán)控制算法精確控制電機轉(zhuǎn)速。使用直流電機需要用到直流電機驅(qū)動,通過單片機操控驅(qū)動可以控制電機的轉(zhuǎn)動方向和速度,電機采用L298N 進行驅(qū)動信號的放大,單片機發(fā)出電機控制信號IN1~IN4,經(jīng)過L298N 進行隔離和處理之后得到OUT1~ OUT4 用于驅(qū)動電機按要求轉(zhuǎn)動控制窗簾開閉到指定位置。
圖3:云平臺互聯(lián)架構(gòu)
圖4:操作界面
圖5:手機操作界面
在主控制器中嵌入Ucos-III 實時操作系統(tǒng)和emWinGUI 圖形界面,Ucos-III 是一種非常優(yōu)秀的源碼開放嵌入式實時操作系統(tǒng),具有實時性強、可移植性好、多任務(wù)調(diào)度等優(yōu)點,它的多任務(wù)功能可實現(xiàn)模塊的添加和刪除,使其性能和功耗得到有效的優(yōu)化。emWin圖像GUI 則提供良好的人機交互界面,使戶主擁有更好的控制體驗。主控制器程序一開始為初始化各種硬件資源,包括GPIO、TFTLCD 顯示器、串口等,然后便是UCOS 系統(tǒng)的初始化,包括任務(wù)的創(chuàng)建和內(nèi)存分配。
依照方案,副控制器主要的作用是接收主控制器和安卓設(shè)備APP 的指令,并且執(zhí)行相應(yīng)的控制程序,包括照明設(shè)備、窗簾的控制和溫度、濕度、光線強度的采集,副控制程序流程如圖2 所示。
副控制程序中,上電初始化程序,初始化系統(tǒng)時鐘、串口、定時器等外設(shè)設(shè)備,串口1 與主控制器通信,接收主控制的指令、傳送溫濕度等數(shù)據(jù),接收中斷發(fā)生時,接收到指令數(shù)據(jù)包,經(jīng)過解析程序,得到指令,從而可以控制相應(yīng)的設(shè)備。串口3 為與ESP8266無線Wi-Fi 模塊通信的接口,主要作用是接收手機APP 的指令和上傳溫濕度數(shù)據(jù)。
DHT11 溫濕度濕度傳感器模塊可以測量家庭中的環(huán)境溫度和濕度,此模塊的數(shù)據(jù)是采用單總線傳輸?shù)?,單片機每發(fā)送一次起始信號[10],傳感器模塊就會返回一次當前環(huán)境的溫度和濕度,它的數(shù)據(jù)包有40bit,其中8 位濕度整數(shù)數(shù)據(jù)、8 位濕度小數(shù)數(shù)據(jù)、8 位溫度整數(shù)數(shù)據(jù)、8 位溫度小數(shù)數(shù)據(jù)和8 位校驗和。
編程時,模塊總線空閑狀態(tài)為高電平信號,單片機通過拉低數(shù)據(jù)線電平發(fā)送開始信號,等待傳感器模塊響應(yīng),之后模塊便可以返回相應(yīng)的溫度數(shù)據(jù),單片機將這些數(shù)據(jù)解析成我們所需要知道的數(shù)據(jù)。
無線Wi-Fi 只是解決了智能家居的近距離監(jiān)控問題,有了云平臺的加持,智能家居才真正進入智能狀態(tài),可遠距離操控。本設(shè)計選擇機智云平臺,使用簡單,它可以直接生成所需的安卓APP 代碼程序,不用花大量的時間在搭建服務(wù)器和移植APP 上。機智云平臺云端服務(wù)的主要構(gòu)成如圖3 所示,通過使用配套的開發(fā)工具極大的方便了開發(fā)者的開發(fā),大大降低了物聯(lián)網(wǎng)的開發(fā)難度。
引入云平臺的步驟可概括為:
(1)注冊機智云賬號,創(chuàng)建新項目;
(2)創(chuàng)建一系列的數(shù)據(jù)點,包括項目產(chǎn)品所擁有的重要屬性,例如:添加標識符、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)類型等;
(3)使用MCU 開發(fā),生成協(xié)議所需要的移植代碼包;
(4)使用安卓開發(fā)工具開發(fā)友好的監(jiān)控界面并與云平臺連接,實現(xiàn)遠程控制。
為了直觀體現(xiàn)智能家居監(jiān)控系統(tǒng)的性能,搭建了模擬模型,包括兩塊STM32 單片機、窗簾模擬設(shè)備、溫濕度檢測模塊、電燈模擬設(shè)備和安卓手機等。
主單片機的內(nèi)容為家庭的控制中心,控制家庭所有電器設(shè)備,界面友好,操作簡單,顯示屏顯示溫度和濕度等數(shù)據(jù),通過觸屏按鈕發(fā)送指令,指令由串口1 將數(shù)據(jù)指令發(fā)送到副控制器,操作界面如圖4 所示。
經(jīng)過測試,按下主控制器屏幕上的相應(yīng)控制按鈕,相應(yīng)的模擬電器設(shè)備執(zhí)行相應(yīng)的動作,連續(xù)測試20 次,無其他誤動作或故障產(chǎn)生,性能相對穩(wěn)定,操作手感良好。
安卓手機的操作界面如圖5 所示。可以看出,安卓設(shè)備操作界面可以通過虛擬按鈕控制單片機和顯示家庭中的環(huán)境溫度、濕度和光照強度,從測試數(shù)據(jù)來看,屏幕顯示當前溫度、濕度分別為23度和52,與當前環(huán)境溫度濕度值一樣,這說明,安卓手機上顯示的溫度濕度值是正確的,證明本文設(shè)計的系統(tǒng)可實現(xiàn)遠程家居監(jiān)控。
本設(shè)計借助了機智云物聯(lián)網(wǎng)平臺搭建餓一個智能家居控制系統(tǒng),運用了C 語言作為編程語言,控制單片機,實現(xiàn)模塊的控制和傳感器的使用。本設(shè)計的最大特色就是可以遠程控制和檢測,通過數(shù)據(jù)網(wǎng)絡(luò)監(jiān)控家庭電器設(shè)備,可以提高家庭的安全性和可控性。本次設(shè)計經(jīng)過測試,實現(xiàn)了家庭的監(jiān)控和報警以及控制功能,實現(xiàn)了智能家居系統(tǒng)的網(wǎng)絡(luò)化和信息化。