方婷 葉明 周平
摘要為實(shí)現(xiàn)冬季寒冷條件下生菜的正常生長(zhǎng),以STM32F103嵌入式單片機(jī)為核心控制器,結(jié)合DS18B20溫度傳感器、4×4矩陣按鍵、TFT液晶顯示屏以及光警報(bào)器等外圍器件,設(shè)計(jì)了一個(gè)溫度智能控制系統(tǒng)。
關(guān)鍵詞生菜;STM32F103單片機(jī);溫度控制;加熱降溫
中圖分類號(hào)S126文獻(xiàn)標(biāo)識(shí)碼
A文章編號(hào)0517-6611(2017)32-0216-05
Design of Temperature Control System for Lettuces Planting
FANG Ting,YE Ming,ZHOU Ping*(College of Engineering, Anhui Agricultural University, Hefei,Anhui 230036)
AbstractIn order to realize the normal growth of lettuce under cold conditions in winter,using STM32F103 embedded microcontroller as the core controller,combined with DS18B20 temperature sensor,4×4 matrix button,TFT LCD screen and optical alarm and other peripheral devices,we designed a temperature intelligent control system.
Key wordsLettuce;STM32F103 SCM;Temperature control;Heating and cooling
隨著我國(guó)人民生活水平的不斷提高,對(duì)蔬菜種類和品質(zhì)的要求也越來(lái)越高,近年來(lái)生菜已成為冬季餐桌中的一個(gè)亮點(diǎn),但是生菜正常的收獲時(shí)間是5—9月,在一般情況下冬季
很難種植生菜。目前,我國(guó)對(duì)于環(huán)境因素控制和自動(dòng)調(diào)節(jié)的研究尚處于初級(jí)階段。尤其對(duì)于高寒地區(qū),多變的環(huán)境和漫長(zhǎng)的冬季嚴(yán)重限制了生菜的生長(zhǎng),因此溫室大棚的發(fā)展是非常必要的,而發(fā)展的首要就是對(duì)溫度的控制[1-4]。筆者以STM32F103嵌入式單片機(jī)為核心控制器,結(jié)合DS18B20溫度傳感器、4×4矩陣按鍵、TFT液晶顯示屏以及光警報(bào)器等外圍器件,設(shè)計(jì)了一個(gè)溫度智能控制系統(tǒng)。
1系統(tǒng)的結(jié)構(gòu)與組成
該溫度控制系統(tǒng)硬件電路由STM32F103嵌入式單片機(jī)模塊、溫度采集模塊、液晶顯示模塊、鍵盤(pán)接口模塊、電源模塊、光報(bào)警模塊、強(qiáng)電驅(qū)動(dòng)與控制模塊組成,總電路系統(tǒng)框架如圖1所示。
2系統(tǒng)的硬件設(shè)計(jì)
2.1單片機(jī)選型
51系列單片機(jī)為16位單片機(jī),晶振12 MHz,內(nèi)存20 kb左右,驅(qū)動(dòng)液晶屏能力非常管口資源較少,不符合該系統(tǒng)設(shè)計(jì)要求,而對(duì)于運(yùn)算能力較強(qiáng)的32位STM32f103zet6嵌入時(shí)單片機(jī),由于其具有晶振可達(dá)到72 MHz,內(nèi)存超過(guò)100 kb,管口有112個(gè),可以同時(shí)掛載多個(gè)傳感器等優(yōu)點(diǎn),因此選用STM32f103zet6更符合條件。
2.2溫度傳感器的選型
①電阻式溫度傳感器。它是根據(jù)熱敏電阻的溫度特性制成的,工作時(shí)需要用ADC模塊測(cè)出電壓,計(jì)算出電阻,再根據(jù)電阻與溫度的對(duì)應(yīng)關(guān)系,計(jì)算出溫度,此過(guò)程相對(duì)繁瑣,而且電阻與溫度的對(duì)應(yīng)關(guān)系并不是線性的,因此誤差較大,其優(yōu)點(diǎn)是測(cè)量的溫度范圍較廣。②DS18B20(圖2~3)。適宜電壓電壓范圍為3.0~5.5 V,溫度范圍為-55~125 ℃,當(dāng)溫度為-10~85 ℃時(shí)精度為±0.5 ℃,可編程的分辨率為9~12位,對(duì)應(yīng)的可分辨溫度分別為0.5、0.25、0.125和0.062 5 ℃,可實(shí)現(xiàn)高精度測(cè)溫,在9位分辨率時(shí)最多在 93.75 ms內(nèi)將溫度轉(zhuǎn)為數(shù)字,12位分辨率時(shí)最多在750 ms內(nèi)將溫度值轉(zhuǎn)換為數(shù)字,速度更快,其優(yōu)點(diǎn)是通過(guò)一根數(shù)據(jù)線把測(cè)得的溫度數(shù)據(jù)傳給單片機(jī),不需要過(guò)多的硬件輔助測(cè)量,簡(jiǎn)單、易行、精度高,支持多點(diǎn)組網(wǎng)功能,多個(gè)DS18B20可以并聯(lián)在唯一的三線上,實(shí)現(xiàn)組網(wǎng)多點(diǎn)測(cè)溫[5-9]。綜上所述,DS18B20溫度傳感器是最佳選擇。
2.3TFT液晶屏的選型
①12864屏。黑白屏,無(wú)字庫(kù),開(kāi)發(fā)時(shí)需要使用字模軟件對(duì)需要的漢字進(jìn)行取模,由于這個(gè)局限性,所以它只適合用于使用漢字不多的場(chǎng)合。②TFT彩屏(圖4)。為彩色屏,自帶字庫(kù),開(kāi)發(fā)時(shí)跳過(guò)取模環(huán)節(jié),直接調(diào)用字庫(kù)即可,通過(guò)對(duì)RGB數(shù)值的設(shè)置,可以獲得想要的顏色,它還具有12864所沒(méi)有的觸摸功能,但它對(duì)單片機(jī)的處理速度要求較高,一般用51系列的單片機(jī)來(lái)驅(qū)動(dòng)它具有很大難度,而采用RAM系列單片機(jī)可以很好驅(qū)動(dòng)它。綜合考慮,選用TFT彩屏作為顯示屏更為合理。
2.4加熱器的選擇
目前常用的加熱方式有熱水加溫系統(tǒng)、熱風(fēng)爐加溫系統(tǒng)、電加熱系統(tǒng)、點(diǎn)熱泵等,采用的主要能源為燃煤、燃油、燃?xì)庖约半娔堋k娂訜釤犸L(fēng)機(jī)以電能為能源,清潔環(huán)保,熱轉(zhuǎn)化率在99%左右,升溫快,但工作電壓為220 V/380 V電壓,需要配備大容量變壓器,經(jīng)濟(jì)成本高,不適合單個(gè)用戶選用;成本較低的是燃煤熱風(fēng)爐,具有獨(dú)有的整體保溫隔熱設(shè)計(jì),熱損耗降至最低,熱效率高達(dá)80%;所有指標(biāo)均達(dá)國(guó)家 Ⅰ 類地區(qū)環(huán)保標(biāo)準(zhǔn),適合單個(gè)用戶選用。因此,選型方案可根據(jù)具體情況進(jìn)行選擇。
2.5通風(fēng)機(jī)的選擇
針對(duì)該系統(tǒng),采用軸流通風(fēng)機(jī),山東省青州市某設(shè)備廠生產(chǎn)的2種軸流通風(fēng)機(jī)如圖5所示。它具有低噪音、風(fēng)量大、效率高、重量輕與安裝使用方便等特點(diǎn),是較好的通風(fēng)設(shè)備[3]。
2.6強(qiáng)電驅(qū)動(dòng)與控制模塊
該模塊采用帶過(guò)零觸發(fā)的光耦合器件MOC3061,將強(qiáng)電與弱電分開(kāi),實(shí)現(xiàn)前后級(jí)電路的電氣隔離,控制熱風(fēng)機(jī)的工作電路如圖6所示(控制通風(fēng)機(jī)的電路與此相同)。當(dāng)溫室內(nèi)溫度超過(guò)設(shè)定的溫度上限時(shí),單片機(jī)1腳輸出低電平信號(hào),經(jīng)過(guò)驅(qū)動(dòng)門7407驅(qū)動(dòng)光耦合器MOC3061內(nèi)部光電二極管發(fā)光,在其輸出端4腳與6腳之間得到輸出電壓,觸發(fā)雙向可控硅KS導(dǎo)通,使電加熱熱風(fēng)機(jī)或控制燃煤熱風(fēng)機(jī)、通風(fēng)機(jī)的交流接觸器獲得220 V/380 V的工作電壓。當(dāng)直接控制熱風(fēng)機(jī)時(shí)因其功率較大,發(fā)雙向可控硅KS需要選用大功率電流器件,也可以光耦合器后接固態(tài)繼電器實(shí)現(xiàn)對(duì)熱風(fēng)機(jī)的直接控制[3]。
2.7光報(bào)警模塊
采用紅、黃、綠3種燈,當(dāng)溫度低于下限值時(shí)黃燈亮,當(dāng)溫度高于上限值時(shí)紅燈亮,當(dāng)溫度在正常區(qū)間時(shí)綠燈亮。
3軟件設(shè)計(jì)
在此次的軟件設(shè)計(jì)中,以C語(yǔ)言為編程語(yǔ)言,基于Keil 5 為平臺(tái)的程序開(kāi)發(fā)。在溫度的控制部分,采用PID算法可以達(dá)到溫度的自我修正,使溫度趨于平穩(wěn),通過(guò)對(duì)實(shí)際系統(tǒng)工作環(huán)境中的各種干擾進(jìn)行分析補(bǔ)償,以達(dá)到溫度自動(dòng)控制的目的。
3.1PID算法控制
PID算法原理如圖7所示。PID算法的公式如下:
U(k)=Kp{e(k)+[ T*kn=0e(n)]/Ti+Td*[e(k)-e(k-1)]/T }
式中,U(k)為輸出變量,e(k)為第k次偏差,積分部分為T*kn=0e(n),微分部分為[e(k)-e(k-1)]/T,Kp為比例系數(shù),結(jié)合此次控制特點(diǎn),溫度是要控制的變量,e(k)為第k次測(cè)得的溫度偏差,通過(guò)改變Kp 、Td/T 與T/Ti值來(lái)改變達(dá)到預(yù)設(shè)值的時(shí)間、控制過(guò)程的速度與溫度的靜量差。
部分程序如下:
int Incremental_PI (int Encoder,int Target)
{
float Kp=20,Ki=30;
static int Bias,Pwm,Last_bias;
Bias=Encoder-Target; //計(jì)算偏差
Pwm+=Kp*(Bias-Last_bias)+Ki*Bias; //增量式PI控制器
Last_bias=Bias; //保存上一次偏差
return Pwm; //增量輸出
}
3.2主程序設(shè)計(jì)
主程序流程如圖8所示。主程序的開(kāi)始是對(duì)變量進(jìn)行賦值,端口定義,接下來(lái)進(jìn)行LCD屏的初始化和DS18B20的初始化,顯示開(kāi)機(jī)的信息最后清屏進(jìn)入主循環(huán)(圖9)。在主循環(huán)中進(jìn)行溫度值上下限的設(shè)定,設(shè)定好后對(duì)DS18B20溫度值進(jìn)行讀取,對(duì)收集的溫度進(jìn)行處理并轉(zhuǎn)化為十進(jìn)制,再把轉(zhuǎn)化的溫度值顯示出來(lái),接下來(lái)對(duì)采集的溫度進(jìn)行比對(duì),觀察其是否在正常范圍內(nèi)。當(dāng)溫度值在正常范圍內(nèi)時(shí),綠燈亮;若低于下限值,程序啟動(dòng)黃燈,使黃燈點(diǎn)亮,同時(shí)啟動(dòng)電加熱熱風(fēng)機(jī)或燃煤熱風(fēng)機(jī)進(jìn)行加熱;當(dāng)高于上限值時(shí),程序啟動(dòng)紅燈,使紅燈點(diǎn)亮,同時(shí)啟動(dòng)軸流通風(fēng)機(jī)進(jìn)行適當(dāng)降溫。
3.3溫度上下限設(shè)置程序
溫度設(shè)置流程如圖10所示。用k1、k2、k3、k4按鍵對(duì)上限溫度值進(jìn)行設(shè)置,k1按下時(shí)進(jìn)入上限值設(shè)置程序,此時(shí)當(dāng)k2鍵按下時(shí)上限值加0.1 ℃,當(dāng)k3鍵按下時(shí)上限值減0.1 ℃,當(dāng)k4鍵按下時(shí)上限值設(shè)置結(jié)束并更新上限值;用k5、k6、k7、k8按鍵對(duì)下限溫度值進(jìn)行設(shè)置,k5按下時(shí)進(jìn)入上限值設(shè)置程序,此時(shí)當(dāng)k6鍵按下時(shí)上限值加0.1 ℃,當(dāng)k7鍵按下時(shí)上限值減0.1 ℃,當(dāng)k8鍵按下時(shí)上限值設(shè)置結(jié)束并更新上限值。
3.4溫度讀取程序首先對(duì)DS18B20進(jìn)行初始化,發(fā)送跳過(guò)ROM命令,發(fā)送溫度轉(zhuǎn)換命令,讓DS18B20對(duì)外部溫度進(jìn)行采集,然后再對(duì)DS18B20進(jìn)行初始化,發(fā)送跳過(guò)ROM命
4結(jié)語(yǔ)
在硬件設(shè)計(jì)時(shí),結(jié)合生菜溫度控制的特點(diǎn),選用高級(jí)單片機(jī)STM32F103zet6為主控制器,其功能強(qiáng)大,可以同時(shí)掛載數(shù)十個(gè)溫度傳感器,能夠擴(kuò)大溫度的測(cè)量范圍,內(nèi)部的延
時(shí)相當(dāng)準(zhǔn)確,極大提高了設(shè)計(jì)的速度與準(zhǔn)確性;在軟件設(shè)計(jì)時(shí),以keil5為編程軟件,選用C語(yǔ)言為編程語(yǔ)言,增加了程序的可移植性,為后期的二次開(kāi)發(fā)提供了便利。該系統(tǒng)采用PID算法作為溫度控制的核心算法,它是一種帶反饋的控制系統(tǒng),可以使溫度的控制更加快速、平穩(wěn)與準(zhǔn)確。從整體的設(shè)計(jì)特點(diǎn)來(lái)看,硬件設(shè)計(jì)簡(jiǎn)單明了,盡量避免使用過(guò)多的輔助硬件,降低了設(shè)計(jì)的復(fù)雜程度,為后期的維修也帶來(lái)了極大的便利,軟件設(shè)計(jì)上采用PID算法提高了系統(tǒng)的抗干擾能力。
參考文獻(xiàn)
[1]
張玉峰.基于單片機(jī)的蔬菜大棚溫度控制系統(tǒng)設(shè)計(jì)[J].農(nóng)機(jī)化研究,2010,32(3):150-153.
[2] 江紹春,包君.基于單片機(jī)的蔬菜大棚溫度控制系統(tǒng)研究設(shè)計(jì)[J].農(nóng)機(jī)化研究,2012,34(9):150-153.
[3] 李振東.蔬菜溫室大棚溫度控制系統(tǒng)[D].青島:中國(guó)海洋大學(xué),2010:1-57.
[4] 梁萬(wàn)用,王凱.蔬菜大棚溫濕度智能控制系統(tǒng)設(shè)計(jì)[J].安徽農(nóng)業(yè)科學(xué),2009,35(19):9138-9139.
[5] 黎運(yùn)宇,孔德榮.基于單片機(jī) AT89S52 的蔬菜塑料大棚恒溫控制系統(tǒng)[J].廣西民族師范學(xué)院學(xué)報(bào),2016,33(3):17-19.
[6] 貝克.CMOS集成電路設(shè)計(jì)手冊(cè)[M].朱萬(wàn)經(jīng),張徐亮,張雅麗,譯.北京:人民郵電出版社,2014.
[7] 金鳳蓮.模擬電子技術(shù)基礎(chǔ)實(shí)驗(yàn)及課程設(shè)計(jì)[M].北京:清華大學(xué)出版社,2009.
[8] 馬駿.蔬菜大棚溫度電控系統(tǒng)的模糊控制研究[J].中國(guó)農(nóng)機(jī)化學(xué)報(bào),2015,36(1):128-131.
[9] 段乃俠.蔬菜溫室大棚溫度控制系統(tǒng)的設(shè)計(jì)[J].機(jī)械設(shè)計(jì)與制造工程,2015,44(12):52-55.