?

基于STM32的工業污染監測系統設計

2022-06-24 07:51劉宇耀劉增力
自動化儀表 2022年5期
關鍵詞:串口溫濕度阿里

劉宇耀,劉增力

(昆明理工大學信息工程與自動化學院,云南 昆明 650500)

0 引言

當前,環保意識正逐漸深入人心。隨著政府加大對環保措施的實施力度,對于工業污染排放的管理也更加嚴格。而工業生產的污染排放短時間內仍無法完全避免。因此,需要協調可持續發展,做到工業排放與生態環境維持平衡。目前,對于工業排放的管理依舊不夠完善。為了保護生態環境協調可持續發展,需要更加科學、合理的決策。這就需要對一些工業排放進行精確、實時監測記錄和分析[1],從而實現污染物溯源。依靠物聯網的發展,環境監測應用也得到較大的發展[2]。然而,由于國內環境監測的研發不夠完善、覆蓋不夠全面,對于監測小范圍區域環境的應用研究較少,很難得到具體地點高精確度的實時環境數據[3]。目前市面上的小型環境監測系統大多應用于室內智能家居方面,可監測人們居住環境質量[4]。在智能農業方面,也有環境監測系統的研究用于監測調節農作物生長環境[5]。對污染排放的監測研究目前還不多,而針對小型工業企業的排放監測并沒有完全普及。

本文結合物聯網研發技術,設計了基于STM32的空氣實時監測系統,以較低的成本實時采集獲取監測點周圍的環境信息,并將其上傳至云端存儲,供用戶和管理部門遠端查看和分析。

1 系統設計

大部分物聯網應用按層次劃分,由感知層、網絡層、應用層組成。感知層作為底層,一般由多個傳感器組成,用于感知外部環境信息,并采集所需信息,比如環境信息、位置信息、電子標簽等。網絡層負責將感知層所感知到的信息匯聚整理傳輸到應用層。實現傳輸操作所需的技術有多種,有無線技術和有線技術之分。而無線又再次可細分為Wi-Fi、ZigBee、LoRa、藍牙等。應用層為用戶提供了數據儲存平臺,負責對感知層采集的數據進行計算、儲存和處理,可以為用戶提供具體服務,實現廣泛的業務。

本文所設計的工業污染監測系統整體按層次一樣分為三層。感知層由DHT22、霍尼韋爾SO2傳感器、S1216F8-BD全球定位系統(global positioning system,GPS)/北斗衛星導航系統(BeiDou navigation satellite system,BDS); 定位模塊等多個傳感器組成傳感器網絡,從而獲取外部環境信息。網絡層采用ESP8266 Wi-Fi模塊,通過Wi-Fi技術進行數據傳輸[6]。應用層則采用阿里云物聯網平臺。阿里云物聯網平臺是以阿里云服務器為基礎管理物聯網設備的平臺,能以較低的門檻提供多種快捷的設備接入和管理服務,大部分設備適用,且易于操作。系統整體以STM32F103ZET6作為主控板,搭載控制DHT22、SO2傳感器模塊GPS/BDS定位模塊等收集系統設備位置和周邊環境信息,并通過Wi-Fi模塊上傳至阿里云物聯網平臺[7]。為方便用戶查看,本文設置一個Web可視化界面,可顯示系統監測的詳細信息。

2 硬件連接

本文設計的工業污染監測系統采用STM32F103ZET6作為主控板,控制連接DHT22溫濕度數字傳感器、霍尼韋爾SO2等傳感器,持續監測設備點周圍環境信息。監測系統獲取環境信息后,通過Wi-Fi發送至阿里云服務器,并上傳到物聯網平臺。系統框圖如圖1所示。

圖1 系統框圖

主控板單總線掛載DHT22溫濕度傳感器采集溫濕度數據。所帶外設采用模擬數字轉換器(analog to digital converter,ADC)連接SO2傳感器監測SO2濃度,并通過串口連接定位模塊進行設備定位,最后由控制器單元(microcontroller unit,MCU)將數據整理通過串口連接Wi-Fi模塊將數據發送至阿里云物聯網平臺。

DHT22溫濕度傳感器采用單總線傳輸,所以只需將它的輸出端口與主控板的一個GPIO口相連。SO2傳感器與主控板之間的連接與DHT22類似。對于定位信息的采集,則需要利用串口進行通信,以實現單片機與定位模塊的互相通信。對于通信模塊,所有的傳感器采集的信息都會通過傳輸模板上傳至云端。本設計采用Wi-Fi通信,也需要通過串口連接。

除了溫濕度傳感器,本設計采用的其他環境傳感器都是輸出的模擬量。這就需要先利用主控板上的ADC通道進行初步轉化變為數字量,再進一步轉化為監測值上傳。

首先,Wi-Fi模塊輸入輸出接口連接STM32上的串口二PA2和PA3,連接ESP8266模塊用來實現Wi-Fi通信[8]。通過串口發送AT指令,配置Wi-Fi模塊為STA模式,再通過發送命令至Wi-Fi模塊連接路由器,繼而連接阿里云服務器,從而實現Wi-Fi上傳監測信息。溫濕度傳感器輸出連接STM32的GPIO口PG11,以單總線的形式連接并上傳溫濕度數據至STM32。其中,PC0設置為ADC1,連接SO2傳感器,利用STM32開發板上的外設串口三連接BD/GPS定位模塊,從而獲取具體的定位信息。

2.1 STM32F103ZET6

STM32F103采用Cortex-M3內核,擁有強大的性能。STM32F103低成本和低功耗的特性使它的應用領域極其廣泛[9]。而STM32F103ZET6開發板是以STM32F103為核心,擁有極其豐富的外設(包括串口、A/D、D/A轉換器,多個存儲器等)。這些外設與GPIO口相連。使用這些外設時,只需要連接開發板的GPIO口,再進行相應的配置即可[10]。。

系統采用STM32F103ZET6作為主控板,以其強大功能控制協調所有傳感器,采集信息并進行簡單處理,接著控制Wi-Fi模塊發送數據。各傳感器信息的獲取和相互協調,以及構建符合消息隊列遙測傳輸(message queuing telemetry transport,MQTT)協議的傳輸報文都離不開STM32的處理[11]。

2.2 傳感器

本文所設計的系統搭載了溫濕度傳感器、SO2傳感器、定位模塊,采集相應信息上傳云端。

2.2.1 溫濕度傳感器

DHT22數字溫濕度傳感器可以同時監測0~99.9%范圍的濕度,以及-40~+80 ℃之間的溫度。相比于DHT11和DS18B20,DHT22能夠監測零度以下溫度,滿足大部分環境監測指標,更接近現實生活[12]。

DHT22輸出采用單總線接入輸出40 bit數據,高位先出。前16 bit為濕度數據,接著是16 bit溫度數據,最后8 bit是校驗位。按照該排列計算出溫濕度的值是實際的10倍,需要進行除以十操作以得到實際溫濕度。對于溫度來說,數據的最高位用來區分高于0 ℃和低于0 ℃的情況。當檢測溫度高于0 ℃時,最高位用0表示;當檢測溫度低于0 ℃時,其輸出溫度數據的最高位是1。其中,校驗和由前32 bit的數據按照一定規則得出,保證了模塊輸出的可靠性。

2.2.2 SO2傳感器

采用霍尼韋爾4系 SO2電化學傳感器4-SO2-20, 正常監測范圍0~20×10-6,最大監測濃度為150×10-6,靈敏度也達到0.5±0.1 μA/×10-6,精度也達到1×10-7,可穩定工作在溫度-20~+40 ℃、濕度15~90%RH的環境下,輸出信號為模擬量,與SO2濃度監測值成線性關系,便于計算。

2.2.3 定位模塊

ATK-S1216F8-BD GPS/BDS模塊是一款高精準GPS/北斗融合定位模塊。該定位模塊將GPS定位與北斗定位相結合,采用NMEA-0183協議為標準分析數據再按照一定規則融合。模塊采用串口連接通信,輸出較為精確的位置,方便快捷,支持多種通信波特率,定位精確靈敏度高達-165 dBm[13]。ATK-S1218定位模塊體積小巧、操作簡單,可根據模塊指示燈狀態判斷是否成功感星和定位。

2.3 通信方式

本設計采用ESP8266 Wi-Fi模塊進行Wi-Fi通信。ESP8266是一款比較常用的Wi-Fi模塊,符合 IEEE802.11b/g/n 標準, 板載印刷電路板(printed circuit board,PCB)天線 ,具有三種工作方式,分別為接入點(access point,AP)、客戶端站(station, AP)和AP+STA。AP 模式下ESP8266模塊相當于一個路由器,供外部設備無線接入。STA 模式下, ESP8266 就只相當于一個設備,可連接熱點或路由器等進入連接相應的網絡。AP+STA 模式則是兩種模式共存,既可以接入 Wi-Fi 網絡,又可以讓設備接入。本設計把 ESP8266 配置為 STA 工作模式,使主控板連接網絡,從而達到無線傳輸的目的。

2.4 云平臺

阿里云在國內應用領域廣,用戶數量大。經過多年的發展,其功能更加趨于完善,更易于用戶上手。

阿里云為用戶提供了十分便利的物聯網管理平臺,具備多種連接方式和多個設備管理方式,支持JSON格式報文,設備可連接到阿里云物聯網平臺并以MQTT協議構建報文進行相互通信。阿里云物聯網平臺支持多種方便、快捷的數據接入方式,可穩定實現底層設備與云端的交互式通信。

3 程序設計

本文設計工業污染監測系統的程序設計采用Keil μVision 5 IDE集成開發環境。其又稱為MDK5軟件,適用于Windows操作系統,運用C語言編程。Keil開發軟件兼容了多種單片機,是較為適合開發控制單片機的開發工具。

本文所設計環境監測系統首先需要初始化配置GPS/BDS定位模塊,使定位模塊不斷監測系統的位置信息。然后,配置Wi-Fi模塊,通過串口向Wi-Fi模塊發送AT指令,設置為STA客戶端模式,連接路由器。確認Wi-Fi連接成功后,進一步配置系統連接阿里云服務器。最后,訂閱阿里云物聯網平臺相關主題,實現以MQTT協議為基礎與阿里云平臺的相互通信。在上述步驟都成功后,STM32開始進行溫濕度、SO2監測參數的采集、讀取并初步處理計算,結合定位信息組成MQTT報文接著發送至Wi-Fi模塊,并由Wi-Fi模塊發送至阿里云物聯網平臺。

根據所采用的定位模塊說明,設置串口三的波特率,使其適用于定位模塊與開發板之間通信要求。定位模塊周期性地采集地理位置信息并成功傳輸至STM32開發板。開發板在接收到定值模塊的輸出信息后,按照NMEA-0183協議進行解析數據,從而得到綜合的位置信息。

所設計系統的整體程序流程如圖2所示。

圖2 程序流程圖

對于STM32單片機接收到各個傳感器采集數據后,要先作簡單處理,使其轉化為實際中可被理解的評價指標。對于溫度而言,具體計算轉化方法舉例如下。

單片機接到數據為0000 0010 0010 1001 0000 0001 0000 1000,則根據轉化規則,轉化如下。

濕度(0000 0010)2=2,(0010 1001)2=41,結合后為2×256+41=553。

溫度(0000 0001)2=1,(0000 1000)2=8,結合后為1×256+8=264。

對以上結果進行縮小十倍處理,可以得到濕度為55.3%RH 、溫度為26.4 ℃ 。

對于SO2,采用的SO2傳感器是Honeywell的4系SO2傳感器4-SO2-20,輸出模擬量,其輸出電壓值與體積濃度值呈線性變化。傳感器輸出模擬量傳輸至STM32后,首先需要將模擬量通過模數轉化器轉化為數字量,再根據關系圖轉化為體積濃度值。

單片機收到傳感器上傳數據后進行模數轉化器轉化,接著轉化成電壓值。其轉化公式為:

(1)

式中:Uadc為ADC輸出量;UOUT為轉化后電壓。

而在模塊出場測試時,測得在濃度為0×10-6環境下模塊的輸出電壓為4 mV,濃度為9.8×10-6環境下為模塊輸出電壓是518 mV。

根據線性關系,可得SO2含量與輸出電壓的關系式,為:

(2)

式中:CSO2為SO2體積濃度。

根據國家規定,對于大氣項目參數的測量標準,不再使用氣體體積比濃度表示氣體,而是要求以質量濃度的單位(如mg/m3)衡量氣體濃度。由于大多氣體傳感器模塊采集的結果是一百萬體積的空氣中所含污染物的體積數,為了符合相關規定,在得到傳感器輸出的氣體體積濃度后,需要進行一次轉化,將體積濃度轉換為質量濃度,再上傳到云端。

在傳感器采集到SO2氣體的體積濃度后,在主控板上進行轉化,再通過Wi-Fi模塊上傳至云端。轉化關系可表示為:

(3)

式中:XSO2為SO2的質量濃度值,mg/m3;CSO2為SO2的體積濃度。

在單片機獲取了各項環境參數后,需要根據MQTT傳輸協議構建符合阿里云物聯網平臺規定的物模型報文。根據物聯網平臺的注釋,構建報文信息如下。

{“"method":"thing.event.property.post","params":{"GeoLocation":{"CoordinateSystem":1,"latitude":"longitude":,"altitude":}"CurrentHumidity":,"CurrentTemperature":,"SO2":},"version":"1.0.0",}

通過串口二,可將構建好的報文發送至Wi-Fi模塊,由其發送至云端。

4 軟件實現

通過阿里云物聯網平臺中的增值服務,本文設置了一個簡易的可視化界面。根據設備采集的位置信息,可以使監測點顯示在可視化界面的地圖上,并以時間曲線的形式更加詳細地顯示其采集的各個參數的歷史數據。

4.1 創建產品

首先創建產品:設置產品名稱品類選擇自定義品類;設置連網方式采用Wi-Fi方式;數據格式默認為JSON格式。接著在產品界面添加功能定義,并添加所需監測的項目。本設計添加當前溫度、地理位置、SO2濃度等,并進一步設置各項參數的單位、標志符等詳細信息。

4.2 添加設備

首先,設置設備名稱。此時,系統會給添加的設備自動生成產品密鑰(ProductKey)和設備密碼(DeviceSecret) 。接著,根據設備名稱、設備密碼和產品密鑰,以HMAC-SHA1加密方式生成一個用戶密碼,并將這些信息以固定格式組成域名、客戶端ID等信息添加在代碼中。最后,將以上信息發送至Wi-Fi模塊,從而連接阿里云服務器,使設備激活并在線。

4.3 訂閱主題

主控板通過Wi-Fi模塊向已連接的阿里云服務器實現消息訂閱報文發送、訂閱主題發布和屬性上報等。訂閱成功后,在主控板采集完一次環境信息,并構建了符合MQTT協議的JSON格式的報文,通過Wi-Fi模塊上傳至云端物模型。

4.4 結果顯示

代碼下載到單片機內以后,單片機檢測GPS/BDS定位模塊,并在LCD屏幕上顯示,接著控制Wi-Fi模塊連接路由器,進一步連接阿里云服務器。單片機隨后進入采集并上傳環境參數信息的循環,系統按照JSON格式構建的報文信息,使其符合MQTT傳輸協議,并通過Wi-Fi模塊上傳至阿里云物聯網平臺。阿里云物聯網平臺對接收到的消息報文進行解析,使其在物模型中顯示。

為了便于用戶更加直觀地進行管理和查詢,在云端將這些物模型關聯到阿里云的Web可視化界面。在網頁可視化界面中,用戶可以通過地圖界面看到設備的位置,在點擊設備時可以看到設備點的實時環境信息??梢暬缑嬉部蛇M一步顯示其歷史數據的時間關系曲線,方便用戶觀察、總結及預測。

5 結論

為改善生態環境、促進和諧發展,各企業需要更加嚴格地管理工業污染排放。為了更加合理、有效地管理和限制企業污染對大氣的影響,本文利用物聯網技術,結合單片機控制,搭載多個傳感器放置在所需地點進行實時在線監測污染氣體,并將結果上傳至阿里云服務器。本文所設計的工業污染監測系統能夠以較低成本達到實時監測環境的功能,從源頭限制企業污染排放,并及時處理。系統結合STM32單片機提前編入的程序,可以周期性地將前端的各個傳感器監測的環境數據通過Wi-Fi模塊上傳至阿里云物聯網平臺,實現數據上云、在線管理??紤]到用戶使用,在云平臺設計了可視化界面用于人機交互,可以清楚地顯示監測點的位置信息以及周邊環境的實時數據,以便后續綜合分析和進一步處理。實際應用證明,本文所設計的工業污染監測系統具有低成本和易操作等特點,可滿足大部分企業的工業生產污染排放的監測需求,實現污染溯源并進行及時、高效的控制,從而減少污染擴散風險。該設計能夠廣泛應用在在工業廢氣監測領域。

猜你喜歡
串口溫濕度阿里
基于NPORT的地面綜合氣象觀測系統通信測試方法及故障處理
云上阿里
基于AT89C51的數字型蠶用溫濕度計的設計
基于API函數庫實現串口數據通信的分析與設計
基于EM9000工控板高性能雙串口通信模型設計與實現
辰辰帶你游阿里
基于溫濕度控制的天氣預測裝置
基于DSP和μcos的溫濕度檢測系統的設計
船舶電子設備串口數據的軟件共享方法
PLC在計算機空調機房溫濕度控制中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合