任志敏,張 良
(常州紡織服裝職業(yè)技術(shù)學(xué)院,江蘇 常州 213164)
日常生活中,從運(yùn)動(dòng)手環(huán)、智能手表、智能手機(jī)、平衡車、無人飛機(jī)、自動(dòng)駕駛汽車……,到農(nóng)業(yè)大棚、智慧工廠、館藏庫房[1]……,或多或少都涉及數(shù)據(jù)采集與處理,從中不難看出,數(shù)據(jù)采集的應(yīng)用領(lǐng)域非常廣泛。尤其在物聯(lián)網(wǎng)、云計(jì)算、邊緣計(jì)算等技術(shù)已經(jīng)深入個(gè)人、家庭、社會(huì)生活的背景下,數(shù)據(jù)采集系統(tǒng)的重要性愈加凸顯。
本文設(shè)計(jì)的數(shù)據(jù)采集系統(tǒng)的應(yīng)用場合為智慧工廠、館藏庫房、農(nóng)業(yè)大棚等。這些場合的特點(diǎn)和需求包括:待監(jiān)測的數(shù)據(jù)節(jié)點(diǎn)較多;數(shù)據(jù)采集節(jié)點(diǎn)不宜采用常規(guī)供電方案,如交流市電加適配器的供電方案只能采用電池供電,且需要保證電池長時(shí)間工作;節(jié)點(diǎn)數(shù)據(jù)通過無線方式傳輸[2](通過網(wǎng)絡(luò)發(fā)送至云平臺(tái),便于數(shù)據(jù)存儲(chǔ)和回溯;在方便管理員工作的同時(shí),利用移動(dòng)端APP直接查看周邊區(qū)域節(jié)點(diǎn)的數(shù)據(jù),并能對(duì)出現(xiàn)的異常數(shù)據(jù)及時(shí)預(yù)警);節(jié)點(diǎn)數(shù)據(jù)不僅包括溫度、濕度、氣壓等常規(guī)參數(shù),還需要監(jiān)測節(jié)點(diǎn)本身在運(yùn)行過程中是否掉落,是否翻轉(zhuǎn)。該數(shù)據(jù)采集節(jié)點(diǎn)的特點(diǎn)是傳感器輸出數(shù)據(jù)量不大,但要求節(jié)點(diǎn)功耗更低,且可以短距離無線數(shù)據(jù)傳輸?shù)??;谇拔牡男枨蠓治?,本文設(shè)計(jì)了如圖1所示的系統(tǒng)總體結(jié)構(gòu)方案。
圖1 系統(tǒng)總體結(jié)構(gòu)方案
每個(gè)節(jié)點(diǎn)的硬件組成包括低功耗MEMS傳感器、溫濕度傳感器、加速度計(jì)傳感器,外加支持低功耗藍(lán)牙的微控制器。節(jié)點(diǎn)由3 V的紐扣電池供電,一顆電池的工作時(shí)間至少穩(wěn)定在1年以上。在數(shù)據(jù)節(jié)點(diǎn)藍(lán)牙傳輸范圍內(nèi)將樹莓派作為藍(lán)牙主機(jī),按照需求周期性收集周圍多個(gè)節(jié)點(diǎn)通過藍(lán)牙廣播發(fā)出的傳感器數(shù)據(jù),再通過WiFi或4G模組把數(shù)據(jù)發(fā)送至阿里云物聯(lián)網(wǎng)平臺(tái)。在管理員工作過程中,手機(jī)移動(dòng)端充當(dāng)藍(lán)牙主機(jī)的角色,不僅可以直接在手機(jī)上顯示周邊節(jié)點(diǎn)的數(shù)據(jù),還能夠通過WiFi或4G網(wǎng)絡(luò)把數(shù)據(jù)發(fā)送至阿里云物聯(lián)網(wǎng)平臺(tái)。用戶通過阿里云物聯(lián)網(wǎng)平臺(tái)可以實(shí)時(shí)監(jiān)測每一個(gè)節(jié)點(diǎn)的當(dāng)前狀態(tài),管理員也可以通過手機(jī)實(shí)時(shí)查看節(jié)點(diǎn)數(shù)據(jù),為提高管理效率提供參考。
目前市面上支持藍(lán)牙協(xié)議的微控制器主流生產(chǎn)商有挪威的Nordic公司,美國的德州儀器公司(TI),德國的戴樂格半導(dǎo)體公司(Dialog)和意大利的意法半導(dǎo)體公司(ST),每家公司都推出了多種型號(hào)的支持單?;螂p模的藍(lán)牙芯片,經(jīng)過比較研究,本文選擇Nordic公司出品的nRF52832作為系統(tǒng)的核心控制器[3]。
nRF52832是Nordic公司推出的一款基于ARM Cortex-M4內(nèi)核,支持低功耗藍(lán)牙BLE、藍(lán)牙Mesh和近場通信NFC的片上系統(tǒng)芯片SoC。在硬件配置上,其最突出的特點(diǎn)是采用先進(jìn)的片上自適應(yīng)電源管理系統(tǒng),可實(shí)現(xiàn)極低的功耗,在不保留RAM的模式下功耗僅0.3 μA。無線傳輸性能指標(biāo)方面,在低功耗藍(lán)牙模式下支持1 Mb/s或2 Mb/s的傳輸速率。
基于本文的需求,環(huán)境數(shù)據(jù)主要包括溫度、濕度和氣壓。目前市面上該類傳感器種類繁多,尤其是溫濕度傳感器。文獻(xiàn)[4]設(shè)計(jì)的多功能家居報(bào)警系統(tǒng)采用DS18B20溫度傳感器,DS18B20作為單總線結(jié)構(gòu)的溫度傳感器,被廣泛應(yīng)用于鍋爐測溫、機(jī)房測溫等領(lǐng)域,其最大的優(yōu)勢在于獨(dú)特的單線接口方式,不足之處在于其功耗較大,且只能獲取溫度參數(shù)。SHT20是采用I2C協(xié)議的溫濕度傳感器,通常用于室內(nèi)空氣質(zhì)量檢測[5],其尺寸和功耗優(yōu)勢突出,但是只能測量溫度和濕度,不適合本課題。BME280是德國博世(BOSCH)出品的一款集測量溫度、濕度、氣壓于一體的MEMS傳感器,其采用極小化的LGA封裝,尺寸為2.5 mm×2.5 mm×0.93 mm,具有SPI和I2C兩種接口,能夠更好地滿足低功耗的需求,因此本文選擇BME280傳感器。
監(jiān)測數(shù)據(jù)節(jié)點(diǎn)本身的姿勢狀態(tài)需要使用加速度計(jì)傳感器。目前加速度計(jì)傳感器已經(jīng)被廣泛應(yīng)用于手機(jī)翻轉(zhuǎn)、四軸飛行器、可穿戴設(shè)備、平衡車等領(lǐng)域,品種較多,常見的加速度計(jì)傳感器有MPU6050、BMA400、LIS2DH12等[6],經(jīng)過研究比較,本課題選擇意法半導(dǎo)體公司(ST)出品的LIS2DH12加速度計(jì)傳感器,其低功耗特性符合本文要求。
LIS2DH12是由意法半導(dǎo)體公司出品的超低功耗、高性能三軸加速度計(jì),屬于MEMS傳感器的一種。LIS2DH12支持1.71~3.6 V的寬電壓電源供應(yīng),最低功耗可降至2 μA;支持配置可選的量程為±2g/±4g/±8g/±16g;支持I2C或SPI接口,可選數(shù)據(jù)輸出速率為1 Hz~5.3 kHz;2個(gè)中斷引腳可以監(jiān)測喚醒、自由落體或其他位置移動(dòng)等事件。
結(jié)合nRF52832核心電路、溫濕度傳感器BME280和加速度計(jì)LIS2DH12,本課題設(shè)計(jì)的數(shù)據(jù)采集節(jié)點(diǎn)電路如圖2所示。
圖2 數(shù)據(jù)采集節(jié)點(diǎn)電路
LIS2DH12的內(nèi)核電壓和I/O引腳電壓均由VDD提供,100 nF和10 μF去耦電容盡可能靠近第9引腳VDD。LIS2DH12支持I2C和SPI數(shù)據(jù)接口,本課題采用四線SPI接口,其中CS引腳連接nRF52832的P0.08腳,由程序拉低使能SPI模式,SDO/SAO引腳選用SDO功能作為從機(jī)SPI的輸出引腳,SDA/SDI/SDO引腳選用SDI功能作為從機(jī)SPI的輸入引腳,SCK/SPC選用SPC功能作為從機(jī)SPI的輸入時(shí)鐘,2個(gè)中斷引腳分別連接不同的I/O作為LIS2DH12姿勢變化中斷產(chǎn)生接口。
數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)包括:節(jié)點(diǎn)端nRF52832微控制器軟件設(shè)計(jì),Android端程序設(shè)計(jì),樹莓派端軟件設(shè)計(jì)。
nRF52832端程序主要涉及的設(shè)計(jì)任務(wù)有采集BME280的溫度、濕度和氣壓值,以及LIS2DH12加速度計(jì)值,并響應(yīng)加速度計(jì)因掉落、翻轉(zhuǎn)產(chǎn)生的中斷;采用藍(lán)牙廣播的方式間隔性發(fā)送傳感器數(shù)值。nRF52832軟件設(shè)計(jì)流程如圖3所示。
圖3 nRF52832軟件設(shè)計(jì)流程
采集數(shù)據(jù)后,需要按照協(xié)議發(fā)送節(jié)點(diǎn)數(shù)據(jù)。節(jié)點(diǎn)廣播數(shù)據(jù)包共24 B,見表1所列。
表1 節(jié)點(diǎn)廣播數(shù)據(jù)包協(xié)議
設(shè)置藍(lán)牙發(fā)射功率txpower,根據(jù)nRF52832的技術(shù)文檔,藍(lán)牙發(fā)射功率可分為9個(gè)等級(jí)[7],依次是-40 dBm,-30 dBm,-20 dBm,-16 dBm,-12 dBm,-8 dBm,-4 dBm,0和4 dBm,發(fā)射功率設(shè)置值必須為以上9個(gè)值中的一個(gè)。理論上說,值越大,信號(hào)越強(qiáng),傳輸距離也就越遠(yuǎn),但是能耗也越大。本課題設(shè)置txpower為0,可以根據(jù)不同的應(yīng)用場景調(diào)整該值,以實(shí)現(xiàn)傳輸距離更遠(yuǎn)與節(jié)省功耗的平衡。藍(lán)牙發(fā)射功率值在協(xié)議中共占據(jù)5位,即可存放的范圍為0~31,并非所有9個(gè)等級(jí)的數(shù)組可以存放到協(xié)議中,因此先對(duì)txpower加上40,然后除以2,保證所有值都落在0~31范圍內(nèi)。
移動(dòng)端管理軟件需要發(fā)現(xiàn)管理員周圍的傳感器節(jié)點(diǎn),并添加節(jié)點(diǎn),之后讀取并顯示環(huán)境數(shù)據(jù)、存儲(chǔ)歷史數(shù)據(jù)、設(shè)置告警閾值、將數(shù)據(jù)上傳至阿里云物聯(lián)網(wǎng)平臺(tái)等。Android移動(dòng)端程序設(shè)計(jì)功能結(jié)構(gòu)如圖4所示[8]。
圖4 Android移動(dòng)端程序設(shè)計(jì)功能結(jié)構(gòu)
每個(gè)功能模塊的具體作用如下:
(1)藍(lán)牙節(jié)點(diǎn)與手機(jī)通信,打開手機(jī)端APP,設(shè)置是否允許掃描藍(lán)牙廣播設(shè)備,并設(shè)定以一定的時(shí)間間隔掃描藍(lán)牙節(jié)點(diǎn)發(fā)出的廣播數(shù)據(jù)。
(2)通過添加和刪除藍(lán)牙節(jié)點(diǎn)對(duì)藍(lán)牙設(shè)備進(jìn)行管理。
(3)顯示藍(lán)牙節(jié)點(diǎn)采集的環(huán)境數(shù)據(jù),對(duì)于多個(gè)節(jié)點(diǎn)采用兩種顯示方式,如一屏列表顯示多個(gè)節(jié)點(diǎn)數(shù)據(jù)或一屏顯示一個(gè)節(jié)點(diǎn)數(shù)據(jù),通過滑動(dòng)屏幕顯示多個(gè)節(jié)點(diǎn)數(shù)據(jù);環(huán)境數(shù)據(jù)既可以以數(shù)字形式顯示當(dāng)前值,也可以顯示歷史值,還可以采用動(dòng)態(tài)曲線顯示數(shù)據(jù)變化。
(4)利用Android提供的SQLite數(shù)據(jù)庫存儲(chǔ)不同時(shí)間點(diǎn)獲取的環(huán)境數(shù)據(jù),便于日后查詢或分析。
(5)設(shè)置溫濕度、氣壓數(shù)據(jù)的告警閾值,一旦超出閾值范圍,則通過振鈴方式告知用戶,同時(shí)顯示告警提示。
(6)監(jiān)測并顯示藍(lán)牙節(jié)點(diǎn)電池余量。
(7)顯示三軸加速度計(jì)x,y,z方向的值,一旦加速度計(jì)有移動(dòng),程序及時(shí)提醒用戶。
(8)獲取的節(jié)點(diǎn)數(shù)據(jù)通過手機(jī)4G網(wǎng)絡(luò)周期性發(fā)送至阿里云物聯(lián)網(wǎng)平臺(tái)。
Android端APP數(shù)據(jù)顯示界面如圖5所示。
圖5 Android端APP數(shù)據(jù)顯示界面
樹莓派主機(jī)作為藍(lán)牙廣播的接收器,接收節(jié)點(diǎn)的藍(lán)牙廣播,并間斷性向阿里云物聯(lián)網(wǎng)平臺(tái)發(fā)送數(shù)據(jù)。
在本文中,使用樹莓派系統(tǒng)Raspbian的Shell提供的hciconfig操作藍(lán)牙,主要步驟如下:
(1)通過sudo hciconfig hci0 up啟動(dòng)藍(lán)牙樹莓派設(shè)備,hci0指0號(hào)HCI設(shè)備,即樹莓派的藍(lán)牙適配器。
(2)通過命令sudo hciconfig hci0 reset復(fù)位藍(lán)牙適配器。
(3)掃描藍(lán)牙節(jié)點(diǎn),命令為sudo hciconfig lescanduplicates。
(4)接收并獲取藍(lán)牙節(jié)點(diǎn)廣播數(shù)據(jù),命令為sudo hcidump-raw。
樹莓派端程序內(nèi)容主要由兩部分組成,一是掃描獲取附近所有藍(lán)牙節(jié)點(diǎn)的廣播,接收數(shù)據(jù)并解析;二是把解析后的數(shù)據(jù)發(fā)送至阿里云物聯(lián)網(wǎng)平臺(tái)。樹莓派端程序流程如圖6所示。
圖6 樹莓派端程序流程
本文源自實(shí)際應(yīng)用需求,通過研究低功耗相關(guān)技術(shù),確定并設(shè)計(jì)了總體方案,在此基礎(chǔ)上設(shè)計(jì)了數(shù)據(jù)采集節(jié)點(diǎn)硬件系統(tǒng),編程實(shí)現(xiàn)了軟件系統(tǒng),可把數(shù)據(jù)上傳到阿里云物聯(lián)網(wǎng)平臺(tái)[9-10]。硬件實(shí)物如圖7所示。
圖7 硬件實(shí)物
物聯(lián)網(wǎng)技術(shù)2021年12期