鄧楷煊,張金堯,許彩望,孫朝鵬
(安徽理工大學 電氣與信息工程學院,安徽 淮南 232001)
隨著科學技術的發(fā)展,人們的生活水平日益提高,對居住環(huán)境的要求是更加智能、舒適?!禝DC中國智能家居設備市場季度跟蹤報告》顯示,2021年上半年中國智能家居設備市場出貨量約1億臺,預計未來五年中國智能家居設備市場出貨量將以21.4%的復合增長率持續(xù)增長,2025年市場出貨量將接近5.4億臺,全屋智能解決方案在消費市場的推廣將成為市場增長的重要動力之一。但是,目前國內不同公司采取的技術標準不盡相同,不同品牌的產(chǎn)品無法兼容、成本較高、控制方式單一,無法滿足普通人的需求。
為滿足普通大眾的智能化需求,本文設計了一款智能家居系統(tǒng),使用了嵌入式技術、物聯(lián)網(wǎng)技術、自動控制技術等技術,實現(xiàn)對家居環(huán)境的檢測和控制。彌補傳統(tǒng)的家居控制系統(tǒng)成本高、交互方式單一、用戶和設備交互手段單一等缺點。該系統(tǒng)采用STM32作為硬件控制平臺,通過MQTT協(xié)議并使用ESP8266以JSON數(shù)據(jù)格式來實現(xiàn)云平臺和客戶端之間的信息交互,并且對內使用ZigBee通信來提高系統(tǒng)的靈活性,成本低廉、簡單實用,并且便于再次擴展,很適合低端市場。采用微信小程序控制極大地便利了不同用戶對家庭環(huán)境進行遠程監(jiān)控,保證家庭成員的安全和生活的舒適。
如圖1所示,智慧家居系統(tǒng)主要包括信息采集節(jié)點模塊、控制器模塊、應用模塊。信息采集節(jié)點模塊負責各個傳感器的信息采集和一些家用電器的控制,使用STM32單片機作為節(jié)點的芯片??刂破髂K同樣采用STM32管理各個節(jié)點,并且通過ESP8266來連接家庭WiFi上傳數(shù)據(jù)到云平臺。應用模塊是方便用戶使用通過微信開發(fā)者工具設計的微信小程序,使用者可以采用任意方式監(jiān)控平臺和發(fā)送指令。指令通過WiFi信號傳到控制器,ZigBee協(xié)調器收到控制器發(fā)送的數(shù)據(jù)再處理后發(fā)送至各個節(jié)點,以控制電器。
圖1 系統(tǒng)原理
根據(jù)傳感器功能的不同,分成以下三個系統(tǒng):
(1)健康系統(tǒng):配置了體溫傳感器MAX30205MTA和心率血氧傳感器MAX30102。
(2)環(huán)境系統(tǒng):配置了溫濕度傳感器DHT11、煙霧傳感器MQ-2、光照度傳感器GY-30,用LED燈模擬家庭燈光,報警裝置使用蜂鳴器來設計,蜂鳴器使用低電平觸發(fā),操作簡單。
(3)安全系統(tǒng):配置了超聲波測距傳感器HC-SR04和人體紅外感應傳感器HC-SR501。
根據(jù)實際需求,節(jié)點使用STM32單片機結合ZigBee傳輸模塊組成,選擇使用意法半導體公司ARM Cortex-M3微處理器系列的STM32F103RCT6,性能強大、功耗低、使用方便。ZigBee傳輸模塊則使用市面上常見的CC2530芯片,性能優(yōu)越且便于開發(fā),并且它還內置了ZigBee協(xié)議棧便于構建無線網(wǎng)絡。
主控制器負責與各個節(jié)點進行通信,所以控制器選用正點原子基推出的基于ARM CortexM3內核的ATK-精英STM32開發(fā)板。
使用安信可的ESP8266作為系統(tǒng)的WiFi模塊,通過串口和主控制器STM32通信,支持標準的IEEE802.11 b/g/n 協(xié)議、完整的TCP/IP協(xié)議棧,可以實現(xiàn)WiFi和串口之間的轉換。該模塊可以兼容3.3 V和5 V的單片機系統(tǒng),這樣可以很方便地與主控芯片進行連接;此外,它還支持WiFi-STA、串口轉AP和WiFi-STA+WiFi-AP三種模式,這有利于系統(tǒng)的開發(fā)。將安信可的AT固件燒至8266里,以便用AT指令配置8266模塊。
下位機軟件設計包括終端節(jié)點和控制器節(jié)點的軟件設計,用Keil UI Vision5作為STM32單片機的開發(fā)平臺,使用C語言編寫方便維護和拓展。節(jié)點上的STM32單片機將收集到的數(shù)據(jù)匯總后傳至ZigBee模塊,ZigBee使用Z-Stack協(xié)議棧進行封裝,通過搭建的ZigBee網(wǎng)絡傳遞至網(wǎng)絡的協(xié)調器節(jié)點。協(xié)調器將收集到的各個節(jié)點的數(shù)據(jù)通過USART傳至主控制器,主控制器收到數(shù)據(jù)后通過ID確定節(jié)點;然后判斷數(shù)據(jù)是否超出設定的閾值,確定蜂鳴器是否報警;最后將數(shù)據(jù)打包并且用MQTT協(xié)議封裝后,再通過ESP8266模塊經(jīng)連WiFi發(fā)送至云平臺,用戶的移動端可通過網(wǎng)絡收到數(shù)據(jù)。程序流程如圖2所示。
圖2 程序流程
STM32主控制器通過串口發(fā)送AT指令,以控制8266模塊初始化以及收發(fā)數(shù)據(jù)操作。首先發(fā)送AT測試指令再進行復位,之后將8266設置為透傳模式,開啟DHCP,獲取IP地址;最后連接到服務器的IP地址和端口號,8266初始化成功。
本系統(tǒng)的云平臺是通過MQTT協(xié)議來交互信息的,并且主要交互形式為JSON。控制器將所有的數(shù)據(jù)通過JSON打包,再通過設定的主題發(fā)送到云平臺,手機端和電腦端均可通過訂閱Topic主題獲取。為降低成本,本系統(tǒng)使用的云平臺為EMQ X Cloud提供的免費公共MQTT服務器。
微信小程序采用框架型編程結構,開發(fā)門檻低,兼容性高,能夠兼容多種操作系統(tǒng),并且無須下載和安裝。針對以上優(yōu)點,移動端的上位機使用微信開發(fā)者平臺來開發(fā)。微信小程序開發(fā)MQTT協(xié)議需要先安裝MQTT的客戶端庫。MQTT.js是一個開源MQTT協(xié)議的客戶端庫,可以使用npm進行“npm install mqtt–save”安裝;使用connect函數(shù)連接到MQTT服務器的地址后,再通過subscribe訂閱設備上行數(shù)據(jù)主題。微信小程序請求Web API平臺來調取所訂閱主題的JSON數(shù)據(jù)。需注意,小程序EMQ的WebSocket端口號為8084,WebSocket連接成功后再通過client監(jiān)聽事件,對數(shù)據(jù)進行JSON數(shù)據(jù)解析;通過publish函數(shù)來實現(xiàn)用戶使用微信小程序控制LED燈和報警器的操作,將控制指令進行JSON封裝后傳送至云平臺。
為了方便用戶使用,系統(tǒng)還增加了天氣查詢功能,使用和風天氣提供的免費API,用戶只須去和風天氣官網(wǎng)注冊便能獲得,并且同樣使用JSON對訂閱的數(shù)據(jù)進行解析便可顯示到小程序中,一天可請求1 000次,足夠使用。
在上述硬件系統(tǒng)中,環(huán)境系統(tǒng)包含整套家居系統(tǒng)的主要功能,所以選取環(huán)境系統(tǒng)來測試系統(tǒng)數(shù)據(jù)采集的可靠性。為了方便測試,選取宿舍作為測試對象,選用溫濕度計、亮度計、家用可燃氣體報警器的測量結果作為對照。結合微信小程序來測試數(shù)據(jù)的發(fā)送和接收情況,根據(jù)測試數(shù)據(jù)顯示,環(huán)境系統(tǒng)傳感器均能正常運行。測試結果見表1所列。
表1 硬件系統(tǒng)測試結果
通過測試數(shù)據(jù)可知,環(huán)境系統(tǒng)和標準儀器在相同時間的測試結果基本準確,證明硬件系統(tǒng)的數(shù)據(jù)采集功能有效,硬件功能成功實現(xiàn)。
在測試上位機系統(tǒng)運行的過程中,要測試移動端上位機的正常運行、上位機和硬件的通信功能以及系統(tǒng)的數(shù)據(jù)檢測、照明和報警控制功能,用戶可以直接在列表中切換系統(tǒng),選擇傳感器數(shù)據(jù)的觀測和控制功能,系統(tǒng)界面測試情況如下。
(1)環(huán)境系統(tǒng)界面測試
環(huán)境系統(tǒng)界面測試主要測試內容包括:溫濕度、光照、可燃氣體參數(shù)的觀測,照明控制,可燃氣體超出預設值時自動報警功能,報警裝置的手動控制功能。如圖3所示,通過對上位機環(huán)境系統(tǒng)的測試發(fā)現(xiàn),微信小程序能夠正常獲取到硬件環(huán)境系統(tǒng)收集到的數(shù)據(jù)。(2)健康系統(tǒng)界面測試
圖3 環(huán)境系統(tǒng)測試
圖4 健康系統(tǒng)測試
(3)安全系統(tǒng)界面測試
安全系統(tǒng)主要監(jiān)測人體和人距的信息。人體檢測是通過紅外感應模塊進行的,當人進入紅外感應模塊的測量范圍時傳感器會輸出高電平,當人離開后會輸出低電平。人距的測量是通過超聲波測距模塊進行的,當HC-SR504發(fā)出超聲波時,通過計算超聲波發(fā)送和接收的時間差來測量距離(=,為測試距離,為超聲波發(fā)送和接收的時間差,為聲速,取340 m/s)。安全系統(tǒng)界面測試如圖5所示。通過上位機安全系統(tǒng)的測試發(fā)現(xiàn),上位機的微信小程序能正常獲取到硬件安全系統(tǒng)收集到的數(shù)據(jù)。
圖5 安全系統(tǒng)測試
微信天氣查詢界面功能測試主要測試系統(tǒng)能否準確調用網(wǎng)站提供的天氣參數(shù),以方便用戶正常查詢地區(qū)的天氣參數(shù)。如圖6所示,以安徽淮南田家庵區(qū)為例進行測試發(fā)現(xiàn),天氣系統(tǒng)能夠正常運行,獲取到的天氣數(shù)據(jù)準確,系統(tǒng)功能得到實現(xiàn)。
圖6 天氣查詢功能測試
本文設計了基于STM32單片機、ZigBee通信模塊、ESP8266無線模塊的智慧家居系統(tǒng),能夠通過微信小程序控制并監(jiān)測。經(jīng)過測試發(fā)現(xiàn),系統(tǒng)操作方式簡單、通信穩(wěn)定,可以很好地進行監(jiān)測和控制,滿足用戶的需求,并且系統(tǒng)在靈活性和可拓展性方面均有良好的表現(xiàn)。