賈曉寶,畢玉潔,姚衛(wèi)豐,譚凌峰,劉鵬程
基于Arduino的智能家居語音控制及能源管理系統(tǒng)設計*
賈曉寶1,畢玉潔1,姚衛(wèi)豐1,譚凌峰1,劉鵬程2
(1.深圳職業(yè)技術學院 機電工程學院,廣東 深圳 518055;2. 深圳市騰訊計算機系統(tǒng)有限公司,廣東 深圳 518055)
文章設計了基于Arduino的智能家居語音控制及能源管理系統(tǒng),系統(tǒng)主要由主控制器模塊、語音識別模塊、液晶顯示模塊、繼電器組模塊及電源模塊等組成.通過非特定人語音識別技術,系統(tǒng)可根據(jù)用戶口令控制相關電氣動作,監(jiān)測家庭或者整個建筑物設備的耗電量、人員活動狀態(tài)、家居環(huán)境等參數(shù),并將各類參數(shù)在液晶屏模塊實時顯示,也可將參數(shù)作為數(shù)據(jù)源為第三方平臺提供數(shù)據(jù)服務.
Arduino;開源;非特定人語音識別;室內環(huán)境
艾瑞咨詢在其2018年中國智能家居行業(yè)研究報告中指出:物聯(lián)網(wǎng)、云計算和人工智能是智能家居領域的三大關鍵技術[1].金基環(huán)境智能研究機構進一步指出,智能家居有望在聽覺、視覺及觸覺等多層面具備主動觀察和感知能力[2].將語音識別這項新技術與傳統(tǒng)的智能家居電氣控制系統(tǒng)相結合,可以讓語言成為人類和智能家居系統(tǒng)溝通的橋梁,使人類的日常家居生活變得更加便捷、舒適與節(jié)能.文獻[3]實現(xiàn)了語音與玩具娃娃的簡單對話,文獻[4]通過語音識別實現(xiàn)對電燈、風扇、窗簾的控制,文獻[5]對智能家居能耗管理系統(tǒng)的背景、組成與趨勢進行了深入分析,文獻[6]結合環(huán)境參數(shù)、設備狀態(tài)從深度學習的角度設計了一種智能家居管控模型.本研究結合語音識別技術、室內環(huán)境參數(shù)采集、電量參數(shù)采集以及節(jié)能控制策略,從標準、開放與節(jié)能的角度出發(fā)設計了基于開源硬件Arduino的智能家居語音控制及能源管理系統(tǒng).
基于Arduino的智能家居語音控制及能源管理系統(tǒng)采用非特定人語音識別技術,通過MIC采集人的自然語言,輸入語音識別模塊后實施頻譜分析與語音特征的提取,并將識別的語音轉換成特定的字符串經(jīng)SPI串行總線接口傳輸給微控制器.微控制器將接收的字符串與其預定義好的關鍵詞語列表中的關鍵詞語進行匹配,若匹配成功則微控制器通過繼電器模塊執(zhí)行相應動作,否則微控制器視接收到的字符串為無效信息或干擾信息,不執(zhí)行任何操作.同時,微控制器通過數(shù)字輸入端口接收來自人體紅外傳感模塊、溫濕度傳感模塊的信息,系統(tǒng)自動判斷是否有人在房間,當房間內無人的時長超過系統(tǒng)設定閾值時及時停止用電設備,達到節(jié)約能耗的目的;通過模擬輸入端口采集用電設備的電流值,計算設備的耗電量.微控制器將采集的溫濕度、電量、人員狀態(tài)信息通過I2C通信方式實時顯示在液晶顯示模塊上,便于人們及時了解各用電設備的耗電量及室內環(huán)境狀況,加強人們的節(jié)能意識.系統(tǒng)設計原理圖如圖1所示.
微控制器是控制系統(tǒng)的核心,系統(tǒng)基于開源硬件平臺Arduino UNO進行設計開發(fā).Arduino UNO基于ATmega328P的單片機開發(fā)板,具有14路數(shù)字輸入輸出,6路模擬輸入,1路UART接口,非常適合小型的輸入輸出接口控制的對象[7].
圖1 基于Arduino智能家居語音控制及能源管理系統(tǒng)原理圖
語音識別模塊采用LD3320芯片,非特定人語音識別技術,可離線識別[8].該芯片的工作電源電壓為3.3V,采用SPI的通訊方式接口,可與Arduino對應的SPI管腳直接連接即可,接線相對簡單[9].此外,SPI接口傳輸協(xié)議簡單,數(shù)據(jù)的傳輸速率高,語音識別模塊與微控制器通過該接口通訊,具有較強的實時性.從語音識別到微控制器執(zhí)行相關動作,使用者不會感覺到時延的存在.
為了使該控制系統(tǒng)功能更加完善,使用更人性化,系統(tǒng)硬件配置了室內環(huán)境感知與采集模塊、人員移動探測、電器電量采集等傳感器、LCD液晶顯示器等輔助設備.溫濕度傳感模塊DHT11是一款含有已校準的數(shù)字信號輸出的溫濕度復合傳感器[10],與微控制器Arduino單總線接口通訊.電流互感器(CT Sensor)是測量交流電流(AC)的傳感器,系統(tǒng)設計開合式電流互感器結構,尤其對已正常供電的建筑物,不用斷電就可完成傳感器及系統(tǒng)的安裝[11].電流采集電路設計一33Ω的負載電阻,將互感器二次線圈輸出交流電流轉換為范圍[-2.333,2.333]伏交流電壓;同時設計一組由2只10kΩ電阻和一只10μF電容構成的偏置電路,將負載電阻的電壓變化范圍提升到適合微控制器采集計算的電壓范圍.液晶顯示模塊選擇16*2的LCD顯示器并且采用了RGB的背光燈,可以使顯示屏顯示出不同的顏色,液晶顯示模塊與微控制器通過I2C方式通信[12].詳細電路設計圖如圖2所示.
系統(tǒng)軟件程序包括初始化程序、語音識別程序、參數(shù)采集顯示程序3個部分.初始化程序主要包括對Arduino控制板的引腳形式的初始化、相關庫函數(shù)的加載、語音識別模塊的初始化以及波特率的設置等.語音識別程序主要是判斷輸入的語音字符是否符合關鍵列表中定義的語音,根據(jù)具體的語音口令執(zhí)行相關操作.參數(shù)采集顯示程序主要是在定義引腳的基礎上,采集計算不同的參數(shù)并且顯示在LCD屏.軟件工作流程圖如圖3所示.
初始化主要通過 void setup()函數(shù)完成[13],其目的是加載相關庫函數(shù)、設置波特率、常量定義等,為系統(tǒng)做一些基本的初始化工作.在該系統(tǒng)控制的軟件實現(xiàn)過程中,初始化主要由4部分組成:Arduino控制板的引腳狀態(tài)的初始化、波特率的設置、LD3320語音模塊的初始化以及LCD液晶屏的初始化.1)引腳狀態(tài)初始化通過pinMode函數(shù)來完成,初始化程序需完成:定義A1~A3引腳為三路電量采集通道;定義D0~D3為三路輸出控制繼電器組模塊通道;定義D6、D8引腳分別為采集溫濕度與人體感應狀態(tài).2)波特率作為該系統(tǒng)與第三方軟件平臺信號傳輸速率的一種量度,通過調用串口函數(shù)將系統(tǒng)波特率定義為9600[14].3)語音識別模塊LD3320 通過SPI方式與 Arduino 控制板通信,在初始化芯片的SPI通訊方式前必須加入庫函數(shù)ld3320.h,通過Voice.ini()來實現(xiàn)[15].4)LCD屏的初始化是通過begin()函數(shù)來實現(xiàn)的,該函數(shù)有2個參數(shù),第一個參數(shù)指列,表示LCD的列數(shù);第二個參數(shù)指行,表示LCD的行數(shù).具體程序如圖4所示.
圖2 設計電路圖
圖3 軟件工作流程圖
圖4 系統(tǒng)初始化程序樹狀圖
語音識別與參數(shù)采集顯示程序主要是通過void loop()函數(shù)完成.void loop()函數(shù)是一個循環(huán)函數(shù),軟件會循環(huán)運行這個函數(shù)內的程序.
語音識別程序由3部分組成:設置關鍵指令的內容和參數(shù),識別指令,識別條件以及根據(jù)識別的結果輸出狀態(tài).1)設置指令內容和參數(shù)主要是通過函數(shù)Voice.addCommand()來完成,這個函數(shù)包含兩個參數(shù),第一個是指令內容,設置LD3320識別的關鍵詞語,第二個參數(shù)是給關鍵詞語排序.2)開始識別指令時通過Voice.start()函數(shù)完成的,該函數(shù)在系統(tǒng)上電后運行,執(zhí)行該函數(shù)LD3320會無限循環(huán)識別周圍環(huán)境的聲音.3)因為對識別的精度要求比較高,所以采取的識別模式為觸發(fā)識別,當按鈕的狀態(tài)為HIGH,LD3320會開始識別環(huán)境的聲音.
參數(shù)采集顯示程序由3部分構成:定義引腳、采集參數(shù)與顯示參數(shù).1)定義各參數(shù)采集的物理引腳,如電流傳感器的引腳定義是由emon1.current()函數(shù)完成的,這函數(shù)包含兩個參數(shù),第一個為引腳參數(shù),是模擬量引腳,第二個參數(shù)為電流傳感器互感器的量程.2)顯示參數(shù)是通過函數(shù)lcd.print()實現(xiàn)的,采集到的參數(shù)數(shù)據(jù)會顯示在LCD屏.語音識別與參數(shù)采集顯示程序樹狀圖如圖5所示.
圖5 語音識別與參數(shù)采集顯示程序樹狀圖
按照上述思想,設計的智能家居語音控制器及能源管理系統(tǒng)實驗板如圖6所示.為了便于測試系統(tǒng)及驗證參數(shù)采集的準確性,該實驗板安裝在深圳職業(yè)技術學院建筑智能化工程樓宇自動化實訓室,該實訓室配置三路照明回路,格力立式空調KFR-72LW 2臺,實訓電腦21臺.系統(tǒng)主要實現(xiàn)功能包括:一路照明回路和1臺空調的語音開關控制;室內人員狀態(tài)與溫濕度參數(shù)檢測;回路實時電流采集,由于照明回路電流較小,空調是大耗能設備,因此系統(tǒng)測試采集其中1臺立式空調的實時電流,互感器安裝如圖7所示;系統(tǒng)通過串口將所采集的數(shù)據(jù)源提供給樓宇集成第三方平臺集成顯示.系統(tǒng)經(jīng)1個月的不間斷測試運行穩(wěn)定可靠.
圖6 系統(tǒng)測試實驗板
圖7 互感器安裝位置
需要說明的是系統(tǒng)為基礎階段,節(jié)能控制的算法較為簡單,空調的開啟除了語音啟動供電外,還必須使用空調專屬遙控器方可真正運行,后期將從提高語音識別的精度與范圍,循環(huán)神經(jīng)網(wǎng)絡控制算法等方面提高系統(tǒng)的穩(wěn)定性和節(jié)能效果.
[1] 艾瑞研究院.中國智能家居行業(yè)研究報告(2018年)[R].上海:上海艾瑞市場咨詢有限公司,2018.
[2] 金基環(huán)境智能.人工智能加持下的智能家居行業(yè)現(xiàn)狀[EB/OL].[2019-04-06].http://www.hn-ami.com/mobile/ArticleDetail-I444.html.
[3] 王富中.基于語音識別技術的智能控制系統(tǒng)設計[J].自動化與儀表,2006(4):8-10.
[4] 王磊.智能語音控制系統(tǒng)的設計與實現(xiàn)[J].計算機測量與技術,2018,26(2):109-122.
[5] Yuanyuan liu Bo-Qiu. review of samrt home energy management system[J]., 2016,104:504-508.
[6] 毛博,徐恪,等.一種基于深度學習的智能家居管控模型[J].計算機學報,2017,40(8):1-15.
[7] Akram syed ali Zachary-Zanzinger. A low cost arduino- based platform for long-term indoor environmental data collection[J]., 2016,100(2):114-126.
[8] 洪家平.LD3320的嵌入式語音識別系統(tǒng)的應用[J].單片機與嵌入式系統(tǒng)應用,2012(2):47-49,53.
[9] Icroute.LD3320數(shù)據(jù)手冊[M].上海:ICRoute公司,2018:3-5.
[10] Aosong.DHT11溫濕度模塊開發(fā)手冊[M].廣州:奧松電子公司,2018:1-5.
[11] Yhdc.SCT006電流互感器開發(fā)手冊[EB/OL].河北:耀華德昌.[2017-07-07].http://www.yhdc.com/product 1393.html.
[12] Seeed technology co. Ltd. Grove-LCD RGB Backlight [EB/OL]. [2018-02-15]. http://wiki.seeedstudio.com/cn/ Grove-LCD_RGB_Backlight/.
[13] Fund Arduino. Arduino IDE User Manual[EB/OL]. [2017-03-22]. https://www.arduino.cc/en/Main/Software.
[14] 周騎.面向家庭的無線移動視頻監(jiān)護系統(tǒng)[D].北京:北京交通大學,2015.
[15] Icroute公司.LD3320開發(fā)手冊[M].上海:Icroute公司,2018:11-19.
Design of Smart Home Voice Control and Energy Management System Based on Arduino Micro-Controller
JIA Xiaobao1, BI Yujie1, YAO Weifeng1, TAN Lingfeng1, LIU Pengcheng2
()
In this paper, a smart home voice control and energy management system based on Arduino micro-controller is designed. The system is mainly composed of micro-controller, voice recognition, LCD display, switch groups and power module. Via speaker-independent automatic speech recognition technology, the system can control domestic appliances and measure a number of important parameters in a house, such as electricity (electric power consumption), human presence, and indoor environment. The system can also display those parameters on LCD screen and supply service for the third platform as a data source.
Arduino; open source; speaker-independent automatic speech recognition; indoor environment
2019-05-23
深圳職業(yè)技術學院自然科學基金資助項目(601822K21027)
賈曉寶,男,陜西人,碩士,講師,研究方向為建筑智能化控制技術.
TP273
A
1672-0318(2020)01-0023-06
10.13899/j.cnki.szptxb.2020.01.004