韓琛曄,張微微
(河北工程技術學院,河北 石家莊 050091)
隨著科技的進步,萬物互聯的時代即將到來。伴隨著NB-IoT技術帶來的物聯網的發展,人們對居住條件要求逐步提高,智慧家庭時代即將來臨,搭載物聯網技術的智能家居將會給大家不一樣的體驗。目前,智能家居通常采用ZigBee、WiFi、Bluetooth等技術接入網絡,但這些技術普遍存在功耗高、接入不方便,網絡覆蓋范圍小等缺點。NB-IoT是由LTE技術發展而來的,是基于蜂窩的窄帶物聯網技術,其具備覆蓋范圍廣、終端成本低、海量連接等優勢,非常適用于物聯網中智能家居系統的應用。
基于此,本文設計一種基于NB-IoT技術完成智能家居系統。該系統采用具有NB-IoT功能的BC95-B5芯片、融合嵌入式開發、窄帶物聯網通信技術、軟硬件設計、Android開發以及Huawei OceanConnect云端平臺接入技術支持的智能設計方案。實驗表明,將NB-IoT技術應用于智能家居控制能夠與家居環境高度契合,有效提升智能家居用戶體驗,應用成本也顯著降低。
基于NB-IoT的智能家居系統構建遵循物聯網四層架構設計方案的原則,從下往上依次為感知層、網絡層、數據層和應用層。系統設計層次結構如圖1所示。
圖1中:感知層由主控制器、煙霧、溫濕度傳感器、語音識別模塊、光照傳感器等組成,各傳感器具有數據采集功能,微處理器將采集到的數據進行數據處理和控制;網絡層由NB-IoT模塊、核心網組成,負責在NB-IoT終端建立傳輸通道,進行數據傳輸;數據層選擇使用華為云平臺,接收從接入網得到的傳感器請求內容,使設備接入互聯網。應用層通過APP將從云平臺獲取的數據進行直觀的顯示和操作。

圖1 系統總體架構
智能家居系統硬件設計主要分為三部分,即微控制器模塊設計、NB-IoT通信模塊設計和各傳感器組模塊設計。系統硬件設計框圖如圖2所示。

圖2 系統硬件設計框圖
考慮到系統要求主控芯片低功耗,具有豐富的接口和模塊功能,而低功耗的L系列在可穿戴等領域具有極大優勢,因此主控芯片選用STM32L451RCT6。該芯片具有256 KB的ROM,160 KB的RAM等內部資源,引腳數為64;最高工作頻率為80 MHz;支持低功耗模式,關機模式下功耗低至22 nA,待機模式下功耗低至106 nA。
NB-IoT 無線通信模塊設計選用BC95-B5芯片上傳家居環境數據。該芯片是移遠通信技術公司生產,基于華為海思平臺開發的一款物聯網通信模塊。該芯片內嵌有豐富的網絡服務協議棧,具有超低功耗、超高靈敏度的特點。BC95-B5模塊與電信運營商相對應支持850 MHz頻段,NB-IoT無線通信模塊內置SIM卡座并通過外接電源供電。NB-IoT采用蜂窩網絡,類似手機通信,需要一個身份的識別與鑒權,因此需要SIM卡電路。物聯網SIM卡選用中國電信的4G NB-IoT卡。模組供電電路采用兩種控制方式:硬件控制和軟件控制。接口電路包括天線部分、復位電路、通信接口和其他接口。
系統采用DHT22溫濕度傳感器、煙霧傳感器MQ-2、LD3320語音模塊、BH1750FVI光照傳感器以及LED亮度可調燈等模塊進行數據采集,獲取室內溫濕度、煙霧濃度、光照強度、語音信息等數據。
系統軟件開發分為四部分:第一部分是底層硬件終端軟件開發,第二部分是NB-IoT模組軟件設計,第三部分是云平臺開發,第四部分是移動終端頂層應用開發(北向應用開發)。其中第一、二部分被稱為南向開發,整個系統軟件設計首先完成系統初始化(MCU初始化、NB-IoT網絡連接初始化、NB-IoT模組初始化),完成初始化之后,系統進行數據上報和命令下發。系統軟件總體框架如圖3所示。

圖3 系統軟件總體框架
主控制器驅動程序及傳感器數據采集程序基于Keil MDK5軟件開發環境,采用C語言代碼進行程序開發。芯片的初始化配置采用了ST意法半導體推出的針對STM32系列芯片的圖形化配置軟件STM32 Cube MX開發環境。設備上電后,初始化工作完成后需要主程序獲取傳感器采集的數據,并上報煙霧濃度值、溫度值等數據。
本設計采用的NB-IoT模組BC95-B5是整個系統的重要組成部分,負責將STM32控制器發送來的傳感器數據打包。BC95模塊中集成了CoAP服務端和客服端,使用AT(Attention)指令進行網絡通信配置。AT指令是NB-IoT模組與STM32主控制器和物聯網云平臺通信的橋梁。通過AT指令進行入網配置,對接云平臺。對接成功后,主控制器MCU的上行數據,通過串口使用AT指令發送給NB-IoT模組上傳到云平臺解析。下行數據從云平臺通過CoAP通信協議發送到NB-IoT模組,NB-IoT模組使用AT指令獲取到字符串,微控制器通過串口接收到數據并進行解析。BC95通信模塊程序設計可分為BC95初始化、配置CDP服務器、數據發送和數據接收四個部分。
NB-IoT平臺接入開發流程主要分為以下幾個步驟:
(1)創建項目;
(2)進行Profile定義;
(3)編解碼插件開發與部署。
Profile開發是通過定義Profile,說明設備的基本信息,接入NB-IoT之前必須先進行定義系統終端的設備模型定義,根據設備的實際情況進行各項參數的配置。設置好設備的服務內容后,完成Profile的在線開發。NB-IoT設備與華為云平臺之間采用CoAP協議通信,因為NB-IoT硬件終端設備要求超低功耗,所以應用層數據格式采用二進制格式。但是物聯網平臺與應用側使用JSON格式進行通信。因此,開發者需要開發編碼插件,供物聯網平臺調用,以完成二進制格式和JSON格式的轉換。平臺編解碼插件開發與部署結果如圖4所示。

圖4 平臺編解碼插件開發與部署結果圖
因為設計的家居場景為移動控制類,具有遠程控制和移動操作的特點,故在智能手機上使用Java語言進行移動終端APP開發。移動客戶端設計了主界面和分界面。其中:主界面用于顯示主要的智能家居設備;分界面顯示智能家居設備的具體功能和控制按鈕燈,主要包括燈光控制、溫度檢測、煙霧檢測和語音助手等。
系統軟硬件設計完成后,將設計好的系統終端放在家居環境中進行數據采集;系統上電后,各個模塊進行初始化;初始化完成后系統接入網絡并對接云平臺,對接成功將數據上報。華為云平臺可以查看上報的數據,并打開移動客戶端對智能家居中的可調燈進行控制,如圖5所示;在移動客戶端操作界面可以下發命令數據,會在云平臺上顯示操作記錄,如圖6所示。

圖5 移動客戶端功能界面

圖6 移動客戶端命令下發數據
本文以NB-IoT技術應用為核心研究了智能家居的應用,按照物聯網的四層設計開發出了一套智能家居系統。結合嵌入式技術,搭載移遠公司BC98-B5通信模塊完成了硬件系統設計、傳感器收集到的數據通過BC98-B5利用NB-IoT技術將封裝的CoAP數據傳至華為云平臺進行數據解析再推送到開發好的移動客戶端,實現了智能家居的智能遠程控制。實驗表明,該系統連接范圍廣、突破了傳統通信距離和空間障礙限制,能覆蓋到家庭的每個區域,并且低成本、低功耗,提升了用戶對智能家居的體驗。