蔡友宏



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