馬 雷,何丹丹
(平頂山學(xué)院 信息工程學(xué)院,河南 平頂山 467000)
在傳統(tǒng)家居環(huán)境中,對家電的控制一般采用遙控器或者開關(guān)按鈕,而這樣會有距離限制,有時還會出現(xiàn)找不到遙控器的問題。隨著經(jīng)濟的發(fā)展,物聯(lián)網(wǎng)技術(shù)應(yīng)運而生?,F(xiàn)如今,家庭WiFi擁有率高達95%以上,利用物聯(lián)網(wǎng)技術(shù)來開發(fā)一款可遠程控制各種家電的智能家居系統(tǒng),不僅擺脫了距離的限制,也提升了生活的幸福感[1-7]。
本文所提出的智能云家居語音交互系統(tǒng)集成了煙霧濃度模塊、光強度模塊、PM2.5濃度模塊、溫濕度模塊等硬件來作為數(shù)據(jù)采集端,通過繼電器來控制空調(diào)開關(guān),通過絲桿電機控制窗簾開合以及RGB燈來模擬室內(nèi)照明。該系統(tǒng)不僅可以通過語音控制,也可以通過Web端控制,為用戶提供了極大的便利。
本設(shè)計中,硬件系統(tǒng)分為節(jié)點和中控兩個部分,節(jié)點和中控通過無線通信進行數(shù)據(jù)傳輸。節(jié)點套件包含傳感器(溫濕度、PM2.5、光照強度、煙霧濃度等)以及控制器(智能照明、窗簾、繼電器等),中控包括語音控制模塊等。節(jié)點數(shù)據(jù)通過LoRa無線通信傳輸?shù)街锌兀锌赝ㄟ^WiFi連接阿里云通信將數(shù)據(jù)上傳至阿里云服務(wù)器,用戶在室內(nèi)可以通過LCD屏查看數(shù)據(jù),通過語音控制節(jié)點設(shè)備,也可以通過Web實時查看每個節(jié)點的數(shù)據(jù)和控制每個節(jié)點的設(shè)備。系統(tǒng)總體框圖如圖1所示[8-11]。
圖1 系統(tǒng)總體框圖
在本設(shè)計中,主控及節(jié)點均采用意法半導(dǎo)體公司開發(fā)的32位處理器。其中主控芯片采用的是STM32F103RCT6,內(nèi)存大小為256 KB;節(jié)點芯片采用的是STM32F103C8T6,內(nèi)存大小為68 KB,內(nèi)核均為Cortex-M3。該系列芯片有多個ADC、SPI、I2C接口,支持庫函數(shù)開發(fā),省去了寄存器復(fù)雜的計算步驟[12-14]。
本設(shè)計采用的是LD3320語音識別模塊,該模塊工作電壓為3.3 V,它通過漢語拼音識別語音且最多能存儲50條語音,語音識別距離為0~6 m,在距離2 m時識別效果達到最佳。此外,通過設(shè)置垃圾關(guān)鍵字來過濾無效語音。該模塊自帶語音開關(guān),若不想使用語音交互或為了避免人聲嘈雜觸動開關(guān),直接關(guān)閉模塊上的開關(guān)即可,使用時再打開。LD3320使用SPI串行同步通信,通過寄存器寫指令來切換工作模式,其中指令04H為語音識別模式,指令05H為語音播報模式,可通過自身的MP3播放器播報語音,語音支持MP3格式。
本設(shè)計采用BH1750VI對光強度進行檢測,該模塊工作電壓為3.3~5 V,采用I2C串行同步通信。其原理為數(shù)模轉(zhuǎn)換,通過光生伏特效應(yīng)將光信號轉(zhuǎn)化為電信號,經(jīng)集成運放電路放大后由內(nèi)部AD采集電壓,再由內(nèi)部電路轉(zhuǎn)化為二進制數(shù)據(jù),無需復(fù)雜的計算和數(shù)據(jù)偏移修正即可得到準確的光強度數(shù)據(jù)。
本設(shè)計采用DHT11模塊檢測空氣溫濕度,該模塊工作電壓為3.3~5 V,其通信方式為單總線。它需要主機發(fā)送信號開始響應(yīng),采樣間隔為1 s。收到指令且延時一段時間后一次性發(fā)送40位二進制數(shù)據(jù),前16位為濕度數(shù)據(jù),17~36位為溫度數(shù)據(jù),后8位為校驗和。該模塊自帶數(shù)據(jù)校驗,因此得到的數(shù)據(jù)只需通過簡單濾波算法過濾掉異常數(shù)據(jù)即可。
本設(shè)計采用MQ2模塊對煙霧濃度進行檢測,該模塊工作電壓為3.3~5 V,其原理為數(shù)模轉(zhuǎn)換。MQ2氣體檢測層材料為二氧化錫,加熱器為鉻鎳合金,穩(wěn)定性好,使用周期長。其數(shù)據(jù)檢測值與空氣中煙霧濃度呈負相關(guān),可運用這一特性計算空氣中煙霧濃度準確數(shù)值。
本設(shè)計使用GP2Y1010AU灰塵傳感器對PM2.5濃度進行檢測,該模塊工作電壓為3.3~5 V,其原理與MQ2相同,都為模數(shù)轉(zhuǎn)換。其采樣時間間隔為0.28 ms,極為靈敏,檢測數(shù)據(jù)與空氣中PM2.5濃度呈正相關(guān),可利用這一特性結(jié)合輸出電壓值來計算得到準確的PM2.5數(shù)值。
本設(shè)計使用直流1路繼電器控制空調(diào)開關(guān),其工作原理為小電流控制大電流,直接控制各種設(shè)備和負載,該模塊工作電壓為5 V。當(dāng)信號觸發(fā)端有低電平觸發(fā)時,公共端與常開端會接通,設(shè)備通電并工作,該設(shè)備控制區(qū)域與負載區(qū)域有隔離槽,安全性能較高。
本設(shè)計使用三色RGB燈模擬室內(nèi)照明,每兩種顏色燈同時打開能構(gòu)成第三種不同的顏色,全部打開則為全彩燈,其工作電壓為3.3~5 V。在實際應(yīng)用中該部分可接室內(nèi)燈,并通過1.8小節(jié)中的繼電器實現(xiàn)控制。
窗簾部分使用42YG34-401A插線式直流二相四線電機控制,其工作電壓為9~42 V,該電機為無刷電機,相較有刷電機無噪聲且壽命更長。因其工作電壓遠遠大于主控工作電壓,為防止電壓損壞單片機,該模塊配備了帶有隔離功能的電壓轉(zhuǎn)換器和專用電源模塊。在接收打開指令后,該模塊四線輪流置高電平,以此實現(xiàn)電機旋轉(zhuǎn)打開窗簾;在關(guān)閉窗簾時,只需按照相反的順序?qū)⒁_拉高。該模塊支持PWM波控制,可通過占空比配置來控制旋轉(zhuǎn)角度。
本設(shè)計采用ESP8266模塊對設(shè)備進行WiFi以及阿里云的連接,該模塊使用方便,工作電壓為3.3 V,通過AT指令進行操作。為方便用戶連接WiFi,設(shè)備內(nèi)置一個WiFi名,用戶可自行創(chuàng)建該WiFi。在找不到內(nèi)置WiFi時,該設(shè)備進入配網(wǎng)模式,用戶只需要根據(jù)屏幕操作提示,打開微信端的一鍵配網(wǎng)小程序即可完成系統(tǒng)的WiFi連接,該接口方便快捷且較為人性化,極大程度地做到了為用戶著想[15]。
為了實現(xiàn)節(jié)點和主控之間的通信,本設(shè)計采用了ATKLORA-01模塊,該LoRa模塊為串行異步全雙工通信,工作電壓為3.3~5 V。在本設(shè)計中,LoRa模式設(shè)置為定點通信,通信速率為2.4 Kb/s,信道為0x17,通信范圍為0~2 km。LoRa模塊可承載大量的數(shù)據(jù)收發(fā),其在本設(shè)計中的主要功能是將節(jié)點數(shù)據(jù)上傳至主控,以及將主控操作指令下發(fā)至節(jié)點。
本設(shè)計采用1.3寸TFTLCD彩屏來對節(jié)點檢測到的環(huán)境數(shù)據(jù)和節(jié)點控制器狀態(tài)進行顯示,其分辨率為240×240,顏色為65K色,其工作電壓為3.3~5 V。該模塊采用ST7789VW驅(qū)動器進行驅(qū)動,主要原理是利用電流刺激液晶分子產(chǎn)生點、線、面并配合背光燈構(gòu)成畫面[16]。此外,該模塊價格也相對比較低。
本設(shè)計中主控芯片ROM大小為256 KB。為了解決內(nèi)存不足問題,本設(shè)計采用Micro SD卡模塊,外接SD卡作為外擴內(nèi)存。該模塊工作電壓為3.3~5 V,使用SPI串行同步通信,通過各種指令進行讀寫,主要存放占用內(nèi)存較大的MP3語音、字庫、圖片等文件。為方便操作,本設(shè)計采用了FatFs文件操作系統(tǒng),通過該操作系統(tǒng),文件解碼更為快捷,極大地節(jié)省了資源占用時間。
在系統(tǒng)第一次上電后,先對各部件進行初始化,各部件初始化完畢并成功連接阿里云平臺后,節(jié)點開始讀取傳感器數(shù)據(jù)以及各個控制器的狀態(tài)數(shù)據(jù),要檢測的環(huán)境數(shù)據(jù)為PM2.5濃度、空氣溫濕度、光強度和煙霧濃度,在經(jīng)過校驗和數(shù)據(jù)過濾后通過LoRa模塊發(fā)送至主控。此時主控循環(huán)判斷是否收到對節(jié)點電器的調(diào)控指令,指令格式為語音及網(wǎng)頁端消息,若收到指令則將其下發(fā)給節(jié)點做出對應(yīng)控制,并播報相關(guān)語音。最后主控將收到的傳感器數(shù)據(jù)以及節(jié)點電器狀態(tài)顯示到LCD屏幕上,并通過MQTT協(xié)議將這些數(shù)據(jù)上傳到阿里云端。系統(tǒng)總體軟件設(shè)計流程如圖2所示。通過阿里云界面網(wǎng)頁端可以實時查看環(huán)境數(shù)據(jù)并做出電器調(diào)整。阿里云Web界面如圖3所示。
圖2 系統(tǒng)總體軟件流程
圖3 阿里云Web界面
調(diào)控裝置軟件設(shè)計流程如圖4所示,在設(shè)備穩(wěn)定運行后,主機循環(huán)掃描是否接到調(diào)控請求。請求格式分為兩種:網(wǎng)頁端和語音識別請求。
圖4 調(diào)控裝置軟件流程
用戶在網(wǎng)頁端開關(guān)虛擬按鍵時,進行操作一:數(shù)據(jù)以JSON格式下發(fā)到主控,主控經(jīng)過解析轉(zhuǎn)化為二進制。接著進行操作二:數(shù)據(jù)解析為16進制,并通過LoRa通信下發(fā)到節(jié)點,節(jié)點再將數(shù)據(jù)轉(zhuǎn)化為二進制,識別消息后讓控制器做出對應(yīng)反應(yīng)??烧{(diào)控電器有三種,分別為RGB燈、空調(diào)(繼電器)和窗簾(直流無刷電機)。在調(diào)控完畢后,會通過返回值以及文件操作系統(tǒng)調(diào)用SD卡中的MP3文件,做出語音提示電器已打開或已關(guān)閉,并以同樣的數(shù)據(jù)處理方式原路反向?qū)⒖刂破鳡顟B(tài)返回至主控屏幕,并上傳至阿里云端。
在收到語音調(diào)控命令時,則會對語音進行拼音比對,同時通過垃圾關(guān)鍵詞過濾錯誤語音,比對成功后操作同操作二。
WiFi及阿里云連接軟件流程如圖5所示。用戶連接WiFi有如下兩種方式:
圖5 WiFi及阿里云連接軟件流程
(1)方式一:在主控板編程中,該設(shè)計內(nèi)置了一個名為SmartCloud的WiFi,密碼為12345678,用戶可將家庭WiFi及密碼改成該格式,這樣主控上電后會自動掃描連接這個WiFi,之后通過MQTT協(xié)議進行報文操作連接阿里云。
(2)方式二:在經(jīng)過1 min的掃描后,若未掃描到內(nèi)置WiFi,則設(shè)備進入SmartConfig模式,并在屏幕上提醒用戶打開微信小程序的一鍵配網(wǎng)模式,選擇AirKiss模式,輸入WiFi名和密碼,點擊即可完成主控板WiFi的連接,隨后同方式一,自動進行阿里云連接。
本文介紹了一種基于阿里云的智能云家居語音交互系統(tǒng)。該設(shè)計在應(yīng)用方面功能齊全,兼具靈活性和實用性,同時在節(jié)點板上有預(yù)留端口,可繼續(xù)增加傳感器和控制器設(shè)備,為未來的進一步改進提供了可能。同時本設(shè)計款式新穎,最大的亮點是語音交互和網(wǎng)頁控制,以中程、遠程操控的方式,讓用戶擺脫了距離的束縛。