本應用筆記以STM32單片機作為控制和數據處理的單元,使用AHT10、BH1750和BMP280傳感器去監測周圍的環境參數,在LCD屏完成傳感器數據和相關信息的顯示。
同時,采用了無線模組與單片機之間進行數據交互。當無線通訊模組成功連接網絡,并接入機智云物聯網云平臺時,用戶可以通過登錄物聯網云平臺后臺查看傳感器上報的數據和進行遠程控制。
目錄預覽
1. 總體方案設計
2. 系統硬件設計
3. 系統軟件設計
4. 物聯網平臺設備接入
5. 軟硬件實物調試
01
總體方案設計
本環境監測系統設計選取了控制和數據處理能力強的ST32單片機作為核心部件。使用溫濕度傳感器對周圍環境中的溫度與濕度監測,選取高精度的光強度傳感器完成對周圍環境的光照強度的測量,對于氣壓數據的測量,將選取高精度的氣壓傳感器完成工作。
該系統使用液晶顯示屏幕完成對溫濕度數值,光照強度數值,大氣壓強數值以及設備的狀態信息的顯示。當無線通訊模組成功連接網絡之后,接入云平臺。用戶可以通過登錄物聯網云平臺后臺[4],查看傳感器上報的數據信息和進行遠程控制。開發Android上位機軟件,使用戶在上位機程序上實現對各種環境質量參數監測。整個系統的整體框架圖如下圖所示。
■1.1 控制模塊方案
本環境監測系統設計使用單片機作為整個系統的控制中心。需要完成傳感器數據的采集,無線通訊模組的數據交互,顯示傳感器數據的功能[5]。在本次的環境監測系統中,控制模塊采用的是STM32系列單片機。
例如在芯片選擇上面,有低功耗類型STM32L系列、主流類型F1系列、高性能F7/H7系列、以及異構系統架構下的 STM32MP157系列。在軟件程序設計過程中,官方提供了圖形化配置軟件STM32CubeMX。可以快速生成底層配置代碼,減少重復性移植。同時該32位芯片的相關技術資料和參考設計資料較多,因此被運用到各種電子系統設計之中。本應用筆記準備使用控制性能強勁和數據處理能力強的STM32F103ZET6芯片作為核心控制模塊元件。
■1.2 環境監測傳感器方案
環境監測系統主要需要監測的數據有溫濕度數據,光照強度數據和大氣壓強數據等基本環境質量參數。因此需要選擇相應的溫濕度傳感器,光強傳感器,精度較高的氣壓傳感器[6]。
溫濕度數據采集傳感器選擇了AHT10。AHT10模塊上面有一個濕度傳感器元件和一個片上溫度傳感元件,該產品具有快速響應、抗干擾能力強和高精度等優點[7]。
光照強度數據采集的傳感器選擇了BH1750。BH1750是標準(I2C)接口的16位數字輸出類型的環境光強度傳感器,可以利用BH1750模塊的高分辨率探測較大范圍內的光照強度變化情況[8]。
大氣壓強數據采集傳感器選擇了BMP280。數字式氣壓傳感器BMP280,具有高精度的特點,而且也具有測量環境溫度和高度的功能。
綜上所述的傳感器模塊,在選擇時考慮到了其成本,使用的方便性,相關設計資料的豐富性,傳感器模塊實物圖如下圖所示。
■1.3 無線模塊方案
方案一:對于長距離無線通訊模塊的選擇。查詢資料后,了解了國產LTE無線通訊模組上海合宙公司。該公司研發的LTE Cat 1無線通信模組提供了豐富的通用外設接口,并且支持Lua二次開發,合宙官方提供了嵌入式腳本運行框架LuatOS。但是模組價格比較貴,而且開發過程比較復雜,相關資料和設計參考較少,開發難度較大。
方案二:esp8266芯片是***公司樂鑫科技所研發的一款WiFi無線模組芯片。內置TCP/IP協議棧,支持AT本地升級和OTA遠程升級。該無線模組能夠很好的接入國內的開放的物聯網云平臺,具有易操作化的特點,主要是相關資料和設計參考較多,開發難度較小。
經過對上述方案對比,方案二中的ESP8266模塊,擁有豐富的相關設計資料。最終選擇了以ESP8266芯片作為核心的無線模組。作為單片機與物聯網云端進行數據傳輸和交換的單元,無線模塊實物圖如下圖所示。
02
系統硬件設計
環境監測系統選取了STM32F103ZET6芯片作為電路的核心控制和數據處理單元。該芯片支持UART、SPI、I2C接口,芯片內部集成了512KB閃存和64KB SRAM,可以存儲更多的程序和數據。環境監測系統的主控電路設計如下圖所示。
STM32芯片正常運行所需要的電壓范圍為2.0~3.6V,實際運行時的電流只有幾十毫安,因此芯片功耗非常低。芯片可對系統電路之中的電壓進行檢測,可與電源芯片相接一起完成開關電源調節。
芯片正常運行時,需要一個外部時鐘觸發信號,為此將使用頻率范圍在4~16MHz之間的晶體振蕩器。芯片內部存在一個自動校準的RTC振蕩電路,其實際運行的頻率能夠達到32KHZ。在本次設計中,因為STM32系列擁有豐富的串口接口,因此可以實現與多個通訊模組通信。同時可以添加調試接口,利用串口軟件實現調試功能,打印設備狀態信息。
03
系統軟件設計
基于STM32的環境監測系統的主程序流程如下。整個系統,在提供電源之后,開始進行系統模塊的初始化操作。如進行傳感器設備的初始化,LCD模塊的初始化,無線通訊模組的初始化。當完成初始化操作之后,LCD屏幕則會顯示初始化信息。
此時,利用路由器或手機熱點提供WIFI信號,WIFI模塊會進行聯網操作。當聯網成功時,系統開始接收傳感器設備采集的數據,APP程序會顯示相關傳感器數據信息,LCD屏幕也會顯示環境監測系統的主要監測數據。如果聯網失敗,則會重新嘗試連接網絡。主程序設計流程圖如下圖所示。
04
物聯網平臺設備接入
在本次的環境監測系統的設計中,利用了無線模塊進行基本通信操作。傳統的無線模組與單片機進行數據交換,一般的方案是利用無線模組建立局域網實現通信功能。隨著云計算等相關信息技術的進步,現在的無線通訊模組可以實現與云端連接,實現數據遠程傳輸的功能。
在本次設計中,使用的無線模組需要連接網絡,并接入云平臺。用戶可以通過登錄機智云物聯網云平臺后臺,查看無線通訊模塊上報的傳感器數據和進行遠程控制等操作。在物聯網云平臺的選擇中,選擇了國內的機智云物聯網平臺。物聯網設備接入的方案,如下圖所示。
云平臺提供了兩種版本的GAgent通信協議的接入方案,主要是獨立MCU方案和SOC方案兩種。本次環境監測系統的設計中,選擇了獨立MCU方案接入平臺。
在本次設計過程中,需要把GAgent協議移植到WIFI模組上面,從而實現對接云平臺進行數據交互的功能。云平臺提供了GAgent固件,GAgent固件的主要作用是完成對數據進行上報云平臺和平臺遠程下發命令的功能[14]。固件下載效果如下圖所示。
4.1 接入機智云平臺的流程
在本次的環境監測系統是軟件設計中,采用了MCU+WIFI通信模組方案,現在介紹接入機智云平臺的流程。第一步,注冊IoT平臺的開發者賬號,并登陸選擇產品類型并創建。第二步,填寫產品相關的基本信息之后,獲取到平臺提供的Product Key和Product Secret等密鑰信息[15],如下圖所示。
第三步,創建相關數據點信息,完成相關數據類型的填寫。在環境監測系統的設計中,需要創建溫度數據Temperature,濕度Humidity,光照強度Light_Intensity,氣壓Pressure等主要的傳感器數據點,如下圖所示。
第四步,使用IoT平臺提供SDK文件包,進行相關代碼移植。在SDK包生成的過程中,平臺提供了兩種類型。本次系統設計過程中,選擇獨立MCU方案作為最終方案。
在支持的硬件平臺中,有常見MCU類型。例如有STM32平臺,MSP430平臺等,都提供了相關的測試SDK包。選擇使用通用的MCU平臺生成的SDK的代碼移植,有利于之后移植到其他的MCU芯片平臺上面去,選擇如圖4-11所示。
機智云SDK包的代碼移植到STM32系列平臺的流程如下。在整個代碼移植的過程,主要是去移植串口初始化及配置,定時器的初始化及配置[16],傳感器數據的采集接收和上報函數的配置,以及相關模塊的初始化配置。
4.2 上位機軟件應用開發
上位機軟件應用開發。在本次的環境監測系統的設計中,采用了Android應用程序作為上位機軟件。一般在APP開發設計過程中,主要是進行APP的UI界面設計,和相關功能模塊底層邏輯設計。在APP的UI界面設計的過程中,選擇使用XML進行布局,在應用程序的底層邏輯設計使用的Java語言。應用開發選擇的是安卓平臺,如下圖所示。
本次設計中,使用平臺提供生成的SDK文件包進行修改。由于平臺的提供的例程只是完成了基本的顯示效果,界面效果一般。所以接下來的主要工作是對官方源碼進行修改。打開Android Studio軟件,導入從平臺下載的Demo源碼,通過修改src文件里面的layout的布局文件,進行界面UI設計和優化。
通過對src文件里面的java代碼,進行底層邏輯代碼修改[17]。在界面的UI設計工過程,主要是傳感器的數據和系統狀態信息顯示,基本顯示效果如圖4-17所示。APP的界面設計需要優化,后期可以添加相關傳感器歷史數據的查看和實時動態曲線的功能[18]。
05
軟硬件實物調試
環境監測系統的硬件實物的初步實驗性調試工作。在實驗性調試中,通過USB線接上電腦USB接口,實現供電。系統供上電之后,會有開機啟動界面顯示。
開機結束之后,界面會停留在系統的功能選擇界面。選擇界面包括了三種功能展示。第一部分是傳感器采集到的數據SensorMessage展示, 第二部分是系統的網絡狀態信息NetworkMessage展示, 第三部分是系統的基本信息SystemMessage展示。基本功能的選擇界面,如下圖所示。
基于STM32的物聯網環境監測系統的上位機軟件調試。在使用該Android應用程序時,APP和無線模組需要一起配合操作。在配網時,需要把手機和WiFi同時連接到同一個熱點信號下面,進行配置。輸入WiFi的賬號SSID和Password,選擇WiFi模組的類型進行配置。
配置過程中APP和硬件設備不要進行任何操作,否則會出現配置失敗的情況。如果配置失敗,請按下配網按鍵,重新配置。APP配網流程如下圖所示。
當配網成功時,會顯示在物聯網云平臺上面注冊的設備名稱。點擊進入,則會顯示相關傳感器數據信息,如下圖所示。
登錄物聯網平臺的后臺,選擇查看設備日志功能,在設備的運行記錄里面,可以查看到上報的數據點信息,并支持動態曲線顯示,如下圖所示。
06
總結
基于STM32的物聯網環境監測系統的整個設計過程中,使用了相關的環境傳感器設備去監測周圍環境的基本質量參數。在整個設計過程中,利用LCD屏幕顯示數據信息,能夠顯示基本傳感器測量的數據。
由于顯示效果一般,后期可以添加嵌入式GUI圖形界面,例如LVGL,TouchGFX,emWin。使用無線通信模組與單片機進行數據交互,完成了基本的通信功能,但在模組的選擇上需要考慮到其穩定性和功耗問題。
在上位機軟件程序設計中,使用了Android應用程序去完成遠程監測的功能,但是APP的界面設計需要優化,后期可以添加相關傳感器實時動態曲線的功能。
-
物聯網
+關注
關注
2910文章
44752瀏覽量
374576 -
STM32
+關注
關注
2270文章
10910瀏覽量
356582
發布評論請先 登錄
相關推薦
評論