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