為解決江河流域氣象信息采集智能化不足導致的洪澇災害預警難題,研究設計了基于STM32F103C8T6主控模塊的氣象信息采集系統。該系統集成多種傳感器和WiFi模塊,支持云端傳輸與手機APP實時監測及報警。實測表明,系統可實現0.5 Hz同步采集、2秒數據傳輸及3秒災害預警響應,為智慧防洪工程提供可靠數據支持。
PART 01硬件電路設計
多元氣象信息采集系統采用STM32系列中的STM32F103C8T6模塊作為硬件平臺的主控模塊,數據采集部分則由風速、降雨量、溫濕度等傳感器模塊組成。STM32F103C8T6是由意法半導體公司基于ARMCortex-M內核研發的一款STM32系列芯片。該芯片常用于中小型嵌入式系統設計,具有高性能、外設豐富、低功耗等特點,且外圍電路搭建簡單、價格實惠。
主控模塊
STM32F103C8T6由意法半導體集團研發,采用32位ARM Cortex-M3內核,工作頻率最高可達72 MHz;內置128 k B的閃存處理器和20 kB字節的隨機存取存儲器,共37個輸入/輸出端口、3個計時器、1個集成電路總線接口、1個串行外設接口、2個可通過串口通信控制通信模塊的同步異步收發器接口;內嵌10個12位模擬/數字轉換器,用于采集電壓,轉換時間為1μs,同時配備12個直接內存訪問通道,可用于數據的快速傳輸。
傳感器模塊
1.2.1風速傳感器模塊
多元氣象信息采集系統選用ZTS-3000型風杯式風速傳感器,最低工作電壓為12 V,量程為0~30 m/s,輸出電壓最高電平為3 V,最低電平為0 V。該類風速傳感器工作原理如下:當風力作用在風杯上時,風杯會轉動,進而帶動傳感器內的同軸多齒光盤轉動,接著經過傳感器內部電路處理產生與風速成正比的脈沖信號或電壓模擬量信號,最終轉換為風速數據。
1.2.2降雨量傳感器模塊
多元氣象信息采集系統選用ZTS-3000型風杯式風速傳感器,最低工作電壓為12 V,量程為0~30 m/s,輸出電壓最高電平為3 V,最低電平為0 V。該類風速傳感器工作原理如下:當風力作用在風杯上時,風杯會轉動,進而帶動傳感器內的同軸多齒光盤轉動,接著經過傳感器內部電路處理產生與風速成正比的脈沖信號或電壓模擬量信號,最終轉換為風速數據。
1.2.2降雨量傳感器模塊
多元氣象信息采集系統選用ZTS-3000型風杯式風速傳感器,最低工作電壓為12 V,量程為0~30 m/s,輸出電壓最高電平為3 V,最低電平為0 V。該類風速傳感器工作原理如下:當風力作用在風杯上時,風杯會轉動,進而帶動傳感器內的同軸多齒光盤轉動,接著經過傳感器內部電路處理產生與風速成正比的脈沖信號或電壓模擬量信號,最終轉換為風速數據。
1.2.2降雨量傳感器模塊
降雨量傳感器以一系列平行外露銅跡線為導體,其中5條為電源線,5條為感應線,兩種線交錯排列,充當可變電阻器。將該傳感器放在雨量杯中,當杯中沒有液體時,電源線與感應線不相連;當杯中存在液體時,液體成為介質使電源線與感應線相連,且電阻隨著跡線頂部到水面距離的變化而發生改變。
1.2.3溫濕度傳感器模塊
溫濕度傳感器選用DHT11。DHT11由濕度傳感器、溫度傳感器和一個高性能8位單片機組成。溫度傳感器是一枚包裹著負溫度系數測溫電阻的陶瓷片,其電阻值會隨溫度的升高而降低。濕度傳感器則是一枚濕敏電阻,其電阻值會隨著環境濕度變化而改變。上述兩個電阻值會被轉換為對應的數字信號傳輸給微控制器,再由微控制器解析生成一個9位的數據字,代表該傳感器采集的溫度和濕度。
1.2.4河流深度傳感器模塊
河流深度傳感器選用廣州市明遠科技有限公司生產的投入式液位變送器。該傳感器前端為一個高精度壓力傳感器,采用高性能隔離型擴散硅敏感元件,經過溫度補償后,可將靜壓轉換為電信號。該傳感器供電電壓為12 V,需電源模塊單獨進行供電,量程為水深0~5 m,輸出值為電壓模擬量,最低電平為0 V,最高電平為3 V。
1.2.5河流流速傳感器模塊
河流流速傳感器模塊使用YF-S201霍爾水流量傳感器。該傳感器主要由霍爾傳感器、水流轉子及塑料閥體組成。在水力作用下,水流轉子會轉動,進而帶動磁性轉子轉動,當磁性轉子靠近傳感器時,傳感器導通,當磁性轉子遠離傳感器時,傳感器斷開,因此,傳感器輸出脈沖頻率隨水流轉子轉速,即水流流速的變化而發生改變。
WiFi模塊
WiFi通信模塊主要使用深圳市安信可科技有限公司出品的ESP8266-01S模塊。該模塊是一款低功耗、高性價比的嵌入式無線網絡控制模塊,是常用的WiFi模塊。ESP8266芯片作為該模塊的核心,搭載了低功耗32位微型微控制單元,主頻支持80 MHz和160 MHz,支持完整的傳輸控制協議/互聯協議棧。ESP-01S模塊引腳功能如表1所示。
電源模塊
多元氣象信息采集系統使用東莞市祺索電子有限公司生產的可充電鋰電池進行供電。該鋰電池可穩定提供12 V電壓,擁有過流保護、短路保護等功能。主控模塊及部分傳感器模塊工作電壓普遍要求為3.3 V,因此采用AMS1117-3.3芯片作為降壓芯片,將鋰電池輸出的12 V電壓降壓至3.3 V。
PART 02軟件設計
2.1主程序流程
主程序會先運行環境信息采集子程序,采集并處理環境信息,將環境信息顯示在有機發光二極管屏幕上,在聯網成功的情況下,程序還會嘗試獲取機智云平臺云端下發的指令,即手機APP上設置的各環境信息閾值。
機智云平臺云端下發的指令為字典格式,包括風速、溫濕度、降雨量等閾值的key和value值。接著主程序會運行數據接收子程序,對接收到的數據進行處理并存儲,將采集到的環境信息與閾值進行對比,獲得報警信息。然后主程序會運行數據傳輸子程序將采集到的環境數據與報警信息一同上傳至機智云平臺云端,完成一次循環。
2.2環境信息采集子程序設計
環境信息采集子程序共涉及5個傳感器,分別為風速傳感器、溫濕度傳感器、降雨量傳感器、河流深度傳感器、河流流速傳感器。根據傳感器采集信號的不同,可將環境信息采集子程序分為采集風速、降雨量與河流深度傳感器的模擬量信號采集子程序、采集溫濕度傳感器的數字量信號采集子程序及采集河流流速傳感器的脈沖信號采集子程序。
顯示子程序
顯示子程序先使用OLED_Init()方法初始化有機發光二極管屏幕,再使用OLED_Clear()方法清空有機發光二極管屏幕的內容,然后使用OLED_show()方法循環顯示處理后的各傳感器數據。由于有機發光二極管屏幕尺寸小,無法顯示全部的傳感器數據,因此,10 s循環顯示風速、溫濕度、降雨量與河流深度、河流流速兩組數據。
2.4數據傳輸與接收子程序設計
通過WiFi連接至機智云物聯網平臺云端后,數據傳輸與接收子程序可以將本地數據上傳至云端或接收云端發送的數據。主控模塊通過ESP8266-01S通信模塊將傳感器采集且處理好的數據按照GAgent串口協議發送至機智云平臺云端。同時,該模塊將云端發送的數據根據平臺定義的數據點生成相應數據,交由主控模塊完成后續程序運行。
PART 03WiFi通信模塊固件
2.5.1 GAgent固件
多元氣象信息采集系統使用機智云物聯網平臺作為云端,因此需在ESP8266-01S通信模塊中燒錄機智云公司研發的GAgent固件,其集成了連接機智云平臺所需的通信協議,可以實現手機APP到多元氣象信息采集站的雙向數據通信使用該固件將多元氣象信息采集站接入機智云平臺云端需經過設備上電、設備配置入網、設備綁定及數據上報與下發過程。
設備配置入網指基于WiFi將設備接入路由器的過程,先通過手機APP將路由器的名稱與密碼發送給通信模塊,通信模塊再使用收到的名稱與密碼。連接路由器,連接成功后會告知手機APP。
固件移植
待燒錄GAgent固件前,需要在機智云官網下載對應版本的固件。由于系統使用的通信模塊為深圳市安信可科技有限公司生產的ESP8266-01S模塊,因此,需下載官網提供的GAgent for ESP8266(04020034)固件包。系統選擇使用CH340模塊進行燒錄操作,其連接方式如表2所示。
機智云平臺
2.6.1機智云云端服務器的搭建
首先,注冊賬號。注冊機智云開發者賬號,注冊完成后即可進入開發者中心。其次,創建新產品。在開發者中心頁面點擊創建產品按鈕,填入相關信息后完成江河流域氣象監測產品的創建。最后,創建數據點。數據點用于描述產品的功能與參數,是連接手機APP、機智云平臺云端、多元氣象信息采集站的橋梁。三者之間需遵循設置的數據點協議進行數據傳輸。
APP開發
手機APP江河流域氣象監測使用機智云官方提供的設備接入Android平臺原生軟件開發工具包(software development kit,SDK),該SDK封裝了手機與機智云智能硬件,以及手機與云端的通信過程,這些過程包括配置入網、發現、連接、控制等。
從機智云官網下載WiFi/移動通信產品SDK for Android,將jar包導入Android Studio作為庫文件,并添加so文件。
APP登錄
先對AndroidManifest.xml文件進行配置和權限設置,再注冊SDK通用監聽器。該通用監聽器能讓手機APP收到來自GizWifiSDK類回調接口的響應事件,包括注冊、登錄、配置設備、綁定設備等。
然后使用在機智云官網為手機APP申請的Android APP ID調用startWithAPPID()方法,完成SDK的初始化。SDK可提供多種用戶登錄與注冊方式,本系統采用了手機和郵箱兩種登錄與注冊方式。
配置設備
當用戶選擇添加設備選項時,SDK會設置一個通用監聽器。該過程會調用設備入網程序。要完成設備入網操作需ESP8266-01S模塊進入AirLink配網模式,接著用戶在輸入框中輸入當前手機WiFi的服務集標識(service set identifier,SSID)和密碼,然后SDK會以SSID、密碼及連接超時時間為參數,調用setDeviceOnboardingDeploy()方法進行用戶數據報協議(user datagram protocol,UDP)廣播,當通信模塊收到廣播包后會自動連接目標路由器。如果通信模塊成功連接路由器,會發出配置成功廣播,通知手機配置完成。
2.6.5設備的發現與訂閱
手機APP設置監聽并啟動SDK后,即可接收設備列表推送。局域網設備或綁定設備變化時,SDK主動更新設備列表,手機APP通過getDeviceList()刷新用戶界面(user interface,UI)。收到設備列表后,手機APP可調用setSubscribe(true)實現設備訂閱,完成自動綁定與登錄。
2.6.6 APP獲得數據及報警信息
設備在線時,APP通過didReceiveData()從云端獲取JSON格式的數據,存儲于dataMap字典,并解析得到對應變量。使用handler機制更新UI,保持界面實時刷新。
UI分為3個部分:第一部分顯示環境要素(只讀),第二部分顯示報警信息(布爾值,以圖片形式顯示溫度、濕度、風速、降雨量、水深、水流速報警),第三部分顯示閾值設定(可寫,數值型數據)。點擊任一閾值可彈出設定界面,設置后刷新顯示。
PART 04系統程序運行
程序移植到硬件平臺后,多元氣象信息采集站能實時采集并上傳風速、溫濕度、降雨量等數據。通過手機APP可查看上述數據、設置報警閾值。當數據超過閾值時,系統會提交報警信息。設備上電后,其在APP列表中的狀態由離線轉為在線,點擊設備即可瀏覽環境信息。將溫度閾值從26.1℃調至23℃,APP界面的溫度報警信息會從CLOSE變為OPEN。
PART 05結語
通過采取上述技術,基于STM32主控模塊構建的多元氣象信息采集系統與智能預警模型,實現了高精度數據的同步采集與實時預警。工程實踐表明,采用該系統后,災害預警響應時間縮短至3s,數據傳輸效率提升40%。
-
傳感器
+關注
關注
2576文章
55028瀏覽量
791233 -
STM32
+關注
關注
2309文章
11162瀏覽量
373406 -
信息采集
+關注
關注
0文章
84瀏覽量
21796 -
硬件電路
+關注
關注
39文章
267瀏覽量
30327
發布評論請先 登錄
【小蜜蜂】基于ZigBee的水情信息采集平臺
基于STM32的微型分布式氣象站設計!(附原理圖+源碼)
小流域洪水計算及防洪措施
VR-GIS技術在數字黑河流域飛行模擬中的應用
黃河數字流域模型
遙感降水產品等在海河流域的適用性研究
中小河流洪水預報智能調度平臺關鍵技術
中小河流治理信息化監測系統解決方案
億緯鋰能亮相2024黃河流域(山東)綠色物流發展大會
中小河流防洪監測預警系統解決方案
基于STM32江河流域多元氣象信息采集節點設計
評論