黃 艷
(西安交通工程學院 陜西 西安 710300)
物聯網技術在汽車、家居、辦公等諸多行業中得到了廣泛的應用,而其所帶來的海量數據也越來越多[1-2]。利用物聯網信息數據采集技術,可以有效抽取大量的信息用于實際應用、業務流程、產品開發等方面,使其具有邏輯上的集成性,成為未來信息化工作的關鍵[3-5]。同時,收集、處理和分析物聯網數據,有助于消費者和組織獲得有價值的信息,及時做出更好的決策。因此,數據采集技術已經成為目前亟須深入研究的技術領域,主要包括數據的采集、存儲、分析和監控等功能。STM32微控制器具有高性能、低成本、低功耗、可裁剪的特點,因此其嵌入式應用設計的性價比較高。以STM32為基礎的處理系統,可以更加靈活地滿足優化控制器功能,提高存儲器儲存容量,增加引腳數量的應用需求。通過硬件變化方式,滿足微控制器的個性化兼容需求,在確保系統實時性較好的同時降低系統運行所需能耗。STM32微控制器憑借自身諸多優點在嵌入式領域中已有較多應用,也具有良好的發展前景。由此,本文設計了一種基于STM32微處理器的物聯網數據采集系統。
利用STM32微控制器將物聯網數據與采集系統服務器相結合,構建傳感采集模塊、主控采集模塊、無線通信模塊,以此提高STM32微控制器在服務器端的事務處理邏輯能力,降低物聯網數據采集丟包率和耗時[6],提升數據采集的實時性和完整性效果。通過系統總體結構設計,對系統內部的各個模塊結構進行重構,采用主從方式的通信程序,優化STM32微控制器控制效果。以物聯網數據采集過程中的各個功能模塊為基礎[7],通過主控采集方式對物聯網數據進行調節控制,進而完成有效數據的采集,滿足物聯網綜合數據服務需求。
所設計的物聯網數據采集系統主要圍繞STM32微處理器[8]展開,主要包括的組成部分為:電源模塊、顯示模塊、USB轉串口模塊、云數據庫、Labview上位機模塊、無線終端模塊、傳感采集模塊、基于STM32微處理器的主控采集模塊、無線通信模塊等。具體的物聯網數據采集系統總體結構如圖1所示。
圖1中,電源模塊為STM32單片機[9]及驅動器等其他組件提供電力,輸出5 V和3.3 V的穩壓電壓,確保系統工作正常;顯示模塊主要用于顯示采集到的物聯網數據具體內容,其利用外部220 V電壓進行供電,不需要電源模塊進行供電供應;USB轉串口模塊與無線通信模塊相結合,共同構成了數據傳輸模塊,主要用于串口與上位機之間或各服務器之間的數據通信與傳輸;云數據庫應用,可以有效處理存儲物聯網中的數據資源,提升高并發流量數據和業務的處理能力,而物聯網數據結構復雜以及海量數據的特點,促使云數據庫用于數據安全存儲及日后的快速查詢與統計的功能適應性較強;Labview上位機模塊主要負責監測收取到的物聯網數據,并提供數據報警服務;無線終端模塊主要用于遠程監測物聯網數據,并實現用戶端與處理器采集端的實時通信功能。以下將詳細介紹其他主要模塊。
傳感采集模塊是系統的核心模塊之一,通過嵌入式技術可以有效提升系統芯片的可編輯性,通過自主學習優化系統數據采集的完整性,擴展系統操作控制字段與判別測試字段信息性能。傳感采集模塊中,主要利用智能傳感器進行物聯網數據的有效采集,通過嵌入式應用實現對物聯網數據的自動采集和預加工。采用數字化的數據處理技術,實現對物聯網數據的實時處理,通過傳感器完成數據的傳遞與儲存。由于物聯網具有大量信息數據交換的屬性,因此對數據采集提出了精準化的要求,通過自補償、自診斷、自適應等方式,完成遠程數據交換,其可以保證在采集數據的過程中具有較高的采集精度和分辨率,且可以在一定程度上維持系統的穩定性和可靠性,整體性價比較高。
主控采集模塊通過連接控制面板NR-XCP30進行顯示操作,以此獲取物聯網數據具體信息,再通過將主站數據采集模塊組和連接遠程模塊進行組合的方式,完成數據連續采集和模塊間同步,進而實現提升物聯網數據控制能力的目的。鑒于物聯網數據結構復雜、數據量大的特點,在選取STM32微處理器過程中,應充分考慮芯片的總體成本、運行能耗問題[10-11]。因此,選取了ST公司的STM32F103ZET6微控制器,該款控制器為32位,該芯片具有較多的外設功能模塊,可以連接多個通信接口,具有靈活尋址、時鐘、復位等功能,且同時具有低功率損耗、運行速度比較快以及成本較低的優勢,可以保持較為良好的運行性能,滿足物聯網數據采集系統的基本需求,縮短整體系統的研發周期,具有節約系統硬件成本的特點。具體的配置與功能如表1所示。

表1 STM32微處理器的配置表
該模塊的核心工作是采集數據采樣周期內的能耗,及時調節時鐘和通信方式,根據設定參數避免物聯網數據采集發生時間延遲的情況,提高數據傳輸與通信的實時性,優化STM32微處理器控制效果。
物聯網數據的采集過程中,需要進行數據的傳輸與通信,因此設計無線通信模塊,主要的功能是與STM32微處理器進行通信,保證數據傳輸的完整性以及實時通信性能。因此,在所設計的物聯網數據采集系統中,選取的是nRF905單片無線收發器,該通信收發器包括功率放大器、調節器以及晶體振蕩器,是一個完全集成的頻率調制器,整體運行功耗較低且配置簡單。具體的參數如表2所示。

表2 nRF905單片無線收發器參數表
通過無線通信模塊,完成物聯網數據采集的通信、采用和遠程通信管理。以多中心數據通信為基礎,及時對串口設備數據頻率進行調制,提高數據傳輸的可擴展性。將單片無線收發器與采集器連接,保證數字信號一致性,最終實現基于STM32微處理器的物聯網數據采集。
為了驗證所設計系統的性能,進行實驗研究。隨機選擇48小時內的物聯網數據個數作為測試數據,設定目標采集物聯網數據個數為50 000個,其中包含44 000個訓練數據和6 000個測試數據。以物聯網數據具體參數作為指標,測試系統的采集時間、數據丟包率、實時性和完整性。物聯網數據參數如表3所示。

表3 物聯網數據參數
隨機選取6 000個信息特征不同的物聯網數據作為測試對象,通過對數據節點進行負載量分配的方式,降低數據能耗,以此完成數據采集耗時測試,結果如圖2所示。
根據圖2可知,本文設計的系統選用STM32微控制器作為傳感采集模塊核心芯片,將其與傳感器集成為一體,以此提高了物聯網自動采集數據能力,提升了數據采集效率,故數據采集耗時較短,僅用7.5 ms可以有效采集6 000個物聯網數據,具有較強應用性。
數據丟包率指物聯網數據采集過程中,所丟失數據包數量與所發送數據組之和的比值。其具體公式為
式中:R為所發送數據組數量總和,L為輸出數據數量。C的數值越小,表明數據丟包率越低,物聯網數據采集性能越優,STM32微控制器應用價值越高。將物聯網數據丟包率作為測試指標,結果如圖3所示。
根據圖3可知,本文設計系統的物聯網數據采集丟包率較低,在采集3 000個數據時丟包率僅為0.4%。這是因為STM32微控制器具有靈活尋址、時鐘、復位等功能,可以有效提升物聯網數據處理能力,確保數據穩定輸出。
隨機選取500個物聯網采集數據作為測試對象,設定數據采集的時間為30 ms,測試不同數據量下的數據傳輸速率,結果如表4所示。

表4 實時性測試結果
由表4可以看出,在不同數據個數的情況下,本文設計系統的數據傳輸速率較高,均達到25 MB/s以上,其數據傳輸速率較高,符合物聯網數據采集的實際應用。這是由于物聯網數據采集系統設計時,將云數據庫作為數據信息存儲空間,可以有效提升數據存儲容量。同時,云數據庫還可以解決突發訪問高峰帶來的請求壓力,以此提高了數據傳輸速率,并且穩定數據采集過程中存在的高并發流量情況,進而有效緩解物聯網數據采集結構復雜及海量數據的壓力。
物聯網數據采集完整性是指從數據開始到結束期間內采集到的所有數據信息,數據信息特征屬性越多,接收數據個數越多,則表明完整性越好。物聯網數據采集完整性為后續的數據信息分類及檢索提供支撐,因此數據采集的完整性至關重要。進行多次迭代測試,獲取物聯網數據采集實際接收數據個數和數據信息特征屬性數量,以此作為物聯網數據采集完整性的判定依據,結果如表5所示。

表5 數據采集的完整性測試結果
由表5可以看出,本文設計系統的實際接收數據個數和實際發送數據個數差值較低,且數據信息特征屬性數量較高,且隨著實際發送數據個數的增加,實際接收數據個數和實際發送數據個數也保持較高的水平,由此表明本文設計系統的物聯網數據采集完整性較好。這是因為在系統無線通信模塊中將STM32微處理器與其進行有效通信,以此增強了數據傳輸的完整性,提升數據接收能力。
針對物聯網中數據量較大且數據結構復雜的情況,設計了一種基于STM32微處理器的物聯網數據采集系統。選取了ST公司的STM32F103ZET6微控制器,具有低能耗、低成本的優勢。實驗發現所設計系統的丟包率較低以及采集耗時較短,表明所設計系統的數據采集完整性以及實時性均較好,具有一定的實際應用性能。