辛慧娟, 肖軍
(1.陜西工業職業技術學院 電氣工程學院, 陜西 咸陽 712000;2.西安航空學院 電子工程學院, 陜西 西安 710077)
隨著社會的發展、科技水平的飛速提升,信息數字化的傳播,數據采集正邁向智能化、網絡化。傳統的數據采集裝置,是通過人工測量數據,并且人工收集數據,然后再整理數據輸入到PC機處理和分析。很顯然傳統數據采集方式工作繁重,誤差較大,準確性不高,實時性差。數據采集系統可以提高數據采集的準確性和實時性,同時儲存在數據庫的數據也方便調用。在實際使用中,數據采集系統需要與網絡相連。網絡接入包括有線接入和無線接入。無線接入法是通過網絡服務器發布無線連接信號,利用微波和衛星將系統接入到網絡中。研究發現傳統的接入法存在運行時間長、誤傳率高的問題[1]。
物聯網技術、嵌入式技術和傳感器技術已成為信息產業的發展方向。無線傳感器網絡(WSN)在智能家居、智慧農業、智慧交通、災情監控等方面的應用越來越廣泛。結合無線傳感器網絡協議和物聯網技術進行物聯網組網優化設計,在監測區域中,布置大量傳感器,對數據優化采集,已到達在監控區域內信息監測和控制能力的提升。本文結合物聯網技術、嵌入式技術和傳感器技術,設計了一款基于NB-IoT技術的數據采集系統,該系統具有成本低、低功耗的特點,可應用于各個領域,可以實現監控區域信息的無線采集、傳輸、處理,將數據存儲于服務器端的數據庫,并且可以實現PC終端的信息交互,使監控人員隨時可以使用各種能聯網的設備獲取現場狀況[2-4]。
本文所設計的基于NB-IoT數據采集系統,是以32位的Cortex-M4系列微處理器作為核心控制器,結合各個功能模塊的電路,以基于NB-IoT通信技術,達到完成對多種參數(溫度、濕度、二氧化碳、一氧化碳等)進行測量與實時監測。在設計硬件電路時,將主控制器外圍電路劃分為不同的獨立模塊,不如:數據采集模塊(或傳感器模塊)、攝像頭模塊、NB-IoT通信模塊、電源電路模塊、時鐘電路、復位電路等,這些模塊都是圍繞STM32微處理器運行的。
物聯網技術是互聯網技術的一項革新應用,也是延伸。物聯網就是通過感知元件采集物品的一些信息,進行傳輸,結合互聯網技術,進行信息交換和處理,最終實現實時監測物品和管理。感知元件和互聯網是物聯網技術的關鍵,感知元件定義為感知層,能夠將物品的狀態上傳至互聯網,最終將信息傳遞給客戶端。
目前,常用的無線通信技術有Wifi、藍牙、Zigbee等[5]。Wifi是一種無線局域網接入技術,采用802.11協議,網絡覆蓋100米左右,功耗大[6]。藍牙技術是短距離的無線通信技術,傳輸半徑只有10米,可以實現點對點或一點對多點的通信,具有低功耗、低成本、抗干擾能力較弱等特點[7]。Zigbee技術采用IEEE802.15.4標準,傳輸距離在10~100 m,具有低功耗、低成本等特點[8]。窄帶物聯網(NB-IoT)是全新窄帶無線接入技術,通常也被叫作低功耗廣域網(LPWAN)。NB-IoT是在LTE基礎上發展起來的,NB-IoT帶寬為 180 kHz,上下行速率不超過250 kbit/s,NB-IoT終端類型為Cat.NB1。NB-IoT網絡結構,如圖1所示。

圖1 NB-IoT組網圖
其中包括NB-IoT終端,NB-IoT基站,NB-IoT核心網,NB-IoT云平臺和垂直行業中心。NB-IOT技術與其他技術相比,網絡覆蓋面提升了;NB-IoT電池可以支撐十年,大大降低了功耗。綜上所述,本系統采用NB-IoT通信協議[9-11]。
STM32單片機與其他單片機比較,具有價格低、功能強、開發方便等特點。本系統采用STM32F407單片機,STM32F407是32位高性能微控制器,具有CortexTM-M4架構,抗干擾能力強,使用獨立的數據總線和指令總線。其主頻為168 MHz,自帶DCMI接口,能夠接收外部CMOS攝像頭模塊發出的高速數據流。該架構含有好多個總線接口,都可以對自己的應用進行優化。利用STM32對采集到的多種數據信息進行處理后,將已處理數據通過NB-IoT無線通信發送到網絡平臺。
NB-IoT是窄帶物聯網技術,也被稱為低功耗廣域網。目前NB-IoT的帶寬消耗已降至180 kHz,因為其優點比較突出,所以可以將NB-IoT部署在GSM網絡、UMTS網絡和LTE網絡中。該系統NB-IoT模塊采用5 V供電,每15 min向外發射信號一次。STM32單片機與NB-IoT模塊相連,NB-IoT模塊與網絡相連,將數據信息傳送到后臺,實現雙向透明傳輸。
OV2640是一款CMOS圖像傳感器,自帶JPEG輸出功能。STM32F407自帶同步并行數字攝像頭(DCMI)接口,與OV2640連接,可以控制數據傳輸方式、圖像質量和設置數據格式。同時能夠以DMA的方式接收攝像頭發出的高速數據流,降低了CPU的工作量,大大減少了圖像處理的數據量,靈敏度高。
傳感器模塊主要包括溫濕度傳感器(DHT11)、一氧化碳傳感器(MQ-7)、二氧化碳傳感器(MG-811)。各模塊監測周圍環境中對應參數值。各傳感器與主控芯片STM32相連接,各傳感器將被測模擬信號轉變為可被STM32處理的數字信號,并將數據通過NB-IoT無線通信傳輸到云平臺。各傳感器將采集的數據傳給STM32,STM32對這些數據進行校驗,這樣就有效的提高了數據傳輸的正確性[12]。
本系統使用LDO低壓差模擬電源芯片AMS1117-3.3,該芯片工作特性是:當輸入電壓在4.8~10 V之間時,能輸出3.3 V的穩定電壓。本系統中芯片與傳感器所需電壓都為3.3 V,模塊提供的是5 V直流電,可以通過該穩壓芯片把電壓降到3.3 V,其穩定性較高,功耗較低,能夠給系統提供穩定的電壓。電源電路原理,如圖2所示。

圖2 電源電路原理圖
該系統軟件設計主要包括終端數據采集與數據通信協議設計、IOT云平臺以及客戶端軟件設計。為了移植方便,該系統采用C語言編寫,使用Keil uVision5軟件編譯。并且使用軟件構件技術設計底層驅動程序,可以提高軟件的開放性、移植性、通用性以及系統穩定性。根據模塊功能,終端構件,如圖3所示。
構件設計包含源程序文件(.c)和頭文件(.h) 兩部分。主程序設計過程,如圖4所示。
主程序設計在main()函數中調用函數,主要進行聲明主函數中變量類型和名稱,關總中斷;進行系統初始化,初始化各個模塊;調用傳感器模塊采集的參數,根據設定的閾值判斷采集數據是否正常[13-16]。
本系統在采集終端和IOT云平臺之間采用了CoAP通信協議,該協議是一種應用層通信協議,波特率為9 600 bit/s。通信時,首先與IOT云平臺服務器建立連接,接入網絡后再進行數據傳輸。CoAP通信協議最小數據包僅為4字節,可實現微型機之間的通信。數據發送格式采用CRC校驗,提高了數據的準確性。

圖4 主程序流程圖
根據NB-IoT通信技術的架構可知,在通信中,終端設備的識別是采用IP地址+IMSI號的方法,每個終端設備有且只有一個IMSI號,給傳輸的數據包加入目的IP地址,以保證通信的有效進行。通信中一幀數據格式:幀頭占2字節、傳輸數據占32字節、IP地址占15字節、IMSI號占15字節、驗證碼占2字節、幀尾占2字節。該幀結構可以提高數據傳輸的正確性。為了保證數據模塊通信成功,設置了重復發送的次數,有效避免外界干擾引起的傳輸失敗。
為了檢測該系統的穩定性和準確性,實際搭建了模擬仿真實驗平臺。將傳感器所采集的濕度、溫度、一氧化碳以及二氧化碳等參數,通過NB-IoT核心網和云平臺每隔6分鐘發送到監測中心的PC機的檢測界面中,進行操作和觀察。經反復實驗分析,該系統數據傳輸中沒有產生丟包的現象,運行較穩定,數據比較準確。
本文結合物聯網技術、嵌入式技術和傳感器技術,設計了基于NB-IoT的多傳感器數據采集系統,并通過硬件模塊和軟件功能模塊的設計,運用云平臺技術,最終實現了無線通信的數據采集系統,能對溫濕度、一氧化碳以及二氧化碳進行實時監控。通過實驗表明:該方案能夠快速地對環境進行數據采集,且運行穩定,數據采集準確,達到了設計之初的要求,并且具有通用性和擴展性。