黎恒貝,盧翠珍,勞添遠,韋嗣松,黃國鑫,韋嫻嫻
(百色學院,廣西 百色 533000)
隨著科學技術水平的提高,傳統的家居正逐漸被淘汰。在新科技革命背景下,隨著用戶需求升級和技術進步,智能化的家居設備逐步走入大眾生活?!爸悄芑币殉蔀榻陙淼纳鐣衢T話題之一,“智能化”也從概念逐步走向落地應用[1-4]。本文設計和開發家居智能控制系統,以迎合未來經濟發展趨勢。小物守家—智能家居控制系統能夠為用戶提供智能家居控制方案,讓用戶更方便、更高效地進行控制,為家庭日常生活節省不必要的能源消耗。
系統由信息采集、信息處理及輸出三大模塊組成。其中以STM32F103RCT6芯片為控制中心,通過MQ-2氣體傳感器模塊、DTH11溫濕度傳感器模塊、光照傳感器模塊采集室內氣體數據、溫濕度及光照強度,紅外感應模塊檢測周圍有無人員。由ASR語音模塊進行語音交互控制,ESP-01S模塊實現將數據上傳至服務器與微信小程序端,在服務器端進行單片機與小程序的數據交互,小程序端則不僅可以顯示數據,還可向單片機發送控制指令,從而實現L9110H風扇模塊、LED模塊、模擬窗戶的SG90舵機的智能控制。系統采用DS1302時鐘模塊進行時間的校驗,OLED顯示屏實時顯示采集信息??刂菩酒╇婋妷簽?.3 V,其余外設模塊供電均為5 V。系統框架如圖1所示。
系統硬件電路如圖2所示。

圖2 系統硬件電路
主控芯片STM32F103RCT6功能較為齊全、體積小、價格較低[5-6],同時支持FreeRTOS實時操作系統的開發。因此采用性能價格相對較高的STM32系列芯片,在滿足目前的項目需求前提下,后期的升級空間也更大。若使用STC12系列單片機為主控,雖然相較于51單片機而言擁有更快的速度和更低的功耗,但是相對于STM32F103RCT6,不論是功能還是性能都相對落后,而且后期升級的余地也小很多。因此根據實際情況來看,此系統使用STM32F103RCT6芯片作為主控芯片更為合適。
ASR語音模塊可以進行語音識別,并通過串口與STM32單片機進行數據交互,從而實現對家居的語音控制。ASR語音模塊使用方便、成本較低、數據傳輸穩定,自帶麥克風輸出,還可通過智能公元平臺進行二次開發。用戶可使用語音交互,實現對住宅家居的操作,如開關燈、風扇、窗簾、窗戶以及播報信息、時間等,能夠提高住戶的日常生活便捷性和高效性,優化住戶的住宅體驗。同時考慮到用戶普通話不標準和家中老人只懂方言的情況,ASR語音模塊還支持方言交互,用戶使用自學習命令即可添加方言交互功能。
MQ-2氣體傳感器與煙霧接觸后晶粒間界處的勢壘會發生變化,造成表面導電率改變。MQ-2穩定性好、靈敏度高、壽命長、驅動電路簡單[7-8],可用于液化氣、苯、烷、酒精、氫氣、煙霧等氣體的檢測。STM32單片機通過ADC采集功能采集MQ-2傳感器返回的電壓值即可得出家中的氣體濃度,從而進行判定。若氣體濃度高于設定值時會觸發語音報警,同時打開風扇與窗戶,加強家中通風。
DHT11是集電阻測濕元件和NTC測溫元件于一體的濕溫度傳感器[9]。單片機與DHT11傳感器通過單總線連接,可以對局部濕度和溫度進行實時采集。在采集到家中溫度與濕度數據后與設定的閾值進行對比,若當前值高于閾值則會觸發語音報警,同時打開風扇與窗戶,加強家中通風。
光照采集傳感器的工作原理是以內部光電作用為基礎的。電阻值隨著光照強度的增加而迅速降低。由于光產生的載流子都參與導電,在外加電場的作用下做漂移運動,從而使傳感器的阻值迅速下降,電子和空穴就分別向電源的正極和負極移動。STM32單片機使用ADC采集光照采集傳感器返回的電壓值可得出當前光照強度,從而進行判定,當光照強度高于設定值時會進行語音提示,同時驅動SG90舵機,模擬打開窗戶和窗簾。
紅外感應模塊會不斷發射紅外線,當探測范圍內無物體時,紅外線沒有被反射到紅外接收管,因此紅外接收管處于截止狀態,模塊輸出高電平;當探測對象出現在探測范圍內時,紅外線被反射到紅外接收管,使紅外接收管飽和導通,模塊輸出低電平。STM32單片機通過檢測與紅外傳感器相連的GPIO引腳進行判定,當返回低電平時說明有人,則會將燈的狀態進行取反操作,從而實現零接觸開關燈。
ESP8266-01S簡稱ESP-01S,是一款可二次開發的輕巧、超低功耗的WiFi模塊,具有體積小、功能強大的特點,可用于工業領域[10]。STM32通過串口發送AT指令驅動ESP-01S模塊,并且支持多種與服務器通信的協議,其中主要為MQTT協議,在局域網中可以發送報文到MQTT客戶端進行數據收發。
微信小程序實現了APP“觸手可及”,用戶只需打開微信并使用掃一掃功能就能打開APP進行數據查看以及設備控制,提高了用戶的使用體驗和便捷度。其中數據上傳下發都是基于MQTT協議的,它能夠將接收的數據進行解析,更容易對數據進行操作,使用Vue開發可以在未來有更多的優化空間。
服務器端是以騰訊云的云服務器作為媒介,采用EMQX對云服務器進行MQTT部署;對所得到的公網IP進行解析后,再使用一個域名進行配置部署,硬件端就可以通過該域名訪問MQTT客戶端并訂閱和發布topic;而小程序端與云服務器端的數據傳輸需要進行加密,所以在此基礎上為該域名申請一個免費的SSL證書并部署,硬件端無需加密通信,服務器端則作為微信小程序和硬件端的中間人,對其數據進行交互,從而實現互相控制。
系統的主控制器采用STM32F103RCT6單片機,利用單片機的中斷定時器、GPIO口、串口通信、ADC采集、PWM輸出、I2C協議和SPI協議來實現基本功能。
系統運行流程如圖3所示,此系統采用多線程運行的方式,既保障了系統流暢性,又提高了系統的穩定性,適用于日常家居環境。系統運行主要分為數據采集處理部分與控制部分。在數據采集處理部分,STM32主控芯片會不斷采集和更新溫度、濕度、光照以及氣體濃度等數據,當其中有一項超過閾值時則會觸發語音報警并執行響應的處理操作;在控制部分,用戶可通過按鍵控制、微信小程序控制以及語音控制三種控制方法進行閾值的修改、家居設備控制等操作。

圖3 系統運行流程
測試時,根據圖4的作品實物,使用了按鍵、小程序和語音交互三種方法分別測試風扇、窗戶、燈光等三個家庭設備的開關操作,均可以成功地打開和關閉,測試結果見表1所列。同時對于溫濕度、氣體濃度、光照強度等環境數據均可以進行查看,測試結果見表2所列。

表1 控制測試結果

表2 數據采集結果

圖4 作品實物
本文通過使用STM32F103RCT6、ASR語音模塊、各類傳感器、OLED顯示屏、ESP-01S等功能模塊以及相關技術開發了一款智能家居系統。用戶可以通過按鍵控制、微信小程序控制以及語音控制三種控制方法對家庭設備進行控制,可以滿足大多數用戶的居家情景使用。系統的控制芯片采用了FreeRTOS實時操作系統技術進行開發,提高了系統的穩定性和實時性。經測試,本系統能夠對家庭設備進行控制并獲取環境情況,達到了預期的效果。