蔡友宏
摘要
STM32 MCU接收GY-BME2 8 0三合一傳感器測(cè)得的溫濕度、氣壓參數(shù)和MAX44009光照強(qiáng)度傳感器測(cè)得的光照強(qiáng)度參數(shù),通過WH-NB7 3 NB-IoT模塊上傳至OneNet云平臺(tái),PC端通過瀏覽器或移動(dòng)端通過APP可實(shí)時(shí)查看環(huán)境參數(shù),以圖形的方式直觀的顯示。
【關(guān)鍵詞】NB-IoT OneNet 環(huán)境監(jiān)測(cè) STM32
NB-IoT是窄帶物聯(lián)網(wǎng)(Narrow BandIntemet of Things)的簡(jiǎn)寫,是基于蜂窩移動(dòng)通信網(wǎng)絡(luò)的一種物聯(lián)網(wǎng)技術(shù),目前中國(guó)的三大運(yùn)營(yíng)商都己展開了商用。NB-IoT相比于傳統(tǒng)的移動(dòng)通信網(wǎng)絡(luò),具有覆蓋廣、海量連接、功耗低等多個(gè)優(yōu)點(diǎn);相比于藍(lán)牙、ZigBee、WiFi等短距離無(wú)線通信技術(shù),具有傳輸距離長(zhǎng)、功耗更低、能直接連接運(yùn)營(yíng)商網(wǎng)絡(luò)等優(yōu)點(diǎn)。隨著NB-IoT商用部署的不斷推進(jìn)和相應(yīng)通訊模塊價(jià)格的不斷降低,基于NB-IoT的物聯(lián)網(wǎng)應(yīng)用將廣泛應(yīng)用于人們的生產(chǎn)生活當(dāng)中。
OneNet是中國(guó)移動(dòng)物聯(lián)網(wǎng)有限公司面向公共服務(wù)推出的開放云平臺(tái),能助力各類終端設(shè)備方便、快捷的接入互聯(lián)網(wǎng)。為各種跨平臺(tái)物聯(lián)網(wǎng)應(yīng)用、行業(yè)解決方案提供簡(jiǎn)便的海量連接、云端存儲(chǔ)、消息分發(fā)和大數(shù)據(jù)分析等優(yōu)質(zhì)服務(wù)。
本設(shè)計(jì)利用NB-IoT和OneNet,選用合適的傳感器、MCU和通訊模塊,設(shè)計(jì)了一環(huán)境監(jiān)測(cè)系統(tǒng),僅需使用2節(jié)AA或AAA電池供電,可適用于各種室內(nèi)外環(huán)境,特別是農(nóng)田、牧場(chǎng)、林地等野外需要遠(yuǎn)距離無(wú)人監(jiān)測(cè)的場(chǎng)合,也可以作為便攜式移動(dòng)氣象監(jiān)測(cè)站使用。
1系統(tǒng)設(shè)計(jì)
本系統(tǒng)選擇溫度、濕度、氣壓參數(shù)三合一傳感器、光照強(qiáng)度傳感器通過I2C通信接口上傳環(huán)境參數(shù)至STM32 MCU,MCU通過NB-IoT通訊模塊將參數(shù)上傳至OneNet云平臺(tái),通過PC端瀏覽器、移動(dòng)端APP查看參數(shù)。圖1為系統(tǒng)總體圖。
2硬件設(shè)計(jì)
2.1 GY-BME280三合一傳感器電路
GY-BME28是一款溫度、濕度、氣壓參數(shù)三合一傳感器,具有8個(gè)引腳,可以通過I2C或SPI通信模式與MCU進(jìn)行數(shù)據(jù)通信。本設(shè)計(jì)采用I2C通信模式,GY-BME280傳感器與STM32MCU相連,電路圖如圖2所示。其中VDD是傳感器內(nèi)部模擬電路電源端;VIO傳感器內(nèi)部數(shù)字電路電源端;SCL、SDA分別是12C通信模式時(shí)鐘信號(hào)、數(shù)據(jù)信號(hào);SDO是傳感器地址控制位,接GND時(shí)I2C中器件地址為11101100,接高電平為11101101,本設(shè)計(jì)該引腳接低電平。CSB是SPI通信模式下用到的引腳,本設(shè)計(jì)未使用,故懸空。
2.2 MAX44009光照強(qiáng)度傳感器電路
MAX44009光照強(qiáng)度傳感器具有6個(gè)引腳,工作在1.7V至3.6V供電電壓范圍,器件工作電流小于1uA,且提供I2C數(shù)字輸出,非常適合于NB-IoT應(yīng)用場(chǎng)景。圖3是MAX44009與STM32MCU通過I2C總線連接的電路圖。其中AO為地址選擇端,高電平時(shí)選擇地址lOOlOllx,低電平時(shí)選擇地址lOOlOlOx,本設(shè)計(jì)該引腳接地即低電平;INT為中斷輸出,由于本設(shè)計(jì)采用STM32 MCU周期性讀取數(shù)據(jù)的方式,故沒有使用該引腳。
2.3 WH-NB7 3-B8通訊模塊電路
本設(shè)計(jì)采用WH-NB73-B8是一款透?jìng)靼鍺B-IoT通訊模塊,適用于中國(guó)電信、中國(guó)移動(dòng)、中國(guó)聯(lián)通三家運(yùn)營(yíng)商的NB-IoT網(wǎng)絡(luò),支持3GPP標(biāo)準(zhǔn)指令、UDP指令傳輸、CoAP指令傳輸、云服務(wù)、UDP透?jìng)鳌oAP透?jìng)?、心跳包、DTLS加密等。該模塊內(nèi)置了天線和SIM卡,可通過USART串口與STM32 MCU相連,進(jìn)行數(shù)據(jù)傳輸。
2.4 STM32主控電路
本設(shè)計(jì)采用STM32最小系統(tǒng)板,主芯片采用STM32L151C8,該MCU是ST公司出品的高性能低功耗系列MCU之一,供電電壓范圍1.65V-3.6V,采用超低漏電工藝技術(shù),使得MCU的運(yùn)行速度和功耗與其供電無(wú)關(guān);具有48個(gè)引腳、128kB程序Flash、lOkBRAM、8個(gè)16位定時(shí)器、2路USART、2路SPI、2路I2C和1路USB通信接口;內(nèi)置16MHz和38kHzRC振蕩器,使得電路無(wú)需外部晶振也能正常運(yùn)行。該系列MCU可長(zhǎng)時(shí)間運(yùn)行在低功耗狀態(tài),具有周期性喚醒功能,快速喚醒時(shí)間低至4us,非常適合電池供電,且數(shù)據(jù)量較小、數(shù)據(jù)傳輸間隔周期較大,需要長(zhǎng)時(shí)間(以年計(jì))不更換電池的應(yīng)用場(chǎng)合,例如本設(shè)計(jì)的環(huán)境監(jiān)測(cè)系統(tǒng)。
為了盡可能降低功耗,本設(shè)計(jì)未使用外部晶振,而使用內(nèi)部16MHz的MSI RC振蕩器作為系統(tǒng)主時(shí)鐘源,經(jīng)160分頻成lOOkHz供I2C外設(shè)使用,I2C采用低速率,可以穩(wěn)定傳輸且降低功耗。MCU長(zhǎng)時(shí)間處于停止?fàn)顟B(tài),內(nèi)部除RTC實(shí)時(shí)時(shí)鐘(采用內(nèi)部LSI 40kHzRC振蕩器,低于luF電流)外,其余定時(shí)器全部停止計(jì)數(shù),RTC實(shí)時(shí)時(shí)鐘每隔30秒喚醒MCU,內(nèi)部16MHz RC振蕩器開始工作,主控程序正常運(yùn)行,讀取傳感器參數(shù),并上傳至OneNet云平臺(tái)。
為了進(jìn)一步降低功耗,最小系統(tǒng)板上電后,IO端口全部初始化為無(wú)上拉的模擬輸入模式,以降低漏電電流;USART的Rxd引腳設(shè)置成模擬輸入模式,Txd引腳設(shè)置成開漏無(wú)上下拉輸出模式;關(guān)閉中斷源;MCU停止前關(guān)閉USART、I2C等所有外設(shè),然后進(jìn)入停止?fàn)顟B(tài);當(dāng)RTC時(shí)鐘周期性喚醒MCU后重新初始化之前配置的10和外設(shè)設(shè)置。
圖5是STM32主控電路圖,采用最小系統(tǒng)板,其中VBAT為系統(tǒng)電源,使用2節(jié)AA或AAA電池供電;BOOTO和BOOT1引腳都接地,系統(tǒng)上電后默認(rèn)從用戶Flash啟動(dòng)。STM32L151C8通過I2C接口連接GY-BME280溫濕度傳感器、MAX44009光照強(qiáng)度傳感器;通過USART串口連接WH-NB73-B8 NB-IoT模塊。
3軟件設(shè)計(jì)
3.1 0neNet接入流程
本設(shè)計(jì)采用中國(guó)移動(dòng)物聯(lián)網(wǎng)有限公司的OneNer方案,OneNet接入流程如圖6所示。其中賬號(hào)注冊(cè)、創(chuàng)建產(chǎn)品、添加設(shè)備3個(gè)步驟需要用戶在https://open.iot.10086.cn/頁(yè)面上進(jìn)行操作,過程比較簡(jiǎn)單。賬號(hào)注冊(cè)時(shí)填寫用戶的個(gè)人信息;創(chuàng)建產(chǎn)品時(shí),產(chǎn)品信息的聯(lián)網(wǎng)方式須選擇“NB-IoT”,協(xié)議須選擇“LWM2M”;添加設(shè)備時(shí)填寫“環(huán)境監(jiān)測(cè)系統(tǒng)”,并添加WH-NB73-B8模塊上的IMEI和IMSI號(hào)碼;STM32主控程序完成接入流程中的上報(bào)數(shù)據(jù)步驟,將傳感器參數(shù)上傳至OneNet云平臺(tái);通過瀏覽器或中國(guó)移動(dòng)的“和物”APP可以查看展示數(shù)據(jù)。
3.2上報(bào)數(shù)據(jù)
STM32主控程序完成接入流程中的上報(bào)數(shù)據(jù)步驟,其流程如圖7所示。
4測(cè)試
完成上述開發(fā)后,編寫相應(yīng)程序,下載至STM32最小系統(tǒng)板,運(yùn)行后成功將傳感器測(cè)得的環(huán)境參數(shù)數(shù)據(jù)上傳至OneNet云平臺(tái);通過瀏覽器或中國(guó)移動(dòng)的“和物”APP可以查看展示數(shù)據(jù),如圖8所示。
參考文獻(xiàn)
[1]何英杰,孫涵,李啟偉.低功耗NB-IoT透?jìng)髂K的設(shè)計(jì)[J].電子測(cè)試,2018 (15):15 -17.
[2]廉小親,周棟,成開元,龔永罡,基于NB-IoT的空調(diào)遠(yuǎn)程控制系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)[J].測(cè)控技術(shù),2018,37 (05): 51-55.
[3]徐俊俊.基于NB-IoT技術(shù)的智能指紋鎖系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)產(chǎn)品與流通,2017 (12):1 33.
[4]王能輝,胡國(guó)強(qiáng),基于NB-IoT的農(nóng)田遠(yuǎn)程監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)[J].陜西農(nóng)業(yè)科學(xué),201 7,63 (12): 82-85.
[5]王純龍,李賀強(qiáng).NB-IOT的關(guān)鍵技術(shù)及在農(nóng)業(yè)物聯(lián)網(wǎng)中的應(yīng)用[J].電子技術(shù)與軟件工程,2 017 (16):20.