?

基于STM32單片機的電網蓄熱量監測系統設計

2022-08-12 09:30袁俊球
工業儀表與自動化裝置 2022年4期
關鍵詞:液晶顯示器電路

袁俊球,周 斌,曹 健,陸 騫

(國網江蘇省電力有限公司常州供電分公司,江蘇 常州 213000)

0 引言

“碳達峰,碳中和”是我國當前一段時間的首要任務。節能減排是生態環境保護的必由之路[1]。人民生活水平日益提高,對區域性的集中蓄熱式供暖提出了更高的要求。當前,電網蓄熱量無法精準控制且長期缺乏合理的計量方法(大部分地區仍按供暖的建筑面積計費),而非按實際的熱量計費[2]。由此產生諸多爭議,一些供熱量高、室內溫度偏高的建筑用戶,不是想方設法去調節供熱量來降低室內溫度,而是采取冬季開窗的方式來散熱。

現階段,在數字賦能、精裝治理經濟社會發展的時代背景下,單片機在各行業的應用十分普遍,相關學者做出了很多切實可行的研究。岑志剛等[3]提出基于Openmv和STM32的車內溫度預警系統,利用NB-IOT BC26模塊和SIM900A模塊進行溫度檢測、數據上傳、短信預警、蜂鳴器預警和風扇物理降溫。侯志偉等[4]設計了一種基于STM32片內ADC(Analog-to-DigitalConverter,模擬/數字轉換器)采樣多通道溫度的測量系統,給出了恒流源激勵與溫度標定電路,熱敏電阻PT100信號調理電路,多重ADC采樣程序,TFT-LCD實時顯示及Python數據統計分析。任晶秋等[5]為了提高紅外測溫設備檢測人體溫度的精度,研究了提高紅外溫度精度的距離溫度補償方法,設計了一款測距遠、測量準、應用廣的紅外測溫槍系統。系統以STM32F103為主控制器,采用AMG8833紅外熱像儀傳感器模塊、OLED顯示器模塊、激光測距模塊及蜂鳴器等進行外圍設計。吳付祥[6]開發了一種基于STM32的溫濕度監控系統,可以實現環境溫度和濕度的自動監測和控制,達到恒溫恒濕的目的。謝凌菲[7]基于STM32與μCOS的靶式流量計以STM32F407ZGT6微處理器為核心處理單元,采用四線制PT100熱電阻溫度傳感器,實現系統控溫精度優于±0.5 ℃的設計目標,對于空間環模設備熱沉溫控技術的改進與提升具有一定的借鑒意義和市場應用價值。但是STM32在電網熱源精準化管理方向設計開發應用的報道較少。因此,為適應市場經濟體制運作的要求,同時滿足住戶家居生活的自動化、安全化和舒適化需求,設計一種合理、準確的計量電網蓄熱量的裝置已經成為當前供暖技術中亟待攻克的課題。

該文基于STM32的電網蓄熱量監測系統設計路線如下:

(1)對系統整體功能架構進行設計,分析各個功能之間的連接及邏輯功能關系。詳細地對比分析有哪些相關的技術可以實現核心功能,并最終選擇出最合適的技術方案實現對應的功能。技術方案與詳細的器件清單相對應,為后續的硬件電路設計做好準備;

(2)對系統電路進行設計,根據具體的器件型號,以核心器件為基礎進行外圍電路的設計。對所有的功能進行原理分析,設計出硬件電路圖;

(3)硬件設計完畢,對系統的軟件進行開發。配合軟件代碼系統,對各個功能進行單獨設計,最終實現軟件功能;

(4)將設計好的硬件和軟件進行組合,調試設計的內容,對整個系統進行測試,實現系統要求的功能。

1 總體方案設計

1.1 系統整體方案設計

基于STM32的電網蓄熱量監測系統具有流量檢測、進水溫度檢測、出水溫度檢測、數據顯示及遠程監控等功能。系統通過對水的溫度以及流量進行檢測,得到電網蓄熱量數據。對于水溫需要先測量進水溫度,再采集出水溫度,用出水溫度減去進水溫度,再加上流量就可得到電網蓄熱量數據;所得電網蓄熱量數據可以在本地顯示,也可以遠程監控。系統結構框圖如圖1所示。

圖1 系統結構框圖

1.2 主控制器

選擇ST公司STM32實現功能控制。運行速度能夠上升到72 MHz,使用高端的ARM內核,芯片內部有多種集成功能模塊[8]。為了方便開發者快速進行項目開發,芯片可以使用官方提供的案例以及庫程序。官方給了自動代碼生成工具,大大縮短了設計周期。芯片內部帶有模數轉換、高級定時器和DMA等多種實用的功能。多種模塊以及多種設計工具也使得STM32被廣泛地應用。

1.3 穩定與流量檢測

溫度的采集應用DS18B20。該器件對溫度的感應范圍很寬,達到了-55 ℃~125 ℃,能夠滿足產品開發設計需求。因為微處理器只需要1條線路就可以實現數據的傳輸[9],所以在硬件上不需要單獨的外部器件支撐就達到了測溫的目的。

流量檢測使用流量傳感器。傳感器內部包括銅閥體、水流轉子和霍爾器件等[9]。傳感器安裝在水流管道中,實現對水流量的檢測。傳感器內部在水流的帶動下,轉子轉動帶動磁性轉子轉動,這樣霍爾器件就會輸出脈沖電信號,輸入到主控中對水流量進行檢測。此傳感器的使用壽命長、穩定性高,可以無損地安裝在水流檢測點。

1. 4 顯示與通信

顯示功能選取LCD1602。這款顯示屏的控制有串行和并行數據2種控制方案,通過數據輸入方式進行分類。2種方案在設計上各有優勢,串行相對于并行硬件設計上簡單,并行相對于串行在軟件控制上簡單[10]。該系統選并行控制方案,可以快捷地通過軟件實現對液晶屏的操作控制。液晶顯示器的供電電壓為4.5~5.5 V,其消耗的電流為2.0 mA。該系統選擇5 V為顯示器供電。顯示器的體積較小,為2.95 mm×4.35 mm。

遠程水流量監控功能選擇GSM模塊。GSM模塊可以實現發送短信的功能,通過和主控連接,主控可以控制GSM模塊實現向任意手機發送短信。手機號可以設定在主控程序中。GSM模塊集成了基帶功能和信號接收功能等,在使用模塊時需要安裝一張電話卡用于發送短信。模塊還可以實現打電話、GPRS流量功能。

2 硬件設計

2.1 主控制器電路

STM32的工作速度快、計算能力強,完全滿足系統控制功能。STM32運行速度高達72 MHz,1 s內能夠完成對6 M代碼的執行,外設接口數量大,可實現多種功能的控制[11]。芯片的體積很小,但其內部集成了多種功能模塊,因此很適合集成化設計。用戶程序使用空間大,有128 K,完全能夠實現系統的功能。系統內有基本、通用和高級3種定時器,可以根據功能需要選擇使用[12]。STM32處理器具有經濟性好、功耗較低等突出的特性,目前在諸多領域均有較為廣泛的運用。具有代表性的如電動汽車、共享行業等都大量采用了這款處理器[13]。該設備的運行速度極高,在使用過程中可以實現高速運行。STM32最大的特點就是配備了大量的輸入輸出端口,此外還配置有2個相應的轉換器,其轉換精度較高。該類控制器對于功率的消耗比較少,其集成度比較大。此外,這種控制器與其他控制器相比經濟實惠,將其和外圍電路進行相加,可以完成單片機最小系統的構建。

STM32在封裝上并沒有直插供應,全部都是貼片類型,因此在開發中使用最小系統板和其他模塊進行連接。STM32芯片內部有8個定時器,其中基本定時器2個,通用定時器4個,高級定時器2個。直接存儲器訪問模塊2個,搭配有12個通道。在通信方面配置更高,帶有3路SPI通信,2路IIC通信,5路串口通信,1路CAN通信,可以靈活地配置功能模塊使用那些IO接口,使用方便。主控制器電路如圖2所示。

圖2 主控制器電路

2.2 溫度檢測電路

DS18B20傳感器內部除了設計有溫度數據,還有溫度的報警閾值功能。溫度數據可以通過軟件進行設置,從9~12位進行選擇。溫度的報警閾值是指最大溫度和最小溫度數據,分別有1個字節的存儲空間,方便開發者設置溫度范圍功能。傳感器身份信息有64位的空間,只能讀取數據,不能編輯寫入數據,能夠在級聯模式下判斷出不同的數據來源于何傳感器。在硬件設計上不需要任何器件的支撐,但是為了獲取溫度信號,在信號線上接電阻,電阻另一端接電源,設計一個上拉電阻,使得系統更加的可靠[14]。進水溫度檢測DS18B20器件的數據端口DQ和單片機的PC14進行通信,出水溫度檢測DS18B20器件的數據端口DQ和單片機的PC15進行通信。溫度檢測電路如圖3所示。

圖3 溫度檢測電路

2.3 流量檢測電路

采集到溫度后,流量是另一項重要的數據。通水流量信號輸出到主控中,主控得出流量數據。傳感器可以在-10 ℃~+55 ℃環境中運行工作。傳感器一共有3個接口,1號接口是傳感器的供電機接口,2號接口連接供電GND,3號接口是傳感器輸出的流量信號,和主控的PA0連接。流量檢測電路如圖4所示。

圖4 流量檢測電路

2.4 液晶顯示電路

液晶顯示電路中共有16個引出的信號接口。第1個和第2個接口是液晶顯示器的供電接口,這里選擇5 V供電。第3個接口用于控制液晶顯示器的清晰度,當輸入不同的電壓值時可以有不同的顯示效果。通常在這里接一個電位器,方便在使用時調節輸入到第3個接口的電壓值,使液晶顯示器達到最好的顯示效果[15]。第4個接口RS決定了對液晶輸入的數據是用于控制還是用于顯示,這是設計時必須設置的接口,RS和主控的P2.5口連接,在低電平情況下表示控制命令,在高電平情況下表示顯示內容。第5個接口RW決定了主控和液晶顯示器的關系,RW和主控的P2.6口連接,在低電平情況下表示主控向液晶顯示器寫入數據,在高電平情況下表示主控是從液晶顯示器讀取數據。需要注意的是,主控向液晶顯示器寫入的數據包括顯示內容和顯示內容地址。第6個接口E決定了主控對液晶顯示器的操作是否有效,E和主控的P2.7口連接,在低電平情況下表示主控的控制有效,在高電平情況下表示主控的控制無效。第7~第14個接口為D0~D7數據輸入口,和主控的P0口連接,是一個8位一組的數據口,這組接口通過主控輸入數據。液晶顯示電路如圖5所示。

圖5 液晶顯示電路

2.5 遠程通信電路

GSM模塊和主控之間通過串口進行數據傳輸。由于GSM在運行時要獲取信號,需要一定的電流,因此設計時要考慮到GSM模塊需要比較大的功耗。主控和GSM模塊都屬于TTL電平,因此串口線路可以直接進行對接。和手機天線的原理一樣,GSM模塊需要搭配1根天線才可以接收到信號,以實現短信發送的功能。GSM模塊工作電流不能低于2 A。串口連接需要3條線,GSM模塊的5號接口RXD和主控的PA9連接,6號接口TXD和主控的PA10連接。為了保證模塊穩定運行,增加了濾波電容C4,使輸入到GSM模塊內的電源穩定可靠。短信通信電路如圖6所示。

圖6 短信通信電路

3 軟件設計

3.1 系統整體軟件設計

主控的程序對流量檢測、進水溫度檢測、出水溫度檢測、數據顯示及遠程監控功能進行控制。進入到主程序中先對流量檢測控制接口、進水溫度檢測控制接口、出水溫度檢測控制接口、數據顯示控制接口及遠程監控控制接口進行初始化設置[16]。首先需要測量進水溫度,再采集出水溫度,用出水溫度減去進水溫度,再加上流量就可得到電網蓄熱量數據。電網蓄熱量數據可以在本地顯示,也可以遠程監控。系統整體軟件設計流程如圖7所示。

圖7 系統整體軟件設計流程圖

3.2 溫度檢測軟件設計

溫度的采集需要單片機對DS18B20進行操作。系統首先初始化DS18B20,對數據口進行高電平處理,維持48 μs的時間;接著對數據口進行低電平處理,維持480 μs的時間;最后再對數據口進行高電平處理一次,這樣就完成了對器件的初始化工作。完成初始化后單片機等待器件的溫度輸出信號,當單片機采集到器件輸出低電平,就可以通過命令控制器件輸出溫度數據。得到進水溫度和出水溫度以及流量后,就得到電網蓄熱量。溫度檢測軟件設計流程如圖8所示。

圖8 溫度檢測軟件設計流程圖

3.3 流量檢測軟件設計

流量的檢測主要是對脈沖的識別。傳感器和主控的PA0連接,主控需要對傳感器輸出的高脈沖進行識別,每識別到一個高脈沖說明有一定量的水流過[17]。該文使用主控的觸發中斷功能識別脈沖信號。中斷需要用到STM32的NVIC功能,即選定具體的中斷通道后確定中斷源,這里對應的是硬件電路中的接口PA0。將流量傳感器的脈沖作為中斷源,設置優先級為最高優先級,保證脈沖識別的精度;再結合得到的進水溫度和出水溫度就得到電網蓄熱量。流量檢測軟件設計流程如圖9所示。

圖9 流量檢測軟件設計流程圖

3.4 顯示軟件設計

系統需要安裝液晶顯示器的時序以便主控對液晶顯示器進行控制,主要進行指令和數據的輸入控制,實現需要顯示的內容[18]。在對液晶顯示器操作時同樣要進行初始化操作,首先復位液晶顯示器,完成對液晶顯示器的重啟;再進行液晶顯示器的模式設置,模式設置前需要關閉顯示,然后對液晶顯示器進行清屏操作,設置液晶顯示器在顯示內容時不移動、無光標、不閃爍,模式設置完畢開啟液晶顯示器。接下來就可以進行顯示內容的操作。主控先命令液晶顯示器需要在什么位置上顯示內容,也就是顯示內容的地址,有了地址后,緊接著輸入要顯示的具體內容,這樣就完成了對液晶顯示器的控制。顯示軟件設計流程如圖10所示。

圖10 顯示軟件設計流程圖

3.5 遠程通信軟件設計

在系統采集到電蒸汽蓄熱鍋爐內的溫度以及水位低于設置的閾值時需要聲音提示。如果電蒸汽蓄熱鍋爐內的溫度以及水位小于設置的閾值,則主控控制PB12輸出低電平,控制蜂鳴器報警[19-20];如果土壤濕度大于設置的閾值,則主控控制PB12輸出高電平,控制蜂鳴器停止報警。報警控制軟件設計流程如圖11所示。

圖11 遠程通信軟件設計流程圖

4 調試

4.1 軟件測試

STC處理器的開發工具是Keil,通過Keil進行軟件代碼編寫并進行編譯,生成最終處理器所需要的HEX文件,將此文件燒錄到處理器中,處理器就會按照軟件運行起來[21]。Keil還可以在線仿真,對代碼進行邏輯性驗證,即在HEX文件燒錄到處理器前進行初步的驗證。在對單片機系統進行開發的時候所涉及到的相關硬件和軟件,可以通過Keil uVision所提供的工具進行編碼、翻譯、編寫以及調試等,進一步驗證系統軟件設計是否正確,以便檢查出軟件中存在的問題,不斷優化bug,最終完成對整個系統的調試。

軟件設計完成后可以通過Keil進行測試。Keil不僅有代碼編輯功能,還可以對設計好的代碼進行調試。此工具可以自動為開發者查找出相關的錯誤,在按下編譯按鈕之后會告知開發者相關錯誤信息,提示開發者錯誤發生在代碼的什么位置,以及具體錯誤的解釋信息,只要按照提示信息修改相關代碼,會很容易完成代碼的優化,實現系統軟件功能。

按照系統的功能要求,在確定了系統各部分器件的具體方案后,按照該方案對系統的代碼進行設計,可以按照功能模塊劃分對軟件進行編寫,也可以按照硬件模塊劃分進行開發。不管是選擇哪種方式,都是先編寫并實現一個模塊之后,再進行下一個模塊的編寫,這樣實現起來不會相互影響,開發思路更加清楚,后期有問題也更容易定位,而且可以作為后期模塊的代碼文件存儲起來,方便后期設計調用。硬件有模塊,軟件同樣也有模塊,這種編程習慣為后期的開發帶來便利,對于代碼的閱讀也更加的容易[22]。

軟件設計選擇了模塊化開發,這需要對各個模塊的內部參數進行細化,模塊之間要設計好接口,這樣才可以進行數據傳輸。編寫的代碼不能占用太多的資源,否則會降低運行速度及運行效果,只有優化和降低代碼的多余工作,才能讓各個功能協調工作[23]。代碼中數據的定義也很關鍵,其中最重要的就是數據范圍以及作用區域,比如一個數據能達到的最大范圍是200,而定義的范圍達到了65 536,所分配的空間就是65 536的空間,這就造成了大部分空間的浪費,所以在定義數據的時候必須考慮這個數據作用的范圍,按照作用的范圍定義相對應的空間。

圖12為系統調試界面,在調試界面中可對系統代碼進行驗證。調試工具提供了很多方案,對設計的語句一步一步地運行,能夠看到每一句的操作結果,且所有細節都會顯示出來。對任何一個數據和任何一個寄存器變化的監控都可以一目了然,可按照調試需要監控相對應的變量;還可以只運行某一段代碼,監控這一部分代碼的效果;可以設置斷點,運行之后停止在這個位置。通過上述調試方案對系統的軟件進行驗證。

圖12 調試界面

4.2 硬件測試

在焊接時需要注意焊接的溫度,溫度太低焊錫絲不容易融化,溫度太高又有可能損壞器件;對每一個引腳的焊接時間都應該進行控制,因為焊接時間太長容易損壞器件。另外,要按照布板的位置依次進行焊接,以免出現某些器件沒有焊接的情況,還要注意器件之間的位置是否相互干擾。在完成所有器件的焊接后,需要對每個焊點進行仔細地檢查,發現漏焊或者短路連在一起的需補充修好,再用清潔劑清洗線路板后就可以上電測試。如圖13所示。

圖13 硬件上電測試

5 結語

為解決電網蓄熱量無法精準控制,且長期缺乏合理的計量措施的問題,該文設計開發了一套基于STM32單片機的電網蓄熱量監測系統。該系統具有流量檢測、進水溫度檢測、出水溫度檢測、數據顯示及遠程監控等功能,通過對水的溫度以及流量進行檢測,得到電網蓄熱量數據。水溫需要先測量進水溫度,再采集出水溫度,用出水溫度減去進水溫度,實時獲取流量得到電網蓄熱量數據。電網蓄熱量數據可以在本地顯示,也可以遠程監控。通過仿真,驗證了該電網蓄熱量監測系統的可行性,為電蒸汽蓄熱鍋爐智能化控制設計與開發提供經驗。

猜你喜歡
液晶顯示器電路
電路的保護
水廠液晶幕墻系統建立和應用
把顯示器“穿”在身上
解讀電路
一種USB接口字符液晶控制器設計
IDC發布《2018年PC顯示器市場跟蹤報告》
一種新型點陣顯示器的設計
巧用立創EDA軟件和Altium Designer軟件設計電路
基于MATLAB模擬混沌電路
廢舊液晶六屏顯示改造項目的設計與實現
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合