韓琛曄,張微微
(河北工程技術(shù)學(xué)院,河北 石家莊 050091)
隨著科技的進(jìn)步,萬(wàn)物互聯(lián)的時(shí)代即將到來(lái)。伴隨著NB-IoT技術(shù)帶來(lái)的物聯(lián)網(wǎng)的發(fā)展,人們對(duì)居住條件要求逐步提高,智慧家庭時(shí)代即將來(lái)臨,搭載物聯(lián)網(wǎng)技術(shù)的智能家居將會(huì)給大家不一樣的體驗(yàn)。目前,智能家居通常采用ZigBee、WiFi、Bluetooth等技術(shù)接入網(wǎng)絡(luò),但這些技術(shù)普遍存在功耗高、接入不方便,網(wǎng)絡(luò)覆蓋范圍小等缺點(diǎn)。NB-IoT是由LTE技術(shù)發(fā)展而來(lái)的,是基于蜂窩的窄帶物聯(lián)網(wǎng)技術(shù),其具備覆蓋范圍廣、終端成本低、海量連接等優(yōu)勢(shì),非常適用于物聯(lián)網(wǎng)中智能家居系統(tǒng)的應(yīng)用。
基于此,本文設(shè)計(jì)一種基于NB-IoT技術(shù)完成智能家居系統(tǒng)。該系統(tǒng)采用具有NB-IoT功能的BC95-B5芯片、融合嵌入式開(kāi)發(fā)、窄帶物聯(lián)網(wǎng)通信技術(shù)、軟硬件設(shè)計(jì)、Android開(kāi)發(fā)以及Huawei OceanConnect云端平臺(tái)接入技術(shù)支持的智能設(shè)計(jì)方案。實(shí)驗(yàn)表明,將NB-IoT技術(shù)應(yīng)用于智能家居控制能夠與家居環(huán)境高度契合,有效提升智能家居用戶(hù)體驗(yàn),應(yīng)用成本也顯著降低。
基于NB-IoT的智能家居系統(tǒng)構(gòu)建遵循物聯(lián)網(wǎng)四層架構(gòu)設(shè)計(jì)方案的原則,從下往上依次為感知層、網(wǎng)絡(luò)層、數(shù)據(jù)層和應(yīng)用層。系統(tǒng)設(shè)計(jì)層次結(jié)構(gòu)如圖1所示。
圖1中:感知層由主控制器、煙霧、溫濕度傳感器、語(yǔ)音識(shí)別模塊、光照傳感器等組成,各傳感器具有數(shù)據(jù)采集功能,微處理器將采集到的數(shù)據(jù)進(jìn)行數(shù)據(jù)處理和控制;網(wǎng)絡(luò)層由NB-IoT模塊、核心網(wǎng)組成,負(fù)責(zé)在NB-IoT終端建立傳輸通道,進(jìn)行數(shù)據(jù)傳輸;數(shù)據(jù)層選擇使用華為云平臺(tái),接收從接入網(wǎng)得到的傳感器請(qǐng)求內(nèi)容,使設(shè)備接入互聯(lián)網(wǎng)。應(yīng)用層通過(guò)APP將從云平臺(tái)獲取的數(shù)據(jù)進(jìn)行直觀的顯示和操作。
圖1 系統(tǒng)總體架構(gòu)
智能家居系統(tǒng)硬件設(shè)計(jì)主要分為三部分,即微控制器模塊設(shè)計(jì)、NB-IoT通信模塊設(shè)計(jì)和各傳感器組模塊設(shè)計(jì)。系統(tǒng)硬件設(shè)計(jì)框圖如圖2所示。
圖2 系統(tǒng)硬件設(shè)計(jì)框圖
考慮到系統(tǒng)要求主控芯片低功耗,具有豐富的接口和模塊功能,而低功耗的L系列在可穿戴等領(lǐng)域具有極大優(yōu)勢(shì),因此主控芯片選用STM32L451RCT6。該芯片具有256 KB的ROM,160 KB的RAM等內(nèi)部資源,引腳數(shù)為64;最高工作頻率為80 MHz;支持低功耗模式,關(guān)機(jī)模式下功耗低至22 nA,待機(jī)模式下功耗低至106 nA。
NB-IoT 無(wú)線(xiàn)通信模塊設(shè)計(jì)選用BC95-B5芯片上傳家居環(huán)境數(shù)據(jù)。該芯片是移遠(yuǎn)通信技術(shù)公司生產(chǎn),基于華為海思平臺(tái)開(kāi)發(fā)的一款物聯(lián)網(wǎng)通信模塊。該芯片內(nèi)嵌有豐富的網(wǎng)絡(luò)服務(wù)協(xié)議棧,具有超低功耗、超高靈敏度的特點(diǎn)。BC95-B5模塊與電信運(yùn)營(yíng)商相對(duì)應(yīng)支持850 MHz頻段,NB-IoT無(wú)線(xiàn)通信模塊內(nèi)置SIM卡座并通過(guò)外接電源供電。NB-IoT采用蜂窩網(wǎng)絡(luò),類(lèi)似手機(jī)通信,需要一個(gè)身份的識(shí)別與鑒權(quán),因此需要SIM卡電路。物聯(lián)網(wǎng)SIM卡選用中國(guó)電信的4G NB-IoT卡。模組供電電路采用兩種控制方式:硬件控制和軟件控制。接口電路包括天線(xiàn)部分、復(fù)位電路、通信接口和其他接口。
系統(tǒng)采用DHT22溫濕度傳感器、煙霧傳感器MQ-2、LD3320語(yǔ)音模塊、BH1750FVI光照傳感器以及LED亮度可調(diào)燈等模塊進(jìn)行數(shù)據(jù)采集,獲取室內(nèi)溫濕度、煙霧濃度、光照強(qiáng)度、語(yǔ)音信息等數(shù)據(jù)。
系統(tǒng)軟件開(kāi)發(fā)分為四部分:第一部分是底層硬件終端軟件開(kāi)發(fā),第二部分是NB-IoT模組軟件設(shè)計(jì),第三部分是云平臺(tái)開(kāi)發(fā),第四部分是移動(dòng)終端頂層應(yīng)用開(kāi)發(fā)(北向應(yīng)用開(kāi)發(fā))。其中第一、二部分被稱(chēng)為南向開(kāi)發(fā),整個(gè)系統(tǒng)軟件設(shè)計(jì)首先完成系統(tǒng)初始化(MCU初始化、NB-IoT網(wǎng)絡(luò)連接初始化、NB-IoT模組初始化),完成初始化之后,系統(tǒng)進(jìn)行數(shù)據(jù)上報(bào)和命令下發(fā)。系統(tǒng)軟件總體框架如圖3所示。
圖3 系統(tǒng)軟件總體框架
主控制器驅(qū)動(dòng)程序及傳感器數(shù)據(jù)采集程序基于Keil MDK5軟件開(kāi)發(fā)環(huán)境,采用C語(yǔ)言代碼進(jìn)行程序開(kāi)發(fā)。芯片的初始化配置采用了ST意法半導(dǎo)體推出的針對(duì)STM32系列芯片的圖形化配置軟件STM32 Cube MX開(kāi)發(fā)環(huán)境。設(shè)備上電后,初始化工作完成后需要主程序獲取傳感器采集的數(shù)據(jù),并上報(bào)煙霧濃度值、溫度值等數(shù)據(jù)。
本設(shè)計(jì)采用的NB-IoT模組BC95-B5是整個(gè)系統(tǒng)的重要組成部分,負(fù)責(zé)將STM32控制器發(fā)送來(lái)的傳感器數(shù)據(jù)打包。BC95模塊中集成了CoAP服務(wù)端和客服端,使用AT(Attention)指令進(jìn)行網(wǎng)絡(luò)通信配置。AT指令是NB-IoT模組與STM32主控制器和物聯(lián)網(wǎng)云平臺(tái)通信的橋梁。通過(guò)AT指令進(jìn)行入網(wǎng)配置,對(duì)接云平臺(tái)。對(duì)接成功后,主控制器MCU的上行數(shù)據(jù),通過(guò)串口使用AT指令發(fā)送給NB-IoT模組上傳到云平臺(tái)解析。下行數(shù)據(jù)從云平臺(tái)通過(guò)CoAP通信協(xié)議發(fā)送到NB-IoT模組,NB-IoT模組使用AT指令獲取到字符串,微控制器通過(guò)串口接收到數(shù)據(jù)并進(jìn)行解析。BC95通信模塊程序設(shè)計(jì)可分為BC95初始化、配置CDP服務(wù)器、數(shù)據(jù)發(fā)送和數(shù)據(jù)接收四個(gè)部分。
NB-IoT平臺(tái)接入開(kāi)發(fā)流程主要分為以下幾個(gè)步驟:
(1)創(chuàng)建項(xiàng)目;
(2)進(jìn)行Profile定義;
(3)編解碼插件開(kāi)發(fā)與部署。
Profile開(kāi)發(fā)是通過(guò)定義Profile,說(shuō)明設(shè)備的基本信息,接入NB-IoT之前必須先進(jìn)行定義系統(tǒng)終端的設(shè)備模型定義,根據(jù)設(shè)備的實(shí)際情況進(jìn)行各項(xiàng)參數(shù)的配置。設(shè)置好設(shè)備的服務(wù)內(nèi)容后,完成Profile的在線(xiàn)開(kāi)發(fā)。NB-IoT設(shè)備與華為云平臺(tái)之間采用CoAP協(xié)議通信,因?yàn)镹B-IoT硬件終端設(shè)備要求超低功耗,所以應(yīng)用層數(shù)據(jù)格式采用二進(jìn)制格式。但是物聯(lián)網(wǎng)平臺(tái)與應(yīng)用側(cè)使用JSON格式進(jìn)行通信。因此,開(kāi)發(fā)者需要開(kāi)發(fā)編碼插件,供物聯(lián)網(wǎng)平臺(tái)調(diào)用,以完成二進(jìn)制格式和JSON格式的轉(zhuǎn)換。平臺(tái)編解碼插件開(kāi)發(fā)與部署結(jié)果如圖4所示。
圖4 平臺(tái)編解碼插件開(kāi)發(fā)與部署結(jié)果圖
因?yàn)樵O(shè)計(jì)的家居場(chǎng)景為移動(dòng)控制類(lèi),具有遠(yuǎn)程控制和移動(dòng)操作的特點(diǎn),故在智能手機(jī)上使用Java語(yǔ)言進(jìn)行移動(dòng)終端APP開(kāi)發(fā)。移動(dòng)客戶(hù)端設(shè)計(jì)了主界面和分界面。其中:主界面用于顯示主要的智能家居設(shè)備;分界面顯示智能家居設(shè)備的具體功能和控制按鈕燈,主要包括燈光控制、溫度檢測(cè)、煙霧檢測(cè)和語(yǔ)音助手等。
系統(tǒng)軟硬件設(shè)計(jì)完成后,將設(shè)計(jì)好的系統(tǒng)終端放在家居環(huán)境中進(jìn)行數(shù)據(jù)采集;系統(tǒng)上電后,各個(gè)模塊進(jìn)行初始化;初始化完成后系統(tǒng)接入網(wǎng)絡(luò)并對(duì)接云平臺(tái),對(duì)接成功將數(shù)據(jù)上報(bào)。華為云平臺(tái)可以查看上報(bào)的數(shù)據(jù),并打開(kāi)移動(dòng)客戶(hù)端對(duì)智能家居中的可調(diào)燈進(jìn)行控制,如圖5所示;在移動(dòng)客戶(hù)端操作界面可以下發(fā)命令數(shù)據(jù),會(huì)在云平臺(tái)上顯示操作記錄,如圖6所示。
圖5 移動(dòng)客戶(hù)端功能界面
圖6 移動(dòng)客戶(hù)端命令下發(fā)數(shù)據(jù)
本文以NB-IoT技術(shù)應(yīng)用為核心研究了智能家居的應(yīng)用,按照物聯(lián)網(wǎng)的四層設(shè)計(jì)開(kāi)發(fā)出了一套智能家居系統(tǒng)。結(jié)合嵌入式技術(shù),搭載移遠(yuǎn)公司BC98-B5通信模塊完成了硬件系統(tǒng)設(shè)計(jì)、傳感器收集到的數(shù)據(jù)通過(guò)BC98-B5利用NB-IoT技術(shù)將封裝的CoAP數(shù)據(jù)傳至華為云平臺(tái)進(jìn)行數(shù)據(jù)解析再推送到開(kāi)發(fā)好的移動(dòng)客戶(hù)端,實(shí)現(xiàn)了智能家居的智能遠(yuǎn)程控制。實(shí)驗(yàn)表明,該系統(tǒng)連接范圍廣、突破了傳統(tǒng)通信距離和空間障礙限制,能覆蓋到家庭的每個(gè)區(qū)域,并且低成本、低功耗,提升了用戶(hù)對(duì)智能家居的體驗(yàn)。