<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于機(jī)智云的STC單片機(jī)水溫智能控制系統(tǒng)的設(shè)計與實(shí)現(xiàn)

          基于機(jī)智云的STC單片機(jī)水溫智能控制系統(tǒng)的設(shè)計與實(shí)現(xiàn)

          作者:張吉圭(貴州城市職業(yè)學(xué)院,貴陽 550025) 時間:2021-11-26 來源:電子產(chǎn)品世界 收藏
          編者按:隨著物聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,信息化水平不斷提高,傳統(tǒng)控制結(jié)合現(xiàn)代化的智能網(wǎng)聯(lián)技術(shù)是現(xiàn)代智能物聯(lián)網(wǎng)控制技術(shù)的發(fā)展方向。設(shè)計一種物聯(lián)網(wǎng)的水溫控制系統(tǒng),包括機(jī)智云物聯(lián)網(wǎng)平臺,DS18B20水溫傳感器、水溫主控制器和通信模塊STC單片機(jī)、ESP8266無線模塊等。系統(tǒng)通過采集當(dāng)前水溫的狀態(tài)和按鍵的控制狀態(tài),采用PID算法得到控制值,輸出信息給加熱驅(qū)動和直流電機(jī)模塊,實(shí)現(xiàn)水溫的加熱,同時通過并口和通信模塊連接,通信模塊通過串口和ESP8266連接,ESP8266通過WiFi連接物聯(lián)網(wǎng)平臺,實(shí)現(xiàn)溫度的遠(yuǎn)程監(jiān)測和控制。

          作者簡介:張吉圭(1987—),男,侗族,貴州貴陽,講師,工程師,研究方向:嵌入式技術(shù),物聯(lián)網(wǎng)技術(shù)。

          本文引用地址:http://www.ex-cimer.com/article/202111/429916.htm

          摘要:在實(shí)際的應(yīng)用案例中,抗干擾性和穩(wěn)定性好,控制精度達(dá)到0.1度,產(chǎn)生了工程意義。

          隨著控制技術(shù)、測量儀器、物聯(lián)網(wǎng)技術(shù)的發(fā)展,在石油、能源、電力及化工生產(chǎn)過程中,應(yīng)用了越來越多先進(jìn)的方法、設(shè)備和控制測量技術(shù)。在眾多的先進(jìn)測量控制技術(shù)中,如何高精度控制水溫成為焦點(diǎn)課題之一,為越來越多的機(jī)構(gòu)所重視。在環(huán)境惡劣或溫度較高等場景,為了保證生產(chǎn)過程正常安全進(jìn)行,提高產(chǎn)品的質(zhì)量和數(shù)量,同時減輕工人的勞動強(qiáng)度和節(jié)約能源,及時準(zhǔn)確地得到溫度信息并對其進(jìn)行適時的控制,是許多工業(yè)場合重要的環(huán)節(jié)。一種典型的STC 單片機(jī)控制系統(tǒng)結(jié)合物聯(lián)網(wǎng)技術(shù)實(shí)現(xiàn)溫度的遠(yuǎn)程監(jiān)測和控制,為實(shí)現(xiàn)水溫的智能化控制提供了可能。

          1   系統(tǒng)總體設(shè)計

          系統(tǒng)硬件包括STC 單片機(jī)控制電路、通信電路、液晶顯示電路、加熱驅(qū)動電路、溫度均勻攪拌裝置和無線WiFi 模塊組成的系統(tǒng)硬件裝置。系統(tǒng)硬件模塊連接如圖1 所示。系統(tǒng)軟件主要采用C 語言編寫,通過C語言和Keil 搭建軟件編程環(huán)境,物聯(lián)網(wǎng)平臺和硬件電路開發(fā)板作為調(diào)試工具來完成系統(tǒng)設(shè)計。

          1637905985341771.png

          2   關(guān)鍵電路設(shè)計

          2.1系統(tǒng)主控模塊和通信模塊

          在智能化控制方案中,系統(tǒng)采用兩個STC 單片機(jī)搭建方案,一個STC 單片機(jī)作為主控制器,負(fù)責(zé)信號的處理、顯示、輸出控制等。另一個STC 單片機(jī)作為通信控制器和 無線WiFi 連接,解決通信中通信協(xié)議數(shù)據(jù)量大和控制器RAM 小的問題。其中 無線WiFi 器件為核心的數(shù)據(jù)傳輸模塊,連接物聯(lián)網(wǎng)平臺,數(shù)據(jù)通過通信鏈路實(shí)現(xiàn)傳輸,在物聯(lián)網(wǎng)平臺上或終端進(jìn)行數(shù)據(jù)監(jiān)測。其硬件原理圖如圖2所示。

          image.png

          圖2 主控模塊和通信模塊硬件原理圖

          2.2 系統(tǒng)工作電源及最小系統(tǒng)工作原理圖

          系統(tǒng)工作電源采用直流穩(wěn)壓電源,利用變壓器把220 V 交流變直流,通過橋式鎮(zhèn)流、濾波、穩(wěn)壓器件LM7805 和LM1117RS-3.3 分別得到5 V 和3.3 V 的工作電源。直流加熱電源采用集成24 V/200 W 的開關(guān)電源供電。5 V 和3.3 V 的電源分別為STC 單片機(jī)最小系統(tǒng)和 無線WiFi 模塊供電,其中STC 單片機(jī)最小系統(tǒng)包括電源電路、復(fù)位電路、時鐘電路及下載電路。硬件原理圖如圖3 所示。

          1637906116274943.png

          圖3 系統(tǒng)工作電源及最小系統(tǒng)工作原理圖

          2.3 信號采集及電機(jī)攪拌原理圖

          溫度采集采用DS18B20 傳感器對水溫進(jìn)行采集,加熱系統(tǒng)采用直流加熱棒進(jìn)行加熱。在整個加熱和水溫采集環(huán)節(jié),發(fā)現(xiàn)采集的溫度點(diǎn)不一樣,得出溫度控制參數(shù)不一致,經(jīng)過不斷實(shí)驗(yàn)和發(fā)現(xiàn),溫度在加熱過程中存在不均勻現(xiàn)象,會有不同溫區(qū)存在。為解決水溫不均勻的現(xiàn)象,設(shè)計一種攪拌裝置,在水溫加熱過程中周期性對加熱區(qū)的水進(jìn)行攪拌,使得DS18B20 能夠采集到較準(zhǔn)確的水溫值,在整定PID 過程中能夠得到更為準(zhǔn)確的PID 參數(shù),進(jìn)而提高系統(tǒng)穩(wěn)定性和可靠性。硬件原理圖如圖4 所示。

          1637906173777314.png

          圖4 信號采集及電機(jī)攪拌硬件原理圖

          2.4 信號輸出驅(qū)動及液晶顯示電路原理圖

          系統(tǒng)采用24 V/200 W 直流電對加熱棒進(jìn)行加熱,加熱棒的溫度直接影響水的溫度,因此控制加熱棒溫度就能控制水的溫度。設(shè)計一種PWM(脈寬調(diào)制)信號對直流加熱棒的驅(qū)動電壓加熱時間進(jìn)行控制,進(jìn)而控制加熱的熱能,PWM 信號是實(shí)際溫度與設(shè)定溫度的差值通過PID 計算得到的一個控制值,能夠精確控制溫度信號。為使控制器的PWM 輸出能夠控制24 V/200 W 的驅(qū)動信號,用SSR 單項(xiàng)固態(tài)繼電器設(shè)計了輸出驅(qū)動電路,經(jīng)反復(fù)實(shí)驗(yàn)表明,該驅(qū)動電路能夠滿足系統(tǒng)的要求。其顯示部分用帶中文字庫的字符液晶ST7920 控制的12864 顯示溫度數(shù)據(jù)和溫度設(shè)定,并實(shí)現(xiàn)溫度曲線的實(shí)時繪制和溫度控制時間的顯示。其硬件原理圖如圖5所示。

          1637906251531899.png

          圖5 信號輸出驅(qū)動及液晶顯示電路原理圖

          3   軟件流程架構(gòu)及算法

          隨著通信技術(shù)的發(fā)展,的功能越來越強(qiáng)大,有代表性的編譯軟件有Keil、IAR、CodeWarrior 等。代碼語言有匯編語言、C 語言、Java 語言等。C 語言具有良好的邏輯及功能性,本次設(shè)計選擇作為主控制器,編程語言選用C 語言,編譯軟件選用軟件Keil。

          3.1 系統(tǒng)軟件設(shè)計總體流程圖

          整體系統(tǒng)軟件設(shè)計是由系統(tǒng)中不同功能模塊整合在一起實(shí)現(xiàn)系統(tǒng)功能。系統(tǒng)中包括PWM 輸出程序設(shè)計、PID 溫度控制程序、按鍵掃描程序、液晶顯示驅(qū)動程序、WiFi 模塊通信程序、報警電路、DS18B20 溫度傳感驅(qū)動程序及電機(jī)驅(qū)動攪拌裝置。根據(jù)軟件框架圖,設(shè)計程序流程圖,為程序的功能實(shí)現(xiàn)、算法編碼、軟硬件調(diào)試、后期維護(hù)提供條件。程序總體流程圖如圖6 所示。

          1637906319536873.png

          圖6 程序總體流程圖

          3.2 系統(tǒng)核心控制和通信算法理論

          PID 溫度控制是一種成熟技術(shù),具有結(jié)構(gòu)簡單、易于理解和實(shí)現(xiàn)的特點(diǎn)。在工業(yè)控制中90% 以上的控制系統(tǒng)回路都具有PID 結(jié)構(gòu)。PID 調(diào)節(jié)將設(shè)定值W 與實(shí)際值y 進(jìn)行比較構(gòu)成偏差,并將其比例、積分、微分通過線性組合構(gòu)成控制量。采用PID 控制效果的好壞很大程度上取決于PID 三個控制參數(shù)的確定。PID 控制主要構(gòu)成如圖7 所示。

          1637906386511288.png

          圖7 模擬PID控制

          PID控制的動態(tài)方程為:

          1637906450614378.png

          其中,Kp 為調(diào)節(jié)器的比例放大系數(shù);Ki 為積分時間常數(shù);Kd 為微分時間常數(shù)。

          水溫系統(tǒng)的智能控制采用PID 增量式算法,根據(jù)實(shí)驗(yàn)結(jié)果和數(shù)據(jù),采用先比例再積分,最后微分的實(shí)驗(yàn)湊試法進(jìn)行PID 參數(shù)整定。比例系數(shù)的整定取消積分和微分的作用,采用純比例控制,將比例系數(shù)從小到大調(diào)節(jié),觀察系統(tǒng)的響應(yīng),直到響應(yīng)速度快且有一定范圍的超調(diào),得出比例系數(shù)。積分部分的整定,如果系統(tǒng)的靜態(tài)差達(dá)不到系統(tǒng)要求,這時需加入積分,整定時積分系數(shù)由大到小逐漸遞減,觀察輸出,直至系統(tǒng)靜態(tài)誤差減小或消除,得出積分系數(shù)。微分系數(shù)的整定,如系統(tǒng)通過比例和積分調(diào)節(jié)都不能達(dá)到要求,需加入微分系數(shù),同樣,整定時使微分系數(shù)從小到大逐漸增加,觀察超調(diào)量和穩(wěn)定性,同時微調(diào)比例系數(shù)和微分系數(shù),觀察系統(tǒng)的輸出響應(yīng)、超調(diào)量和穩(wěn)定性。通過不斷實(shí)驗(yàn)和整定,電源為200 W 直流加熱系統(tǒng),加熱0.5 升的純凈水,在溫度變化為20 ℃時,超調(diào)量不超過0.1 ℃,得出PID 的比例系數(shù)為19,積分系數(shù)為0.036,微分系數(shù)為0.8,能夠使PWM 輸出達(dá)到系統(tǒng)控制要求。

          智能系統(tǒng),通信部分主要是STC 單片機(jī)之間的通信、STC 單片機(jī)和ESP8266 WiFi 的通信,以及ESP8266 WiFi 和機(jī)智云之間的通信。由于STC 單片機(jī)模擬了PWM 的定時輸出,如果利用串口進(jìn)行通信,會出現(xiàn)不穩(wěn)定現(xiàn)象,為避免這種現(xiàn)象,STC 單片機(jī)之間的通信采用并行口,結(jié)合P15、P16 實(shí)現(xiàn)并口通信協(xié)議,協(xié)議內(nèi)容如表1 所示。STC 單片機(jī)通信控制從P0 端口接收到溫度控制器傳輸?shù)臄?shù)據(jù)后,用串口連接ESP8266WiFi 模塊,ESP8266 WiFi 模塊連接當(dāng)前環(huán)境的路由器熱點(diǎn),與機(jī)智云服務(wù)器建立TCP 連接,進(jìn)行數(shù)據(jù)傳輸。同時,手機(jī)終端或WEB 終端發(fā)送控制命令,通過命令數(shù)據(jù)→機(jī)智云服務(wù)器→ ESP8266 WiFi → STC 單片機(jī)通信控制→ STC 單片機(jī)控制系統(tǒng)的通信流程,對溫度進(jìn)行遠(yuǎn)程監(jiān)控。

          1637906556683441.png

          4   實(shí)驗(yàn)數(shù)據(jù)結(jié)果

          根據(jù)軟硬件測試,系統(tǒng)自檢正常,溫度顯示正常,通信正常。設(shè)定STC 單片機(jī)控制水溫在一定范圍內(nèi),對整體系統(tǒng)進(jìn)行測試,在20 ~ 60 ℃范圍內(nèi)實(shí)現(xiàn)多組設(shè)定,溫度控制實(shí)驗(yàn)效果如圖8 所示。

          1637906600889161.png

          圖8 溫度控制實(shí)驗(yàn)效果

          通過實(shí)驗(yàn)結(jié)果分析,每個測試的目標(biāo)溫度反映實(shí)際和誤差,在相同測試環(huán)境下,將溫度計和溫度采集模塊所測得溫度進(jìn)行比對,將數(shù)值記錄得到表2,從而得到標(biāo)度誤差。

          1637906677299477.png

          5   結(jié)束語

          設(shè)計以STC 單片機(jī)結(jié)合增量式PID、PWM 脈寬輸出、機(jī)智云物聯(lián)網(wǎng)平臺,完成了系統(tǒng)軟硬件設(shè)計,經(jīng)過綜合調(diào)試和測試,驗(yàn)證了該遠(yuǎn)程控制系統(tǒng)軟硬件設(shè)計結(jié)構(gòu)合理,性能可靠,操作方便。由于時間和實(shí)驗(yàn)條件限制,該系統(tǒng)設(shè)計仍有一些缺點(diǎn)和不足,沒有采用更高性能的處理器來完成硬件和軟件設(shè)計,未來有待進(jìn)一步完善。

          參考文獻(xiàn):

          [1] 劉紅梅,譚傳武.基于AVR單片機(jī)的監(jiān)測系統(tǒng)設(shè)計[J].電子設(shè)計程,2021,13(29):66-71.

          [2] 郝結(jié)來 ,王子權(quán).基于STM32的多通道溫濕度測量儀設(shè)計[J].電子設(shè)計工程,2021,11(29):74-79.

          [3] 李杉,庹先國,張貴宇,等.基于STM32的多路溫度采集系統(tǒng)設(shè)計[J].四川理工學(xué)院學(xué)報(自然科學(xué)版),2018,31(3):49-53.

          [4] 田二林,朱付保,張永霞,等.基于DSP的農(nóng)田土壤信息采集器的改進(jìn)設(shè)計[J].農(nóng)機(jī)化研究,2020(6): 216-219.

          [5]張軍,李亞民.基于無人機(jī)的空氣質(zhì)量監(jiān)測系統(tǒng)設(shè)計[J].電子設(shè)計工程,2019,27(21):85-88.

          [6] 張興超.智能灌溉遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計[J].中國科技信息,2019(24):58-59.

          [7] 張鑫,許曉平.基于STM32的花園遠(yuǎn)程智能灌溉監(jiān)控系統(tǒng)[J].信息技術(shù),2020,44(8):89-92,97.

          [8] 劉悅婷,李曉斌,孫偉剛,等.基于單片機(jī)多功能抽水灌溉系統(tǒng)的設(shè)計[J].軟件,2020,41(12):42-44.

          [9] 王立剛.一種基于STC89C52和AD590的溫度測控系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2019,9(6):20-21.

          (本文來源于《電子產(chǎn)品世界》雜志2021年10月期)



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();