鄧自寧,王寧
(北方民族大學,寧夏銀川,750021)
隨著物聯網技術的不斷發展,生活中各個行業都或多或少地因其發生改變,智能家居作為物聯網發展的一個重要領域,滿足了人們追求更高生活質量的美好愿景,對人們生活方式的改變有著重要意義。智能家居是通過計算機網絡、通信、自動化控制等技術對傳統家居進行改造,將家電、開關、照明、門窗、監控和家庭安防等模塊連接在一起,方便用戶對家居環境進行監測和對家居設備進行管理的控制系統。該文基于阿里云平臺,采用STM32F103C8T6作為主控芯片和終端節點的控制芯片,結合溫濕度、光照、CO等環境數據傳感器和WiFi模塊構建了能夠進行遠程操控的智能家居系統。它的出現無疑會給人提供一個舒適、安全、便利的生活環境。
基于云平臺的智能家居系統整體分為環境信息采集模塊、數據處理和通信模塊、設備控制模塊和云平臺設計四個部分、系統整體結構見圖1。
(1)環境信息采集模塊:系統將若干終端節點部署在不同房間中,來采集各個房間內傳感器收集的環境信息。通過溫濕度傳感器、光照傳感器獲取室內溫度和濕度值,通過紅外傳感器來判斷室內是否有人、通過煙霧濃度傳感器和CO濃度傳感器來檢測室內是否發生火災和煤氣泄漏。以上傳感器采集到的環境數據信息都將匯總在不同終端節點上,再發送至主控制器進行處理。
(2)數據處理模塊和通信模塊:主控制器接收到終端節點發送的環境數據后對其中的CO濃度數據和煙霧濃度數據進行分析,如果超出設置的閾值,將會通過SIM模塊給用戶發送報警信息并讓蜂鳴器報警,同時將收到的環境數據組成特定的數據幀格式,驅動WiFi模塊使用MQTT報文協議與云平臺進行通信。
(3)云平臺設計:云平臺會將收到的報文進行解析,通過報文中不同的標識符與設備和環境信息一一對應,并將環境數據和電器設備狀態顯示在云平臺界面上,同時會將數據轉發至云智能手機APP上,方便用戶查看室內信息。用戶也可以直接通過手機APP來下發電器設備控制指令。
(4)設備控制模塊:用戶通過手機APP下發控制指令時,指令會先上傳至云平臺,云平臺再將指令通過WiFi模塊下發到主控制器,主控制器將報文解析后發送至不同的終端節點,使終端節點來控制相應的電器設備。
系統采用STM32F103C8T6作為主控制器芯片,該芯片基于32位ARM核心,包含64K字節閃存,3個USART、2個SPI、2個I2C接口等多個通信接口。主控制器通過串口1調試程序、串口2驅動WiFi模塊與云平臺通信、串口3驅動SIM模塊在CO濃度和煙霧濃度超標時給用戶發送報警短信,通過 SPI1接口驅動CC1101射頻通信模塊與終端節點進行通信,以實現環境數據的上傳和設備控制指令的下發。主控制器原理圖見圖2。
系統采用ESP8266作為WiFi模塊實現主控制器與云平臺之間的通信,ESP8266 的芯片是基于無線通信協議的 UART-WiFi透傳模塊芯片,支持802.11b/g/n的無線標準,并帶Station、AP、Station+AP三種可選擇的工作模式。主控制通過串口2向WiFi模塊發送AT指令,將WiFi模塊設置為Station模式,使WiFi模塊通過路由器連接云平臺服務器,來實現主控制器與云平臺的通信功能。ESP8266原理圖見圖3。
系統采用STM32F103C8T6作為終端節點控制芯片,在節點搭載了溫濕度傳感器、光照傳感器、人體紅外傳感器、CO傳感器和煙霧傳感器來收集室內各種環境數據,將收集到的數據通過SPI接口驅動CC1101射頻通信模塊發送至主控制器。同時在終端節點上還搭載著LED燈,繼電器、步進電機等設備來模擬室內電器設備,當終端節點接收到主控制器發來的控制指令時,將指令進行解析后,對相應的設備進行控制。
系統采用DHT11傳感器來收集室內溫濕度數據、BH1750來檢測室內光照強度值、MQ-7可燃氣體傳感器和MQ-2煙霧檢測傳感器分別來檢測室內CO濃度值和煙霧濃度值,采用LED燈管來模擬室內燈光、MG90S舵機來模擬電動窗簾、繼電器來模擬空調和插座等電器。DHT11原理圖見圖4,MQ-2原理圖見圖5。
系統軟件設計主要包括終端節點的軟件設計,主控制器的軟件設計和終端界面設計3部分。
(1)傳感器數據采集和設備控制:系統共有四個終端節點,每個終端節點代表不同的房間,不同的終端節點上掛載有不同傳感器和電器設備。例如在廚房終端節點掛載有煙霧傳感器和CO傳感器,在客廳和臥室掛載有溫濕度和光照傳感器。在對傳感器和電器設備進行初化之后系統開始定時發送數據和接收數據。
(2)數據發送:終端節點上電后首先對串口、SPI等通信接口和定時器進行初始化,緊接著對傳感器驅動程序和電器設備驅動程序進行初始化。將采集到的環境數據和電器設備狀態信息按照特定的協議格式存放在字符數組中,配置定時器中斷服務函數每2分鐘通過射頻模塊給主控制器發送存放在數組中的信息。終端節點數據協議格式如圖6所示。
(3)數據接收:終端節點不斷的等待接收主控制器發送的控制命令,接收到命令后,首先判斷控制命令是否是發送給此節點的,如果是再按照數據協議格式解析要對哪些設備進行什么操作。數據解析結束后向主控制器發送“OKX”字符,表示X號節點接收到數據。
第0位表示控制器表示,0表示設備為主控制器,1-3表示設備為終端節點1-3。
第1位表示數據傳輸方向,0表示主控制器向終端節點發送數據,1表示終端節點向主控制器發送數據。
第2-5位表示溫度數據,第2位為“T”,用來讓主控制器判斷數據是否正確,如果接收到第2位是“T”,將3-5位中的溫度數據取出。
第6-9位表示濕度數據,主控制器如果接收到第6位是“H”,將7-9位中的濕度數據取出。
第10-14位表示光照數據,主控制器如果接收到第10位是“G”,將11-14位中的光照數據取出。
第15-24位表示CO濃度和煙霧濃度數據,主控制器如果接收到第15位是“C”,第20位為“M”,將16-19位中的CO濃度數據和21-24位中的煙霧濃度數據取出。
第25-26位表示LED燈的開關狀態,在第26位中,0表示LED燈打開,1表示LED燈關閉。
第27-28位表示舵機的狀態,在第28位中,0表示正轉720°,1表示反轉720°。
第29-31位表示繼電器的開關狀態,在第30-31位中,00表示繼電器1和2關閉,11表示繼電器1和2打開。
(1)處理終端節點的數據
主控制器在接收到終端節點發送來的數據后,對數據進行解析,提取出數據中的溫濕度、光照等環境信息并存在字符數組后,給發送信息的終端節點回應“OKX”,表示接收到X號終端節點的信息。主控制器對提取出的數據進行分析,如果CO濃度和煙霧濃度超過閾值,則通過串口2發送AT指令驅動SIM模塊給用戶發送報警信息,同時將蜂鳴器打開發出警報。
(2)云平臺通信
主控制器上電后,會對通過AT指令將WiFi模塊設置為Station工作模式,并與云平臺連接,主控制器每隔3分鐘就將終端節點收集到的溫濕度等環境數據發送給云平臺。當主控制器接收到云平臺發來的控制指令時,將指令解析后發送給對應的終端節點。主控制器與云平臺通信內容如圖7所示。
(3)向終端節點下發控制指令
當主控制器收到云平臺發送的控制指令后,將控制指令中的設備名稱與終端節點上搭載的設備名稱對應,并向匹配的終端節點發送控制指令。
本系統采用LittleVGL開發終端界面,LittleVGL是免費的開放源代碼圖形庫,它提供創建嵌入式GUI所需要的一切,具有易于使用的圖形元素,和低內存占用,是由C語言實現,可以輕松移植到不局限于嵌入式設備中的其他設備上。
系統共設計有主界面、臥室、廚房、客廳、陽臺五個界面,每個界面顯示室內不同房間的環境信息和電器設備信息。在主界面設計有房間選擇、當前時間顯示、溫度顯示、和模式選擇四個模塊,再房間選擇模塊中,用戶點擊不同的房間會進入不同的房間控制界面。在不同的房間控制界面會顯示不同的環境參數和設備狀態信息,在客廳顯示溫濕度信息,可以控制插座、燈光、電視等電器設備;在廚房顯示CO濃度、煙霧濃度等環境信息,可以控制燈光和煤氣閥門等開關。讓用戶可以通過LCD觸摸屏來查看室內環境數據和設備狀態,有效地提高了系統的交互性。系統開機界面如圖8所示。
為了方便用戶對環境數據進行查看的同時對電器設備進行操控,系統設計了手機APP控制界面和觸摸屏控制界面。其中手機APP控制界面是通過云智能APP進行設計,觸摸屏控制界面是通過LittleVGL進行編寫,在兩種界面上用戶都可以或少地因其室內環境數據和電器設備狀態,當用戶想要操控電器設備時,只需在界面上對開關按鈕進行操控,增強了智能家居系統的交互性。觸摸屏控制界面如圖9所示。
本文以STM32F103C8T6控制芯片、WiFi模塊和云平臺設計了一種基于云平臺的智能家居系統,使用戶可以在手機APP上查看室內溫濕度、光照、CO濃度等實時環境數據,也可以對室內窗簾、燈、插座等電器設備進行遠程操控。有效地提高了用戶居住環境的舒適性和邊界線。經過測試后,表示結果良好,各個功能穩定運行,可靠性強。