?

基于STM32 的物聯網遠程電路參數監測系統設計

2024-03-06 05:32孫康亞高紅亮段玉龍周成子
自動化與儀表 2024年2期
關鍵詞:電流值繼電器程序

孫康亞,高紅亮,段玉龍,周成子

(湖北師范大學 電氣工程與自動化學院,黃石 435000)

用電安全一直是一個非常重點的話題,電路中的各個參數,不管是電流、電壓還是電功率只要有一個不在安全范圍內都會導致一些不安全事故的發生,輕則損害用電設備,重則引起火災,危害人的生命財產安全。目前,在電路參數監測方面,最廣泛使用的方法還是人在用電設備旁時刻觀察電參數的變化,但是這種方法不但費時費力,而且當發生危險時,人手動去關用電器的開關過于危險。本系統的設計將電路參數監測和電路控制與物聯網云平臺相結合,實現了遠程監測和控制電路,不但提高了安全性而且更智能化。

1 系統總體設計

本系統主要是通過ADC 采集獲取電路的電壓、電流和功率這3 種電路參數,并通過WiFi 模塊和阿里云服務器,實現微信小程序與STM32 主控單元之間的雙向通信,其中包括數據的遠程監測、整個電路的通斷以及報警器的開關。

系統主要由數據采集單元、主控單元、執行單元和微信小程序數據處理單元這4 部分組成。數據采集單元包括通過分壓電路獲取電路電壓值和通過ACS712 電流傳感器獲取電路電流值這2 部分組成。主控單元主要是STM32 對采集到的數據進行進一步處理[1];執行單元主要是對STM32 處理過后的數據進行本地執行,這包括OLED 顯示,繼電器控制電路的通斷和超過設定閾值自動報警這3 部分;微信小程序數據處理單元一部分為對阿里云服務器內的數據進行訂閱,實現數據的遠程監測,另一部分為向阿里云服務器上傳命令,再通過WiFi 模塊將命令下發給STM32 主控單元來控制電路的通斷以及報警器的開關。系統的總體框圖如圖1 所示。

圖1 系統的總體框圖Fig.1 Overall diagram of system

2 硬件設計

2.1 分壓電路

STM32F103 系列芯片有3 個ADC,且ADC 的模式非常多,功能非常強大,但是它的缺點是只能采集到0~3.3 V 的電壓值,不能完全滿足日常使用的需求,所以需要在外部并聯一個分壓電路,使得電壓測量范圍擴大為-20 V~20 V。根據基爾霍夫定律,節點流入的電流等于流出的電流可以得到關系式:

式中:VI為輸入端的電壓值;VO為輸出端的電壓值。根據對應關系代入2 組數據對公式(1)進行化簡可以得到:

2.2 ACS712 電流傳感器電路

ACS712 電流傳感器完全基于霍爾感應的原理設計,該芯片由一個精確的低偏移線性霍爾傳感器電路與位于接近IC 表面的銅箔組成,電流流過銅箔時,產生一個磁場,霍爾元件根據磁場感應出一個線性的電壓信號,經過內部的放大、濾波、斬波與修正電路,輸出一個電壓信號。該型號的傳感器芯片靈敏度系數為185 mV/A,其供電電壓為5 V,輸出電壓與檢測電流的關系為公式(3)所示:

式中:V 表示輸出電壓值;IP表示檢測電流值。

2.3 執行單元電路

本系統的執行單元電路主要包括3 部分。第1部分為OLED 顯示部分,它的主要功能是對經過STM32 處理器處理過后的數據進行直接顯示,包括電路的實時電流值、電壓值和功率值這3 組數據;第2 部分為繼電器電路,繼電器串聯到電路中,用按鍵1 來控制繼電器的通斷,按鍵每按下一次繼電器就進行一次反轉,通過控制繼電器的通斷來控制整個電路的通斷;第3 部分為聲光報警電路,通過設置電流、電壓、功率這3 組數據的閾值來設置報警條件,這3 組數據只要有一個超過設定閾值,蜂鳴器就會發出報警聲,同時LED 燈會不停的閃爍,可以通過控制繼電器斷開電路或者是通過按下按鍵2關閉聲光報警[2]。

3 軟件設計

本系統的軟件設計可以分為ADC 采集數據的處理、ESP8266-01S 模塊的數據通信、微信小程序3部分,系統的軟件設計主流程如圖2 所示。

圖2 軟件流程Fig.2 Software flow chart

3.1 ADC 采集數據的處理

本系統的設計在ADC 采集部分選用了雙ADC采集,在電路電壓采集電路部分用的是ADC1 采集通道,在電流采集電路部分用的是ADC2 采集通道,采集到的數值存儲到DMA 中[3]。所以在軟件設計方面首先進行了DMA 的相關配置,這包括外設的地址、存儲器的地址、數據的來源、數據的大小這些基本配置,以及將傳輸模式設置為循環傳輸模式,將DMA傳輸通道的優先級配置為最高這兩項高級配置。ADC1 和ADC2 的配置完全一樣,全部配置為掃描模式,連續轉換模式,軟件開啟轉換,轉換結果右對齊,ADC 時鐘進行8 分頻,即9 MHz,采樣時間設置為55.5 個時鐘周期。

ADC1 采集端口用來采集電路中的電壓大小,將ADC 端口與外部并聯的分壓電路的OUT 口相連接,將采集到的模擬量先經過模數轉換后求出采集到的實際電壓值,再根據并聯電路分壓的原理計算出整個分壓前對應的電壓值,即電路的電壓值。轉換過程代碼如下:

ADC2 采集端口與ACS712 電流傳感器的OUT端口相連接,ACS712 的輸出端輸出的模擬量經過模數轉換后的電壓值與電路中的實際電流值是一個線性關系,只需按照這個線性關系進行計算即可求出電路中的實際電流值,這一部分的轉換代碼如下:

經過上面這兩步的轉換和計算就可以求出電路中的實時電壓值和電流值,由于電路中的電功率等于電壓和電流的乘積,所以只要將上述求出的電壓和電流值做一下乘法便可以求出電路中的實時功率。

3.2 ESP8266-01S 模塊的數據通信

本系統使用ESP8266-01S 模塊作為主要通訊模塊,通過它可以實現將數據上傳至云服務器,也可使STM32 通過它來接收來自云端的數據或者命令,它相當于連接STM32 和云服務器之間的橋梁[4]。

在ESP8266 初始化配置過程中,首先通過AT指令測試STM32 與WiFi 模塊的通訊是否正常,通訊正常則繼續通過AT 指令進行軟件復位,然后再利用AT 指令將其設置為STATION 模式并設置WiFi的名稱和密碼,進行WiFi 的連接(此時手機、電腦和ESP8266-01S 模塊構成局域網)。然后進行TCP連接,在代碼中將MQTT 服務器的IP 地址和端口進行封裝處理,并利用“AT+CIPSTART”指令將封裝好的數據發送給云平臺,等待平臺響應后獲取返回的數據,這樣便完成了WiFi 模塊與云服務器之間的連接。

系統通過程序設定一個5 s 的周期,每5 s 系統將前面通過STM32 處理過后的電路參數(電壓、電流、功率)數據進行封裝處理后向云服務發送一次,這樣便實現了電路數據向云端實時傳輸的功能[5]。WiFi 模塊向云服務器發送數據的具體流程如圖3所示。

圖3 WiFi 模塊向云服務器發送數據流程Fig.3 Flow chart of WiFi module sending data to cloud server

3.3 微信小程序數據處理

本系統的上位機使用的是微信小程序,開發設計小程序使用的是微信開發者工具。小程序首先需要連接到與上述MQTT 服務器相同的IP 地址和端口才可以實現正常通訊[6],服務器連接成功后訂閱數據的Topic 就可以成功接收上述ESP8266-01S 封裝上傳給云平臺的數據。小程序接收到數據后會根據數據對應的名稱在相關位置顯示出來。

微信小程序除了接收數據,還可以向STM32 下發命令來控制聲光報警器的開關和整個電路通斷的開關。當按下小程序中的相應控制按鈕后,小程序會向云端發布命令的Topic 發送一個cJSON 格式的數據,然后STM32 通過WiFi 模塊訂閱這個Topic接收到此cJSON 格式的數據后,緊接著對這個cJSON數據進行解析,根據解析內容做出相應操作。小程序向云端發送cJSON 格式的數據代碼如下:

TM32 通過WiFi 模塊訂閱這個Topic 接收到此cJSON 格式的數據,對這個cJSON 數據進行解析的相關代碼如下:

4 系統測試

在測試過程中設置電流閾值為3 A,可以看出當電流超過3 A 時,小程序上的“報警”按鈕會自動打開,同時設備上的報警燈會不停閃爍,蜂鳴器會不停鳴叫。此時的小程序界面如圖4 所示,斷電后小程序界面如圖5 所示,系統實物圖如圖6 所示。此時可通過STM32 上按鍵關閉聲光報警也可通過小程序上的“報警”按鈕關閉報警。

圖4 超過閾值小程序界面Fig.4 Exceeding threshold in mini program interface

圖5 斷電后小程序界面Fig.5 Mini program interface after power outage

圖6 超過閾值實物圖Fig.6 Physical image exceeding threshold

當需要關閉電路時,可以通過STM32 的另一個按鍵控制繼電器,也可以通過小程序上的“斷電”按鈕控制繼電器,當繼電器被打開后,整個電路直接被短路,設備上的電流、電壓、電功率值全部變為0。打開繼電器后的小程序如圖5 所示,“斷電”按鈕為打開狀態,電路的3 組參數值全為0,設備的實物圖如圖7 所示,代表繼電器開啟的指示燈亮起,整個電路斷路。

圖7 斷電后實物圖Fig.7 Physical image after power outage

5 結語

這款基于STM32F103 開發板和MQTT 協議的物聯網遠程電路參數監測系統,除了在設備端實時顯示電路的參數外還可以在微信小程序上實時監測電路參數的變化,實現了數據的遠程監測,當電路參數超過設定閾值后,設備端和微信小程序端都會收到報警信息,同時設備端和小程序端都可以控制電路的通斷。經過反復測試,整個系統基本的實時性好、靈敏度高,而且相較于現在的用人工現場監測電路參數和控制電路來說,這種方法更智能化更安全,具有一定的實際應用意義。

猜你喜歡
電流值繼電器程序
制冷劑與潤滑油混合物對空調器泄漏電流影響分析及研究
放療中CT管電流值對放療胸部患者勾畫靶區的影響
變壓器差動斜率保護計算方法
便攜式繼電器測試臺的研制和應用
試論我國未決羈押程序的立法完善
電氣工程及其自動化控制系統中繼電器的應用
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
光伏發電系統諧波監測與評估研究
繼電器在電氣工程及其自動化低壓電器中的作用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合