摘" 要: 為提高溫度控制的智能化水平,設計一種智能溫度控制系統(tǒng)。該系統(tǒng)以STC89C52單片機為控制器,采用PID算法控制溫度,具有語音播報和手機遠程控制等功能。采用DS18B20溫度傳感器采集環(huán)境溫度;設計LCD12864顯示電路實時顯示當前溫度、溫度上下限以及溫度狀態(tài);設計WT588D語音提醒電路,當測量溫度小于下限或大于上限時發(fā)出語音提醒;設計按鍵電路實現(xiàn)溫度上下限值的設定;設計藍牙通信電路,與手機APP通信,實現(xiàn)遠程控制;采用PID算法輸出控制量,控制固態(tài)繼電器驅動加熱或降溫裝置,實現(xiàn)溫度控制。其次,對溫度控制系統(tǒng)的硬件和軟件進行設計,并制作實物進行運行測試。實驗結果表明,所設計的溫度控制系統(tǒng)能夠很好地實現(xiàn)溫度控制,從而達到預期效果,且操作方便、成本低,具有較強的應用價值。
關鍵詞: 溫度控制系統(tǒng); PID算法; STC89C52單片機; LCD12864顯示電路; 語音提示; 藍牙通信
中圖分類號: TN915?34; TP277" " " " " " " " " "文獻標識碼: A" " " " " " " " " " " 文章編號: 1004?373X(2024)08?0083?07
Design of temperature intelligent control system based on single?chip
microcontroller and PID algorithm
ZU Yikang1, XU Miaojing2
(1. School of Mechatronics and Intelligent Manufacturing, Huanggang Normal University, Huanggang 438000, China;
2. School of Physics and Telecommunications, Huanggang Normal University, Huanggang 438000, China)
Abstract: An intelligent temperature control system is designed to improve the intelligent level of temperature control. In the system, STC89C52 microcontroller is used as the controller, and PID algorithm is used to control temperature, which has functions such as voice broadcasting and mobile remote control. DS18B20 temperature sensor is used to collect environmental temperature, the LCD12864 display circuit is designed to display real?time current temperature, upper and lower limits of temperature, and temperature status. The WT588D voice reminder circuit is designed to emit a voice reminder when the measured temperature is below or above the lower limit. The button circuit is designed to set the upper and lower temperature limits. The Bluetooth communication circuit is designed to communicate with mobile APP and achieve remote control, and the PID algorithm is used to output control variables and control solid?state relays to drive heating or cooling devices, achieving temperature control. The hardware and software design of the temperature control system are designed, and the physical object is maken, operational testing is conducted by the experiments. The experimental results show that the designed temperature control system can realize the expected effect, can effectively achieve temperature control, and is easy to operate, low?cost, and had strong application value.
Keywords: temperature control system; PID algorithm; STC89C52 microcontroller; LCD12864 display circuit; voice prompts; Bluetooth communication
0" 引" 言
在工農業(yè)生產(chǎn)和人們日常生活中,溫度是重要的控制量之一,例如:在冶金、窯爐、糧庫、溫室大棚、生物、醫(yī)藥、化工、休閑及居住場所等方面都需要對溫度進行實時監(jiān)測和控制[1?3]。在某些生產(chǎn)領域,溫度控制直接關系到產(chǎn)品的質量和性能,需要更加精確的溫度控制系統(tǒng)[4?5]。溫度具有滯后、慣性大、非線性等特點,很難精確控制[6],為此,文中設計了一款智能溫度控制系統(tǒng),采用STC89C52單片機為控制器。PID算法因其控制方法簡單、效果好,在工業(yè)領域的溫度控制方面被廣泛應用[7?9],因此,本文使用PID算法來控制溫度。本文系統(tǒng)除了能實現(xiàn)溫度實時測量、溫度參數(shù)設定、數(shù)值顯示等基本功能外,還能實現(xiàn)語音播報提醒,并通過藍牙將溫度值傳輸?shù)绞謾CAPP實時顯示,手機APP還可以修改溫度設定值,便于遠程控制。實踐表明,本文所設計的智能溫度控制系統(tǒng)具有結構簡單、功能齊全、操作方便等優(yōu)點,能夠很好地實現(xiàn)溫度控制,具有很強的實用性。
1" 總體設計
智能溫度控制系統(tǒng)以STC89C52單片機為控制器,采用PID算法調節(jié)溫度值。系統(tǒng)總體設計框圖如圖1所示,主要包括溫度測量模塊、顯示模塊、按鍵模塊、語音提醒模塊、藍牙模塊、溫度控制模塊等。
溫度測量模塊:采用DS18B20溫度傳感器實時測量環(huán)境溫度,通過顯示模塊實時顯示。
顯示模塊:采用LCD12864液晶顯示器顯示當前測量溫度值、溫度上限值、溫度下限值和溫度狀態(tài)。當測量溫度小于溫度下限時,顯示“溫度偏低”;當測量溫度大于溫度上限時,顯示“溫度偏高”;當測量溫度在上下限之間時,顯示“溫度正?!薄?/p>
按鍵模塊:設置溫度上限和下限值,以及播報當前溫度值。
語音提醒模塊:根據(jù)測量值與設定值比較結果,發(fā)出相應的語言提醒。當測量溫度小于下限時,播報“溫度偏低”;當測量溫度大于上限時,播報“溫度偏高”。為了減少在溫度調節(jié)過程中語音頻繁播報帶來的聲音干擾,將語音播報次數(shù)設定為3次,超過3次,將不再語音播報。
藍牙模塊:實現(xiàn)與手機APP通信,手機端顯示測量溫度、溫度設定值、溫度狀態(tài),還可以修改溫度設定值,便于遠程控制。
溫度控制模塊:采用PID算法調節(jié)溫度,當環(huán)境溫度與上下限溫度差超過1 ℃時,采用PWM控制固態(tài)繼電器驅動加熱或降溫裝置全速加熱或降溫;當溫度值與溫度上下限相差小于1 ℃時,則調用PID算法進行溫度控制,采用PWM控制固態(tài)繼電器驅動加熱或降溫裝置進行加熱或降溫。
2" 硬件電路設計
2.1" 溫度測量電路設計
采用DS18B20溫度傳感器測量環(huán)境溫度。DS18B20是一個單總線數(shù)字式溫度傳感器,測量精度高、結構簡單、操作方便,且有3個引腳,分別為VCC(電源正極)、GND(接地)、DQ(數(shù)據(jù)輸入輸出)[10]。溫度測量電路連接圖如圖2所示,DQ與單片機的P1.5引腳相連接。
2.2" 顯示電路設計
采用帶中文字庫的LCD12864顯示器件顯示采集到的溫度測量值、設定的溫度值和溫度狀態(tài)。LCD12864具有128列、64行,內置8 192個16×16點陣漢字和128個16×8點陣字符;具有串行和并行兩種通信方式,本文系統(tǒng)采用串行通信方式[11]。由于只有一塊LCD12864,所以只將R/W(串行數(shù)據(jù)輸入端)引腳和E(串行同步時鐘,上升沿時讀取數(shù)據(jù))引腳分別與單片機的P2.6、P2.7引腳連接,如圖3所示。
2.3" 語音提醒電路設計
語音提醒電路由WT588D語音芯片和外接揚聲器構成。WT588D語音芯片具有多種控制模式,如一線、三線串口控制模式,以及PWM、DAC兩種輸出方式,且芯片內可加載128段語音[12]。文中采用三線串口控制模式和PWM輸出實現(xiàn)語音芯片命令控制、語音播放。三線串口控制模式由三條通信線組成,即片選CS、數(shù)據(jù)DATA和時鐘CLK,采用標準SPI通信方式[13]。WT588D語音芯片電路連接圖如圖4所示。
2.4" 按鍵電路設計
按鍵電路用于設置溫度上限、下限值和控制語音模塊播報當前溫度,其電路連接圖如圖5所示。S4鍵為設置鍵,按下時可進行溫度值設定,設置完成后按下S3鍵退出設置。在設置參數(shù)時,S2鍵為加,S3鍵為減;在系統(tǒng)運行時,按下S2鍵,語音播報當前溫度值。
2.5" 藍牙電路設計
采用HC?05藍牙模塊實現(xiàn)單片機與手機APP之間的通信[14]。藍牙模塊與單片機采用串口連接,如圖6所示。藍牙模塊的TX引腳與單片機的RXD(P3.0)引腳、RX引腳與單片機的TXD(P3.1)引腳交叉相連[15]。
2.6" 溫度控制電路設計
當檢測到的環(huán)境溫度小于溫度下限值或大于溫度上限值時,開啟加熱或降溫裝置對溫度進行調節(jié),文中采用PWM控制固態(tài)繼電器驅動加熱或降溫裝置進行加熱或降溫。由于傳統(tǒng)繼電器采用的是有觸點的電磁機械結構,響應速度較慢,無法滿足PWM的高頻率通斷,因此,文中采用固態(tài)繼電器控制加熱和降溫裝置。溫度控制電路連接圖如圖7所示,采用P1.6和P1.3引腳控制,P4、P3接線端子分別與加熱和降溫裝置相連接。
3" 軟件設計
完成了硬件設計后,需要編寫程序來實現(xiàn)系統(tǒng)功能。軟件設計包括主程序設計、溫度測量程序設計、顯示程序設計、語音提醒程序設計、按鍵程序設計、藍牙程序設計和溫度控制程序設計。主程序設計流程如圖8所示。
3.1" 溫度測量程序設計
溫度測量是系統(tǒng)實現(xiàn)的關鍵,本文對DS18B20的讀寫遵照嚴格的時序。DS18B20在使用時需經(jīng)過初始化、寫字節(jié)和讀字節(jié)這三個步驟[16],在讀寫操作前要先對DS18B20進行初始化,三個步驟缺一不可。溫度測量程序流程如圖9所示。
3.2" 顯示程序設計
在此采用帶中文字庫的LCD12864液晶顯示器顯示相關信息。LCD12864程序主要包括初始化、讀狀態(tài)、寫命令、讀顯示數(shù)據(jù)、寫顯示數(shù)據(jù)、顯示位置確定等。在串行模式下,SID前8位為控制字符,其中1~5位固定位1,R/W=0時,表示寫操作;RS=1時,表示寫數(shù)據(jù);RS=0時,表示寫指令[17],因此寫指令命令固定為0xf8,寫數(shù)據(jù)命令固定為0xfa。顯示程序流程如圖10所示。
3.3" 語音提醒程序設計
單片機與WT588D語音芯片采用三線串口通信,語音事先通過軟件下載到語音芯片中,在使用時,通過地址就可以讀出語音內容,相關語音文件地址內容如表1所示。語音提醒程序流程如圖11所示。
3.4" 按鍵程序設計
按鍵程序設計主要實現(xiàn)設定溫度值的設置和播報當前溫度值。定義變量menu表示參數(shù)設置,在S4(設置按鍵)沒有按下時,menu=0。在S4鍵按下時,進入?yún)?shù)設置,menu值加1,根據(jù)menu值進入相應的參數(shù)設置界面。按鍵程序設計流程如圖12所示。
3.5" 藍牙程序設計
藍牙程序實現(xiàn)單片機與手機APP間的通信,手機端打開藍牙搜索名稱為HC?05,輸入密碼為1234,進行連接。單片機與藍牙之間采用串行通信,單片機發(fā)送數(shù)據(jù)時采用查詢方式,將當前溫度值和溫度上下限值發(fā)送到手機APP端。單片機接收數(shù)據(jù)采用中斷方式,將接收到的數(shù)據(jù)存放到數(shù)組里,接收完成后將標志位flag置1,通過判斷flag是否為1,即可判斷接收是否完成。由于接收到的數(shù)據(jù)有溫度的上限值和下限值,為了便于區(qū)分,在手機APP端發(fā)送溫度上限值時,以0xfa開頭;發(fā)送溫度下限值時,以0xfb開頭。
3.6" 溫度控制程序設計
溫度控制程序采用PID算法調節(jié)溫度,當測量溫度值與上下限值之間的溫差超過1 ℃時,則采用PWM控制固態(tài)繼電器驅動加熱或降溫裝置全速加熱或降溫;當測量溫度值與上下限值間溫差小于1 ℃時,則調用PID算法進行溫度控制,采用PWM控制固態(tài)繼電器驅動加熱或降溫裝置進行加熱或降溫。
PID是比例、積分和微分的合稱,其算法原理圖如圖13所示。
控制規(guī)律[18]描述如下:
[u(t)=KPe(t)+1TI0te(t)dt+TDde(t)dt]
式中:[KP]為比例系數(shù);[TI]為積分系數(shù);[TD]為微分系數(shù);[e(t)]為偏差;[u(t)]為PID算法輸出的控制量。
PID算法流程如圖14所示。程序中將PID控制增量rout限定在2~200之間,rout值用于確定定時器產(chǎn)生的PWM波的占空比。因藍牙采用串口通信,占用了定時器T1用于產(chǎn)生波特率,且加熱和降溫操作不是同時進行的,所以可以采用定時器T0分別產(chǎn)生PWM波實現(xiàn)加熱和降溫。在加熱時,warm_flag置1;在降溫時,cool_flag置1。定時器T0采用中斷方式產(chǎn)生PWM波,中斷程序如下:
void time0_int() interrupt 1
{
TH0=(65 536-5 000)/256;
TL0=(65 536-5 000)%256;" " " " " " " " " " " " " " " " " " " " //初值
kk ++;" " " " " " " " " " " " " " " " " " " " " " " " " " " //進入中斷次數(shù)
if(kkgt;200)
kk=0;
if(warm_flag==1)
{
if(kkgt;warm_num)" /*warm_num為占空比,全速加熱時,值為200,
PID調節(jié)時值為rout*/
warm=1;" " " " " " " " " " " " " " " " " " " " " " " " //驅動加熱繼電器
else warm=0;
}
if(cool_flag==1)
{
if(kkgt;cool_num)" " "/*cool_num為占空比,全速降溫時,值為200,
PID調節(jié)時值為rout*/
cool=1;" " " " " " " " " " " " " " " " " " " " " " " " " "http://驅動降溫繼電器
else cool=0;
}
}
4" 系統(tǒng)測試
在完成硬件和軟件設計后,制作了實物,對系統(tǒng)進行運行測試。實物圖和手機APP界面顯示如圖15所示。
溫度上限和下限值設定,可通過按下S4鍵進入設置界面,配合S2和S3完成設置;也可以在手機APP的輸入框中輸入相應的數(shù)值后點擊溫度上限或溫度下限,完成設置。文中在調試時,將溫度上限設置為28.6 ℃,溫度下限設置為28.4 ℃。溫度正常時,即測量溫度在溫度上限和下限之間,如溫度為28.5 ℃時,不發(fā)出語音提醒,運行結果的界面顯示如圖16所示。
當測量溫度小于溫度下限28.4 ℃時,液晶顯示屏和手機APP上顯示“溫度偏低”,語音模塊發(fā)出3次“溫度偏低”語音提醒,同時啟動加熱裝置加熱,加熱指示燈亮;當測量溫度大于溫度上限28.6 ℃時,液晶顯示屏和手機APP上顯示“溫度偏高”,語音模塊發(fā)出3次“溫度偏高”語音提醒,同時啟動降溫裝置降溫,降溫指示燈亮。溫度報警時的運行結果如圖17所示。
在沒有參數(shù)設置時,按下S2鍵,語音播報當前溫度值,比如:溫度傳感器測量的溫度值為28.5 ℃,語音播報“當前溫度二十八點五度”。
5" 結" 論
本文以STC89C52單片機為控制器,采用PID算法設計了一種智能溫度控制系統(tǒng)。該系統(tǒng)具有溫度測量、溫度控制、語音播報、溫度上下限設置、遠程控制等功能。對智能溫度控制系統(tǒng)的硬件設計和軟件設計進行了詳細的介紹,并制作了實物。對智能溫度控制系統(tǒng)進行了運行測試,結果表明該系統(tǒng)能夠實現(xiàn)上述功能。文中設計的智能溫度控制系統(tǒng)結構簡單、功能齊全、使用方便,能夠實現(xiàn)對溫度的控制,具有較強實用價值,市場前景廣闊。
參考文獻
[1] 徐雷,崔子晨,劉俊俊,等.基于DS18B20溫度監(jiān)測報警系統(tǒng)的設計與實現(xiàn)[J].安慶師范大學學報(自然科學版),2020,26(1):89?92.
[2] 王海榮.PID算法在溫度控制系統(tǒng)中的Proteus設計與仿真[J].自動化與儀器儀表,2017(4):42?44.
[3] 葉小樂.基于DS18B20的多點溫度采集系統(tǒng)設計[J].電子世界,2017(16):100?102.
[4] 彭夢迪,鄭晟.高精度恒溫箱溫度控制系統(tǒng)的實現(xiàn)[J].現(xiàn)代電子技術,2021,44(2):9?12.
[5] 苗麗娟.PID控制在溫度控制系統(tǒng)中的應用研究[J].電子技術與軟件工程,2022(17):119?123.
[6] 昌飛,張欣毅.基于PID控制算法的溫度控制系統(tǒng)的應用研究[J].信息通信,2015(9):31?32.
[7] 唐玉紅.PID控制方法研究[J].電子世界,2019(7):65?66.
[8] 范振瑞.基于Matlab的PID溫度控制系統(tǒng)設計[J].電子科技,2013,26(8):164?167.
[9] 李智珍,鄒陸華,鄧琪偉,等.基于PID控制的溫度控制器設計[J].船電技術,2020,40(10):62?64.
[10] 張仲明,郭東偉,呂巍,等.基于DS18B20溫度傳感器的溫度測量系統(tǒng)設計[J].實驗技術與管理,2018,35(5):76?79.
[11] 張朝陽.基于51單片機的恒溫控制系統(tǒng)的設計[J].吉林師范大學學報(自然科學版),2017,38(4):96?100.
[12] 李奕穎,劉忠富,曾黔,等.景區(qū)智能導游系統(tǒng)[J].智能計算機與應用,2020,10(4):176?179.
[13] 雷永鋒,孫莉莉,劉偉.基于GPS的公交車智能報站系統(tǒng)設計[J].機械與電子,2020,38(3):19?22.
[14] 王靜,趙鵬飛,林倩,等.基于藍牙技術的無線智能稱重系統(tǒng)[J].現(xiàn)代電子技術,2023,46(10):41?46.
[15] 張琥石,徐雪芳,林偉龍,等.藍牙數(shù)控直流電流源的設計[J].現(xiàn)代電子技術,2023,46(6):118?122.
[16] 吳海紅.基于51單片機的溫度控制系統(tǒng)設計與實現(xiàn)[J].通化師范學院學報,2021,42(12):1?6.
[17] 葛耿育.基于STC89C52的LCD12864液晶串并行顯示設計[J].遵義師范學院學報,2016,18(5):98?101.
[18] 沈玫甫,陳洢飄.基于單片機的溫度控制系統(tǒng)設計探索[J].現(xiàn)代工業(yè)經(jīng)濟和信息化,2023,13(4):291?293.
作者簡介:祖一康(1984—),男,湖北黃岡人,博士研究生,講師,研究方向為智能檢測與控制。
徐妙婧(1984—),女,湖北黃岡人,碩士,講師,研究方向為智能控制。