馬 雷,何丹丹
(平頂山學院 信息工程學院,河南 平頂山 467000)
在傳統家居環境中,對家電的控制一般采用遙控器或者開關按鈕,而這樣會有距離限制,有時還會出現找不到遙控器的問題。隨著經濟的發展,物聯網技術應運而生?,F如今,家庭WiFi擁有率高達95%以上,利用物聯網技術來開發一款可遠程控制各種家電的智能家居系統,不僅擺脫了距離的限制,也提升了生活的幸福感[1-7]。
本文所提出的智能云家居語音交互系統集成了煙霧濃度模塊、光強度模塊、PM2.5濃度模塊、溫濕度模塊等硬件來作為數據采集端,通過繼電器來控制空調開關,通過絲桿電機控制窗簾開合以及RGB燈來模擬室內照明。該系統不僅可以通過語音控制,也可以通過Web端控制,為用戶提供了極大的便利。
本設計中,硬件系統分為節點和中控兩個部分,節點和中控通過無線通信進行數據傳輸。節點套件包含傳感器(溫濕度、PM2.5、光照強度、煙霧濃度等)以及控制器(智能照明、窗簾、繼電器等),中控包括語音控制模塊等。節點數據通過LoRa無線通信傳輸到中控,中控通過WiFi連接阿里云通信將數據上傳至阿里云服務器,用戶在室內可以通過LCD屏查看數據,通過語音控制節點設備,也可以通過Web實時查看每個節點的數據和控制每個節點的設備。系統總體框圖如圖1所示[8-11]。

圖1 系統總體框圖
在本設計中,主控及節點均采用意法半導體公司開發的32位處理器。其中主控芯片采用的是STM32F103RCT6,內存大小為256 KB;節點芯片采用的是STM32F103C8T6,內存大小為68 KB,內核均為Cortex-M3。該系列芯片有多個ADC、SPI、I2C接口,支持庫函數開發,省去了寄存器復雜的計算步驟[12-14]。
本設計采用的是LD3320語音識別模塊,該模塊工作電壓為3.3 V,它通過漢語拼音識別語音且最多能存儲50條語音,語音識別距離為0~6 m,在距離2 m時識別效果達到最佳。此外,通過設置垃圾關鍵字來過濾無效語音。該模塊自帶語音開關,若不想使用語音交互或為了避免人聲嘈雜觸動開關,直接關閉模塊上的開關即可,使用時再打開。LD3320使用SPI串行同步通信,通過寄存器寫指令來切換工作模式,其中指令04H為語音識別模式,指令05H為語音播報模式,可通過自身的MP3播放器播報語音,語音支持MP3格式。
本設計采用BH1750VI對光強度進行檢測,該模塊工作電壓為3.3~5 V,采用I2C串行同步通信。其原理為數模轉換,通過光生伏特效應將光信號轉化為電信號,經集成運放電路放大后由內部AD采集電壓,再由內部電路轉化為二進制數據,無需復雜的計算和數據偏移修正即可得到準確的光強度數據。
本設計采用DHT11模塊檢測空氣溫濕度,該模塊工作電壓為3.3~5 V,其通信方式為單總線。它需要主機發送信號開始響應,采樣間隔為1 s。收到指令且延時一段時間后一次性發送40位二進制數據,前16位為濕度數據,17~36位為溫度數據,后8位為校驗和。該模塊自帶數據校驗,因此得到的數據只需通過簡單濾波算法過濾掉異常數據即可。
本設計采用MQ2模塊對煙霧濃度進行檢測,該模塊工作電壓為3.3~5 V,其原理為數模轉換。MQ2氣體檢測層材料為二氧化錫,加熱器為鉻鎳合金,穩定性好,使用周期長。其數據檢測值與空氣中煙霧濃度呈負相關,可運用這一特性計算空氣中煙霧濃度準確數值。
本設計使用GP2Y1010AU灰塵傳感器對PM2.5濃度進行檢測,該模塊工作電壓為3.3~5 V,其原理與MQ2相同,都為模數轉換。其采樣時間間隔為0.28 ms,極為靈敏,檢測數據與空氣中PM2.5濃度呈正相關,可利用這一特性結合輸出電壓值來計算得到準確的PM2.5數值。
本設計使用直流1路繼電器控制空調開關,其工作原理為小電流控制大電流,直接控制各種設備和負載,該模塊工作電壓為5 V。當信號觸發端有低電平觸發時,公共端與常開端會接通,設備通電并工作,該設備控制區域與負載區域有隔離槽,安全性能較高。
本設計使用三色RGB燈模擬室內照明,每兩種顏色燈同時打開能構成第三種不同的顏色,全部打開則為全彩燈,其工作電壓為3.3~5 V。在實際應用中該部分可接室內燈,并通過1.8小節中的繼電器實現控制。
窗簾部分使用42YG34-401A插線式直流二相四線電機控制,其工作電壓為9~42 V,該電機為無刷電機,相較有刷電機無噪聲且壽命更長。因其工作電壓遠遠大于主控工作電壓,為防止電壓損壞單片機,該模塊配備了帶有隔離功能的電壓轉換器和專用電源模塊。在接收打開指令后,該模塊四線輪流置高電平,以此實現電機旋轉打開窗簾;在關閉窗簾時,只需按照相反的順序將引腳拉高。該模塊支持PWM波控制,可通過占空比配置來控制旋轉角度。
本設計采用ESP8266模塊對設備進行WiFi以及阿里云的連接,該模塊使用方便,工作電壓為3.3 V,通過AT指令進行操作。為方便用戶連接WiFi,設備內置一個WiFi名,用戶可自行創建該WiFi。在找不到內置WiFi時,該設備進入配網模式,用戶只需要根據屏幕操作提示,打開微信端的一鍵配網小程序即可完成系統的WiFi連接,該接口方便快捷且較為人性化,極大程度地做到了為用戶著想[15]。
為了實現節點和主控之間的通信,本設計采用了ATKLORA-01模塊,該LoRa模塊為串行異步全雙工通信,工作電壓為3.3~5 V。在本設計中,LoRa模式設置為定點通信,通信速率為2.4 Kb/s,信道為0x17,通信范圍為0~2 km。LoRa模塊可承載大量的數據收發,其在本設計中的主要功能是將節點數據上傳至主控,以及將主控操作指令下發至節點。
本設計采用1.3寸TFTLCD彩屏來對節點檢測到的環境數據和節點控制器狀態進行顯示,其分辨率為240×240,顏色為65K色,其工作電壓為3.3~5 V。該模塊采用ST7789VW驅動器進行驅動,主要原理是利用電流刺激液晶分子產生點、線、面并配合背光燈構成畫面[16]。此外,該模塊價格也相對比較低。
本設計中主控芯片ROM大小為256 KB。為了解決內存不足問題,本設計采用Micro SD卡模塊,外接SD卡作為外擴內存。該模塊工作電壓為3.3~5 V,使用SPI串行同步通信,通過各種指令進行讀寫,主要存放占用內存較大的MP3語音、字庫、圖片等文件。為方便操作,本設計采用了FatFs文件操作系統,通過該操作系統,文件解碼更為快捷,極大地節省了資源占用時間。
在系統第一次上電后,先對各部件進行初始化,各部件初始化完畢并成功連接阿里云平臺后,節點開始讀取傳感器數據以及各個控制器的狀態數據,要檢測的環境數據為PM2.5濃度、空氣溫濕度、光強度和煙霧濃度,在經過校驗和數據過濾后通過LoRa模塊發送至主控。此時主控循環判斷是否收到對節點電器的調控指令,指令格式為語音及網頁端消息,若收到指令則將其下發給節點做出對應控制,并播報相關語音。最后主控將收到的傳感器數據以及節點電器狀態顯示到LCD屏幕上,并通過MQTT協議將這些數據上傳到阿里云端。系統總體軟件設計流程如圖2所示。通過阿里云界面網頁端可以實時查看環境數據并做出電器調整。阿里云Web界面如圖3所示。

圖2 系統總體軟件流程

圖3 阿里云Web界面
調控裝置軟件設計流程如圖4所示,在設備穩定運行后,主機循環掃描是否接到調控請求。請求格式分為兩種:網頁端和語音識別請求。

圖4 調控裝置軟件流程
用戶在網頁端開關虛擬按鍵時,進行操作一:數據以JSON格式下發到主控,主控經過解析轉化為二進制。接著進行操作二:數據解析為16進制,并通過LoRa通信下發到節點,節點再將數據轉化為二進制,識別消息后讓控制器做出對應反應??烧{控電器有三種,分別為RGB燈、空調(繼電器)和窗簾(直流無刷電機)。在調控完畢后,會通過返回值以及文件操作系統調用SD卡中的MP3文件,做出語音提示電器已打開或已關閉,并以同樣的數據處理方式原路反向將控制器狀態返回至主控屏幕,并上傳至阿里云端。
在收到語音調控命令時,則會對語音進行拼音比對,同時通過垃圾關鍵詞過濾錯誤語音,比對成功后操作同操作二。
WiFi及阿里云連接軟件流程如圖5所示。用戶連接WiFi有如下兩種方式:

圖5 WiFi及阿里云連接軟件流程
(1)方式一:在主控板編程中,該設計內置了一個名為SmartCloud的WiFi,密碼為12345678,用戶可將家庭WiFi及密碼改成該格式,這樣主控上電后會自動掃描連接這個WiFi,之后通過MQTT協議進行報文操作連接阿里云。
(2)方式二:在經過1 min的掃描后,若未掃描到內置WiFi,則設備進入SmartConfig模式,并在屏幕上提醒用戶打開微信小程序的一鍵配網模式,選擇AirKiss模式,輸入WiFi名和密碼,點擊即可完成主控板WiFi的連接,隨后同方式一,自動進行阿里云連接。
本文介紹了一種基于阿里云的智能云家居語音交互系統。該設計在應用方面功能齊全,兼具靈活性和實用性,同時在節點板上有預留端口,可繼續增加傳感器和控制器設備,為未來的進一步改進提供了可能。同時本設計款式新穎,最大的亮點是語音交互和網頁控制,以中程、遠程操控的方式,讓用戶擺脫了距離的束縛。