惠云HUI Yun;白偉BAI Wei
(寧夏師范學(xué)院數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院,固原 756000)
智能家居運(yùn)用物聯(lián)網(wǎng)技術(shù),將相關(guān)電子設(shè)備整合進(jìn)行高效管理,實(shí)現(xiàn)智慧生活。智能家居概念于20 世紀(jì)70 年代提出,受限于當(dāng)時(shí)技術(shù)只存在于科幻小說(shuō)、電影中,實(shí)物從未推出。中國(guó)智能家居發(fā)展起步較晚,2000 年至2005年,深圳率先開(kāi)始了智能家居實(shí)體設(shè)備的生產(chǎn)及銷(xiāo)售,面向高檔社區(qū),普通民眾無(wú)相關(guān)概念與體驗(yàn),且技術(shù)單一、體驗(yàn)度不高。2006 年至2010 年,隨著研發(fā)資金的不斷投入,智能家居整體技術(shù)與市場(chǎng)體系日趨完善,國(guó)內(nèi)的眾多企業(yè)開(kāi)始研發(fā)智能家居系統(tǒng),其中以清華同方的E-Home 和海爾集團(tuán)旗下的U-Home 為典型代表。2011 年以后,隨著IT、電子、5G 通信技術(shù)的進(jìn)步以及國(guó)內(nèi)政策大力扶持,產(chǎn)品設(shè)計(jì)研發(fā)與生產(chǎn)逐步走向產(chǎn)業(yè)化,智能家居徹底開(kāi)始普及,智能家市場(chǎng)規(guī)模進(jìn)一步擴(kuò)大,進(jìn)入高速發(fā)展期,擁有廣闊發(fā)展前景。讓住戶真正體驗(yàn)到的智慧生活所帶來(lái)的品質(zhì)與便捷。
本文設(shè)計(jì)了基于阿里云物聯(lián)網(wǎng)平臺(tái)智能家居系統(tǒng),分硬件系統(tǒng)與軟件系統(tǒng)[1]。硬件系統(tǒng)設(shè)計(jì)原則單個(gè)模塊既能獨(dú)立運(yùn)行又能組網(wǎng)聯(lián)動(dòng),網(wǎng)絡(luò)穩(wěn)定可靠,能適應(yīng)各種極端狀況,例如突發(fā)停電、網(wǎng)絡(luò)不通等,保證局部故障不影響整體使用,能迅速排查出故障便于維護(hù)。軟件系統(tǒng)設(shè)計(jì)原則操作界面簡(jiǎn)潔、快捷、高集成性,可選擇預(yù)設(shè)場(chǎng)景或自定義使用場(chǎng)景,住戶在不需要改變傳統(tǒng)使用習(xí)慣的同時(shí)又能體驗(yàn)智慧聯(lián)網(wǎng)控制帶來(lái)的智能生活體驗(yàn)。整體運(yùn)行模式如圖1 所示。
圖1 阿里云智能家居系統(tǒng)運(yùn)行模式
主要硬件由七大模塊。
①主板模塊。核心主板能夠連接所有控制單元,并實(shí)現(xiàn)相應(yīng)功能,保證各個(gè)模塊運(yùn)行正常。可接入存儲(chǔ)設(shè)備,支持影像、聲音等數(shù)據(jù)的本地存儲(chǔ)且同步上傳云系統(tǒng)。主板選擇Arduino UNO,核心參數(shù)如表1 所示。
表1 Arduino UNO 核心參數(shù)
②電路控制模塊。室內(nèi)照明、電器、能實(shí)現(xiàn)遠(yuǎn)程控制、定時(shí)或延時(shí)開(kāi)關(guān),可編輯使用場(chǎng)景對(duì)光照時(shí)間、亮度家電使用等實(shí)現(xiàn)個(gè)性化設(shè)置。每個(gè)社會(huì)有單獨(dú)線路,保證網(wǎng)絡(luò)癱瘓后能獨(dú)立運(yùn)行,不影響、不改變住戶傳統(tǒng)使用習(xí)慣。
SRL-12/16A 智能控制模塊支持內(nèi)網(wǎng)/外網(wǎng)路由拓展、藍(lán)牙、4G、WIFI 通信,隨時(shí)能對(duì)回路進(jìn)行定時(shí)、控制、編程,支持電能質(zhì)量監(jiān)測(cè),真正實(shí)現(xiàn)能效管理。每回路獨(dú)立按鈕開(kāi)關(guān)0~2000 毫秒可調(diào)延時(shí)控制、每回路4 組獨(dú)立時(shí)控。根據(jù)光線明暗、用戶是否在家可自動(dòng)開(kāi)關(guān)燈。觸發(fā)消防聯(lián)動(dòng)時(shí)強(qiáng)制全開(kāi)或全關(guān)掉電記憶,再來(lái)電后狀態(tài)可設(shè)置全開(kāi)聯(lián)動(dòng)。同時(shí)也可以通過(guò)外部信號(hào)強(qiáng)制開(kāi)啟全部回路,根據(jù)使用場(chǎng)景設(shè)置相應(yīng)模式。
③環(huán)境監(jiān)測(cè)模塊。對(duì)室內(nèi)環(huán)境數(shù)據(jù)進(jìn)行采集,主要有溫濕度傳感器、氣體傳感器等。傳感器將采集數(shù)據(jù)傳遞給控制單元進(jìn)行數(shù)據(jù)處理,并同步上傳云平臺(tái)。當(dāng)室內(nèi)環(huán)境出現(xiàn)異常時(shí),蜂鳴器及警示燈會(huì)發(fā)出警報(bào),并通絡(luò)網(wǎng)絡(luò)傳輸云平臺(tái),云平臺(tái)通過(guò)APP 實(shí)時(shí)推送給住戶,以便做出及時(shí)響應(yīng)。
DHT11 傳感器是溫濕度復(fù)合傳感器,利用紅外模塊遙控感知外界溫濕度變化,可靠性、穩(wěn)定性高。室內(nèi)氣體檢測(cè)可選擇MQ2-9/135 模塊。其中MQ2-9 傳感器可檢測(cè)煙霧氣、酒精、甲烷、液化天然煤氣、異丁烷丙烷、一氧化碳、氫氣等氣體,MQ-135 可進(jìn)行常規(guī)空氣氧含量檢測(cè)等。
④視頻監(jiān)控模塊。室內(nèi)可根據(jù)需求安裝多路視頻監(jiān)控,主控系統(tǒng)可實(shí)時(shí)查看畫(huà)面,并將數(shù)據(jù)保存在本地存儲(chǔ),并同步于云系統(tǒng)存儲(chǔ)中。
ESP32-S2 模塊,是小尺寸的攝像頭模組,尺寸僅為27*40.5*4.5mm,深度睡眠電流最低達(dá)到6mA。采用了DIP封裝,可直接接入Arduino UNO 主板,實(shí)現(xiàn)多場(chǎng)合使用。
⑤智能門(mén)禁模塊。強(qiáng)調(diào)高安全性,鎖體需機(jī)電一體化,電機(jī)內(nèi)嵌于鎖體中,非外置式背包電機(jī),提高安全性的同時(shí)響應(yīng)速度更快、更靜音、更穩(wěn)定,延長(zhǎng)使用壽命。需內(nèi)置防拆感應(yīng)器,撬動(dòng)門(mén)鎖能發(fā)出警報(bào),堅(jiān)固耐摔,工作溫度-20 到60 度。低電量提醒,支持USB 充電、機(jī)械鑰匙解鎖等。
軟件方面支持WIFI,支持密碼、遠(yuǎn)程授權(quán)臨時(shí)密碼(可設(shè)置有效時(shí)間)、指紋、等解鎖方式。開(kāi)關(guān)門(mén)時(shí),上鎖未到位,會(huì)立即發(fā)出語(yǔ)音提醒。手機(jī)App 能查看剩余電量,能推送開(kāi)門(mén)、警報(bào)等消息,可隨時(shí)查看操作記錄等,住戶可自行決定安裝款式。
⑥網(wǎng)絡(luò)傳輸模塊。須保證網(wǎng)絡(luò)數(shù)據(jù)傳輸?shù)姆€(wěn)定性與速度[2]。Esp8266 是面向物聯(lián)網(wǎng)應(yīng)用的高性價(jià)比、高集成度的Wi-Fi MCU,工作溫度范圍大,運(yùn)行穩(wěn)定能適應(yīng)各種操作環(huán)境。內(nèi)置TCP/IP 協(xié)議,支持Wi-Fi 網(wǎng)絡(luò)連接,具有GP10、PWM、12C、1-Wire、ADC 等功能,結(jié)合Node MCU可快速一鍵配網(wǎng)(smartConfig)。
⑦語(yǔ)音識(shí)別控制模塊。語(yǔ)音經(jīng)過(guò)識(shí)別合成后,轉(zhuǎn)換成二進(jìn)制碼下發(fā)給電路控制器,進(jìn)行設(shè)備識(shí)別與控制。語(yǔ)音控制系統(tǒng)大大降低了智能家居系統(tǒng)的使用門(mén)檻,任何手動(dòng)操作都無(wú)法與智能語(yǔ)音識(shí)別控制比擬。智能語(yǔ)音設(shè)備極易受到環(huán)境干擾,尤其嘈雜、有回音或者有其他聲音干擾時(shí),會(huì)影響智能語(yǔ)音設(shè)備工作穩(wěn)定性。特別是中國(guó)方言、口音、同義詞、近音詞眾多,使得語(yǔ)音識(shí)別變得困難。
語(yǔ)音識(shí)別與控制模塊采用ASR-M09C。該模塊支持用戶自行修改喚醒詞,可識(shí)別詞條、播報(bào)音、音樂(lè)等,用戶可不限次數(shù)修改。使用簡(jiǎn)單,適合零基礎(chǔ)開(kāi)發(fā)者,通過(guò)串口進(jìn)行數(shù)據(jù)傳輸,適合做人機(jī)交互開(kāi)發(fā)實(shí)驗(yàn),兼容C51、STM32、Arduino、Microbit 等平臺(tái)。板載LD3320 非特定人語(yǔ)音識(shí)別芯片,識(shí)別率高。支持連續(xù)對(duì)話、喚醒及按鍵模式,最多可設(shè)置50 組識(shí)別詞條,單個(gè)詞條長(zhǎng)達(dá)79 個(gè)字符。采用最簡(jiǎn)單的TTL 串口輸出,使得應(yīng)用范圍大大增強(qiáng)。內(nèi)置高品質(zhì)MP3 解碼芯片,可實(shí)時(shí)播報(bào),內(nèi)置USB 讀卡功能,支持32GB 以內(nèi)的TF 卡,可與Arduino UNO 搭配使用,系統(tǒng)穩(wěn)定可靠。
對(duì)上述七個(gè)模塊安裝,搭建的實(shí)物模型如圖2 所示。
圖2 智能家居實(shí)物模型
由本地軟件平臺(tái)與阿里云物聯(lián)網(wǎng)平臺(tái)組成。
本地系統(tǒng)是基于Arduino UNO 主板的Arduino IDE開(kāi)發(fā)平臺(tái)。Arduino 語(yǔ)言基于wiring 語(yǔ)言開(kāi)發(fā)[3],對(duì)于初學(xué)者來(lái)說(shuō),只需要掌握基本的單片機(jī)、編程知識(shí),就可快速設(shè)計(jì)開(kāi)發(fā)。支持Windows、Mac OS、Linux,Arduino 的硬件原理圖、電路圖、IDE 軟件及核心庫(kù)文件開(kāi)源,在開(kāi)源協(xié)議范圍內(nèi)里可任意修改原始設(shè)計(jì)及相應(yīng)代碼。
越來(lái)越多的軟件開(kāi)發(fā)者使用Arduino 進(jìn)入硬件、物聯(lián)網(wǎng)等開(kāi)發(fā)領(lǐng)域,已成為物聯(lián)網(wǎng)開(kāi)發(fā)的主要趨勢(shì)之一[4]。開(kāi)發(fā)者只需關(guān)注創(chuàng)意與實(shí)現(xiàn),不再需要浪費(fèi)大量時(shí)間在底層物理硬件邏輯上,從根本上提高項(xiàng)目開(kāi)發(fā)效率,節(jié)約成本,大大縮短了開(kāi)發(fā)周期。且應(yīng)用領(lǐng)域廣泛,醫(yī)療、交通、藝術(shù)等行業(yè)也紛紛進(jìn)入研究。
將上述模塊全部連接到Arduino UNO 主板,Arduino IDE 平臺(tái)可正常檢測(cè)到后,就可進(jìn)行編程。以溫濕度DHT11 傳感器為例編寫(xiě)核心代碼如圖3 所示。
圖3 DHT11 代碼舉例
阿里云以飛天云操作系統(tǒng)為核心,建立了自研芯片、服務(wù)器、計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等軟硬一體的新型計(jì)算體系架構(gòu),“飛天”是中國(guó)唯一自研云操作系統(tǒng),能將全球的數(shù)百萬(wàn)服務(wù)器連接成一臺(tái)超級(jí)計(jì)算機(jī),單集群規(guī)模突破10 萬(wàn)臺(tái)。阿里云物聯(lián)網(wǎng)平臺(tái)提供安全可靠的設(shè)備連接通信能力,支持設(shè)備數(shù)據(jù)采集上云,規(guī)則引擎流轉(zhuǎn)數(shù)據(jù)和云端數(shù)據(jù)下發(fā)設(shè)備端。此外,也提供方便快捷的設(shè)備管理能力,支持物模型定義,數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ),和遠(yuǎn)程調(diào)試、監(jiān)控、運(yùn)維。
使用云平臺(tái),需完成設(shè)備端設(shè)備變成、云端服務(wù)器SDK 配置、數(shù)據(jù)庫(kù)創(chuàng)建、手機(jī)App 開(kāi)發(fā)等[5]。本地設(shè)備通過(guò)MQTT 協(xié)議與物聯(lián)網(wǎng)平臺(tái)建立長(zhǎng)連接,上報(bào)數(shù)據(jù)(通過(guò)Publish 發(fā)布Topic 和Payload)到物聯(lián)網(wǎng)平臺(tái)。通過(guò)AMQP消費(fèi)組,將設(shè)備消息流轉(zhuǎn)到個(gè)人業(yè)務(wù)服務(wù)器上。通過(guò)物聯(lián)網(wǎng)平臺(tái)的云產(chǎn)品流轉(zhuǎn)功能,處理設(shè)備上報(bào)數(shù)據(jù),將處理后的數(shù)據(jù)轉(zhuǎn)發(fā)到RDS、表格存儲(chǔ)、函數(shù)計(jì)算、TSDB、企業(yè)版實(shí)例內(nèi)的時(shí)序數(shù)據(jù)存儲(chǔ)、DataHub、消息隊(duì)列RocketMQ 等云產(chǎn)品中,進(jìn)行存儲(chǔ)和處理[6]。通過(guò)業(yè)務(wù)應(yīng)用下發(fā)指令,使業(yè)務(wù)服務(wù)器調(diào)用基于HTTPS協(xié)議的API 接口Pub,給Topic發(fā)送指令,將數(shù)據(jù)發(fā)送到物聯(lián)網(wǎng)平臺(tái)。
①設(shè)備創(chuàng)建與管理。
登錄阿里云物聯(lián)網(wǎng)平臺(tái)。在實(shí)例概覽頁(yè)左側(cè)導(dǎo)航欄中,選擇設(shè)備管理產(chǎn)品,單擊創(chuàng)建產(chǎn)品。在新建產(chǎn)品頁(yè)面,配置參數(shù)后,單擊確認(rèn)。設(shè)備證書(shū)由ProductKey、DeviceName、DeviceSecret 三部分組成,這是平臺(tái)進(jìn)行通信的重要身份認(rèn)證[6]。單擊發(fā)布上線按鈕后,該設(shè)備就上線了。重復(fù)上述步驟可完成所有設(shè)備、模塊添加。
②Web 設(shè)計(jì)與開(kāi)發(fā)。
所有設(shè)備創(chuàng)建完成后,下一步在阿里云APP 開(kāi)發(fā)Web 應(yīng)用程序,添加按鈕連接到相應(yīng)設(shè)備,調(diào)試配置相關(guān)參數(shù),保證功能正確。設(shè)置后好與本地Arduino IDE 程序?qū)?,?shí)現(xiàn)同步。部分操作界面如圖4 所示。
圖4 智能家居APP 操作界面
將所有硬件、軟件連接設(shè)置好后,開(kāi)始系統(tǒng)測(cè)試。
①設(shè)備上線測(cè)試。檢測(cè)所有模塊物理安裝是否正確,連接信號(hào)能否正常傳輸。首先在本地Arduino IDE 開(kāi)發(fā)平臺(tái)上檢測(cè)所有硬件是否全部在線[7],尤其是單個(gè)模塊上附加的擴(kuò)展控制模塊。本地硬件檢測(cè)全部正常后,測(cè)試軟件設(shè)置是否正確。登錄阿里云物聯(lián)網(wǎng)平臺(tái),確認(rèn)云端看到所有設(shè)備、主模塊、子模塊在線。②設(shè)備功能測(cè)試。檢測(cè)所有模塊是否工作正常,本地及云端指令能夠發(fā)出,實(shí)現(xiàn)正確功能,避免出現(xiàn)“張冠李戴”現(xiàn)象,尤其附加模塊與主模塊功能設(shè)置沖突問(wèn)題,須避免。③智能家居環(huán)境異常測(cè)試。異常操作門(mén)禁系統(tǒng)、異常煙霧、溫度、氣體出現(xiàn)時(shí),本地是否報(bào)警、數(shù)據(jù)是否上傳云端,手機(jī)APP 是否接收到數(shù)據(jù)并及時(shí)推送消息。特別是發(fā)生火災(zāi)時(shí)能否聯(lián)動(dòng)報(bào)警,避免出現(xiàn)更大損失。④阿里云平臺(tái)數(shù)據(jù)測(cè)試。上傳的數(shù)據(jù)是否正確保存,能瀏覽各模塊歷史數(shù)據(jù)。數(shù)據(jù)下發(fā)與上傳時(shí),能正確接收,并實(shí)現(xiàn)同步。特別是設(shè)備管理控制數(shù)據(jù)與本地設(shè)備管理數(shù)據(jù)須保持一致。⑤語(yǔ)音控制測(cè)試。語(yǔ)音識(shí)別的穩(wěn)定性和正確率直接影響到使用體驗(yàn)。要對(duì)安靜、嘈雜等環(huán)境分別測(cè)試,語(yǔ)音控制命令能否正確控制相關(guān)設(shè)備、實(shí)現(xiàn)相應(yīng)功能。完成測(cè)試后,形成標(biāo)準(zhǔn)的模型對(duì)比庫(kù),優(yōu)化語(yǔ)音識(shí)別。尤其ASR-M09C 語(yǔ)音識(shí)別控制模塊加載了WEGASUN 2560,需要測(cè)試離線語(yǔ)音識(shí)別與控制,保證網(wǎng)絡(luò)癱瘓的情況下,能正常識(shí)別語(yǔ)音。因此Arduino 中的每個(gè)關(guān)鍵詞要逐一測(cè)試。另外還要測(cè)試語(yǔ)音模塊與控制燈光、空調(diào)調(diào)溫、電視調(diào)臺(tái)、風(fēng)扇風(fēng)量、無(wú)線插座的聯(lián)網(wǎng)聯(lián)動(dòng)功能,保證每項(xiàng)功能正常使用。⑥整體優(yōu)化與安全測(cè)試。硬件系統(tǒng)與軟件系統(tǒng)完成基本功能測(cè)試后,要對(duì)整體系統(tǒng)進(jìn)行優(yōu)化測(cè)試。例如硬件方面過(guò)流保護(hù)、過(guò)壓保護(hù)、防反接保護(hù),軟件方面單模塊內(nèi)代碼優(yōu)化,多模塊聯(lián)動(dòng)代碼調(diào)測(cè)等。避免出現(xiàn)回路、邏輯錯(cuò)誤等,保證系統(tǒng)的效率、穩(wěn)定、安全性。其他例如單個(gè)模塊電路、功能、數(shù)據(jù)傳輸、特殊功能等測(cè)試不再贅述。
本文依托Arduino,通過(guò)各種傳感器模塊的整合,完成智能家居的整體設(shè)計(jì)。軟件選擇云平臺(tái)最大的優(yōu)勢(shì)是付費(fèi)即使用,阿里云實(shí)現(xiàn)數(shù)據(jù)備份、數(shù)據(jù)庫(kù)配置、系統(tǒng)維護(hù)等,用戶完全不用擔(dān)心數(shù)據(jù)丟失等問(wèn)題,只要網(wǎng)絡(luò)暢通就可訪問(wèn),用智慧家居如同用水、用電一樣,真正實(shí)現(xiàn)云應(yīng)用、智享生活。