溫度和濕度是兩個基本的環(huán)境參數(shù)。在我們的生活中,我們要時刻關(guān)心環(huán)境的變化,只有很好的把握好環(huán)境的差異變化,我們才能更好的生存與發(fā)展。比如說在一些養(yǎng)殖廠,牲畜的成長,和溫濕度是離不開的,它們只有在適宜的環(huán)境下,在適宜的溫度和濕度下,才能成長的更快,我們才能獲取更大的效益。準(zhǔn)確測量溫濕度在生物藥學(xué)、食品加工、造紙業(yè)等行業(yè)更是至關(guān)重要?傊,無論在日常生活中還是在工業(yè)、農(nóng)業(yè)方面都離不開對周圍環(huán)境溫濕度的測量。因此,研究溫濕度的控制和測量具有非常重要的意義。
由于傳感器能將各種物理量、化學(xué)量和生物量等信號轉(zhuǎn)變?yōu)殡娦盘,使得人們可以利用計算機(jī)實現(xiàn)自動測量、信息處理和自動控制。傳感器主要用于測量和控制系統(tǒng),它的性能好壞直接影響系統(tǒng)的性能。因此我們必須掌握各種傳感器的結(jié)構(gòu)、原理及其性能指標(biāo),通過對傳感器實例的分析了解,才能將傳感器和信息通信和信息處理結(jié)合起來,適應(yīng)傳感器的生產(chǎn)、研制和開發(fā)及應(yīng)用。溫濕度傳感器發(fā)展速度快,應(yīng)用領(lǐng)域也很廣泛,并且還有很大發(fā)展?jié)摿Γ瑸榱颂岣邔鞲衅鞯恼J(rèn)識和了解,尤其是對溫濕度傳感器的深入研究,基于實時、準(zhǔn)確和廣泛的原則進(jìn)行了設(shè)計。
本文設(shè)計的是基于單片機(jī)AT89C51的溫濕度檢測和控制系統(tǒng),主要以廣泛應(yīng)用的DHT11溫濕度傳感器作為溫度和濕度數(shù)據(jù)的采集,該傳感器具有測量精度高、硬件電路簡單、數(shù)據(jù)傳輸方便,可測試不同環(huán)境溫濕度的特點。另外和控制電路相連,可以進(jìn)行閾值的控制,使溫度和濕度參數(shù)在預(yù)先設(shè)定的范圍內(nèi),不需要人的直接參與。
空氣中的水蒸汽吸附在感濕材料上后,元件的阻抗、介質(zhì)常數(shù)發(fā)生很大的變化,從而制成濕敏元件。近年來,國內(nèi)外在濕度傳感器研發(fā)領(lǐng)域取得了較大的發(fā)展。濕敏傳感器正從簡單的濕敏元件向集成化、智能化、多參數(shù)檢測的方向迅速發(fā)展。國內(nèi)外各廠家的濕度傳感器產(chǎn)品水平不一,質(zhì)量價格都相差較大,用戶如何選擇性能價格比最優(yōu)的理想產(chǎn)品確有一定難度,需要在這方面作深入的了解。現(xiàn)在國內(nèi)市場上出現(xiàn)了不少國內(nèi)外濕度傳感器產(chǎn)品,電容式高分子聚合物,氯化鋰和金屬氧化物。
測量溫濕度的關(guān)鍵是溫濕度傳感器。過去測量溫度與濕度是分開的。隨著技術(shù)的進(jìn)步和人們生活的需要出現(xiàn)了溫濕度共測的傳感器。溫度傳感器的發(fā)展經(jīng)歷了3個階段:傳統(tǒng)的分立式溫度傳感器、模擬集成溫度傳感器、智能集成溫度傳感器。目前,國際上新型溫度傳感器正從模擬式向數(shù)字式、從集成化向智能化、網(wǎng)絡(luò)化的方向發(fā)展。溫濕度傳感器也是經(jīng)歷了這樣一個階段逐漸走向數(shù)字智能化。
溫濕度檢測系統(tǒng)在國內(nèi)各行業(yè)的發(fā)展水平仍然不高,雖然應(yīng)用已經(jīng)十分廣泛,但從國內(nèi)生產(chǎn)的溫濕度檢測器來講發(fā)展水平仍然不高,同日本、美國、德國等先進(jìn)國家相比,仍然有著較大的差距。
進(jìn)入21世紀(jì)后,特別在我國加入WTO后,國內(nèi)產(chǎn)品面臨巨大挑戰(zhàn)。各行業(yè)特別是傳統(tǒng)產(chǎn)業(yè)都急切需要應(yīng)用電子技術(shù)、自動控制技術(shù)進(jìn)行改造和提高。例如紡織業(yè),溫濕度是影響紡織品質(zhì)量的重要因素,但紡織企業(yè)對溫濕度的控制手段仍很粗糙,十分落后,絕大多數(shù)仍然在使用干濕球溫度計,采用人工觀測,人工調(diào)節(jié)閥門、風(fēng)機(jī)的方法,其控制效果可想而知。制藥行業(yè)里也基本如此。在食品行業(yè)里,則基本上憑經(jīng)驗,很少有人使用溫濕度傳感器。
1.3 設(shè)計的市場現(xiàn)狀分析
縱觀市場,溫濕度檢測技術(shù)已經(jīng)比較成熟,已有的各種溫濕度檢測產(chǎn)品,五花八門,如A2000家用溫濕度報警表、YD-808A工業(yè)用溫濕度顯示器等產(chǎn)品。 從功能上分析這些產(chǎn)品可以看出,一個比較完整的環(huán)境溫濕度檢測系統(tǒng)應(yīng)該具備以下主要的三個功能:
(1)實時檢測出環(huán)境中的溫度和濕度參數(shù);
(2)檢測的參數(shù)值顯示在顯示設(shè)備上(如數(shù)碼管,液晶顯示器等);
(3)根據(jù)環(huán)境要求,設(shè)定溫度濕度報警的上下限值,并實時報警。
因此,本設(shè)計也應(yīng)該具備這些功能,并且對每一個部分進(jìn)行優(yōu)化設(shè)計,也可以擴(kuò)展系統(tǒng)功能。
除了功能上的分析之外,再看這些產(chǎn)品還存在一個問題就是價格太高,不符合普通消費者的消費水平,如A2000家用溫濕度報警表,售價300元左右。
綜上所述,本設(shè)計設(shè)計出的環(huán)境溫濕度檢測系統(tǒng),除了具備市場上已有產(chǎn)品的功能之外,還應(yīng)該盡量降低制作價格。
1.4 溫濕度檢測技術(shù)和存在的問題
傳統(tǒng)的溫度和濕度檢測系統(tǒng)主要有以下幾種:
(1)水汽壓(e):是水汽在大氣總壓力中的分壓力。它表示了空氣中水汽的絕對含量的大小,以毫巴為單位;
(2)相對濕度(rh):濕空氣中實際水汽壓e與同溫度下飽和水汽壓E的百分比,相對濕度的大小能直接表示空氣距離飽和的相對程度?諝馔耆稍飼r,相對濕度為零。相對濕度越小,表示當(dāng)時空氣越干燥。當(dāng)相對濕度接近于100%時,表示空氣很潮濕,越接近于飽和;
(3)露點(或霜點)溫度:指空氣在水汽含量和氣壓都不改變的條件下,冷卻到飽和時的溫度;
(4)干濕球溫度表:用一對并列裝置的、形狀完全相同的溫度表,一支測氣溫,稱干球溫度表,另一支包有保持浸透蒸餾水的脫脂紗布,稱濕球溫度表;
(5)發(fā)濕度表(計):利用脫脂人發(fā)(或牛的腸衣)具有空氣潮濕時伸長,干燥時縮短的特性,制成毛發(fā)濕度表或濕度自記儀器,它的測濕精度較差,毛發(fā)濕度表通常在氣溫低于-10℃時使用;
(6)電阻式濕度片:利用吸濕膜片隨濕度變化改變其電阻值的原理,常用的有碳膜濕敏電阻和氯化鋰濕度片兩種。前者用高分子聚合物和導(dǎo)電材料碳黑,加上粘合劑配成一定比例的膠狀液體,涂覆到基片上組成的電阻片;后者是在基片上涂上一層氯化鋰酒精溶液,當(dāng)空氣濕度變化時,氯化鋰溶液濃度隨之改變從而也改變了測濕膜片的電阻;
(7)薄膜濕敏電容:是以高分子聚合物為介質(zhì)的電容器,因吸收(或釋放)水汽而改變電容值。它制作精巧,性能優(yōu)良,常用在探空儀和遙測中。
隨著智能檢測系統(tǒng)的飛速發(fā)展,基于單片機(jī)的溫濕度檢測系統(tǒng)將多傳感器系統(tǒng)結(jié)合在一起。如何把多傳感器集中于一個檢測控制系統(tǒng),綜合利用來自多傳感器的信息,獲得對被測對象的可靠了解和解釋,以利于系統(tǒng)做出正確的響應(yīng)、決策和控制,是智能檢測控制系統(tǒng)中需要解決的首要問題。在溫濕度要求嚴(yán)格的場合,利用多傳感技術(shù)可以提高系統(tǒng)的可靠性和精度,亦可以提高系統(tǒng)的時間空間的覆蓋范圍。
1.5 設(shè)計內(nèi)容和預(yù)期結(jié)果
1.5.1 主要完成內(nèi)容
本文主要完成的內(nèi)容有:
(1) 確定系統(tǒng)的總體功能設(shè)計方案;
(2) 完成總體設(shè)計方案原理圖的繪制;
(3) 完成硬件電路的焊接及調(diào)試;
(4) 完成軟件系統(tǒng)的設(shè)計及編譯。
1.5.2 本文的設(shè)計思路
本文的設(shè)計目的是要對空氣中的溫度和濕度進(jìn)行檢測。系統(tǒng)的數(shù)據(jù)采集部分是溫濕度傳感器完成的,溫濕度傳感器將采集到的數(shù)據(jù)送入AT89C51單片機(jī)中,然后通過液晶顯示器LCD1602進(jìn)行顯示,單片機(jī)將預(yù)設(shè)的參考值與測量值進(jìn)行比較,根據(jù)比較結(jié)果作出判斷,當(dāng)溫濕度值超過允許的誤差范圍,系統(tǒng)將發(fā)出報警聲音。
(1)系統(tǒng)硬件設(shè)計
通過比較,選用AT89C51單片機(jī)來構(gòu)造本系統(tǒng)。在設(shè)計過程當(dāng)中,單片機(jī)的P0口用于液晶LCD1602顯示, P3.4、P3.5、P3.6、P3.7為獨立式鍵盤接口,P1.0口接溫濕度傳感器DHT11,P2.4口連接蜂鳴報警器。
(2)系統(tǒng)模塊設(shè)計
測控模塊:檢測所處環(huán)境的溫濕度數(shù)據(jù)。顯示模塊:溫度和濕度采用液晶顯示,分兩行顯示使測量結(jié)果更直觀,便于管理人員做出決策。報警模塊:系統(tǒng)采用三極管驅(qū)動的蜂鳴音報警,當(dāng)溫濕度超過系統(tǒng)所設(shè)置的閾值時,蜂鳴器就會發(fā)生報警。鍵盤模塊;鍵盤采用的是獨立式鍵盤,可分別設(shè)置溫度和濕度的上限值。
1.5.3 預(yù)期結(jié)果
根據(jù)設(shè)計方案及思路,預(yù)測出現(xiàn)的設(shè)計結(jié)果,當(dāng)系統(tǒng)完好的設(shè)計完后,連接所有的硬件設(shè)備,運行相應(yīng)的軟件設(shè)備。
軟硬件連接完好,電路完善的情況下,肉眼能看到的是經(jīng)過一系列的軟硬件編譯過的在LCD液晶顯示器上顯示的數(shù)字,當(dāng)液晶顯示器顯示的溫濕度值超過了預(yù)定的值時系統(tǒng)發(fā)出報警提示,當(dāng)溫濕度值沒有超過預(yù)定的溫濕度范圍,測系統(tǒng)接收下一次的溫濕度采集值。
2 溫濕度測量系統(tǒng)方案設(shè)計
2.1系統(tǒng)總體設(shè)計
系統(tǒng)要完成的設(shè)計功能如下:
(1)實現(xiàn)對環(huán)境溫濕度參數(shù)的實時采集,由單片機(jī)對數(shù)據(jù)進(jìn)行循環(huán)檢測、數(shù)據(jù)處理、顯示,實現(xiàn)溫濕度的連續(xù)測量;
(2)實現(xiàn)超限數(shù)據(jù)的及時報警;
(3)現(xiàn)場檢測設(shè)備應(yīng)具有較高的靈敏度、可靠性、抗干擾能力;
(4)軟件設(shè)計既要具有完成數(shù)據(jù)采集、處理的功能,其軟件編程應(yīng)具有功能強大、界面友好、便于操作和執(zhí)行速度快。
設(shè)計要達(dá)到的技術(shù)指標(biāo):
(1)測量范圍: 濕度20-90%RH, 溫度0-50℃;
(2)測量精度: 濕度±5%RH, 溫度±2℃;
(3)分 辨 率: 濕度1%RH, 溫度1℃。
(4)測量數(shù)據(jù)無線上傳到手機(jī)進(jìn)行顯示。
該設(shè)計的總體方案是數(shù)據(jù)采集用的是DHT11溫濕度傳感器,它是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器,傳感器包括一個電阻式感濕元件和一個NTC測溫元件,具有品質(zhì)卓越、超快響應(yīng)、抗干擾能力強、性價比極高等特點。單片機(jī)采用AT89C51,液晶顯示采用LCD1602,報警采用蜂鳴器,鍵盤使用獨立鍵盤,外加復(fù)位電路和時鐘電路,測量數(shù)據(jù)無線上傳串口WIFI模塊。
溫度濕度信號通過溫濕度傳感器進(jìn)行信號的采集并轉(zhuǎn)換成數(shù)字信號,再運用單片機(jī)AT89C51進(jìn)行數(shù)據(jù)的分析和處理,并在LCD1602上顯示當(dāng)前溫濕度。外加復(fù)位電路、時鐘電路、鍵盤電路和報警電路。系統(tǒng)程序主要包括數(shù)據(jù)采集程序、溫溫度閾值設(shè)置程序、報警程序及顯示程序等。本設(shè)計可以通過鍵盤手動設(shè)置溫度濕度的上、下限值,該設(shè)定值為系統(tǒng)閾值。溫濕度傳感器將檢測到的值傳輸給單片機(jī),通過分析比較,當(dāng)檢測數(shù)值超出閾值時,驅(qū)動蜂鳴器報警,以便管理人員及時切斷電源,實現(xiàn)系統(tǒng)的保護(hù)。
2.2 系統(tǒng)設(shè)計原則
要求單片機(jī)系統(tǒng)應(yīng)具有可靠性高、操作維護(hù)方便、性價比高等特點。設(shè)計原則有以下幾個:
(1)可靠性高 可靠性是單片機(jī)系統(tǒng)應(yīng)用的前提,在系統(tǒng)設(shè)計的每一個環(huán)節(jié),都應(yīng)該將可靠性作為首要的設(shè)計準(zhǔn)則。提高系統(tǒng)的可靠性通常從以下幾個方面考慮:使用可靠性高的元器件;設(shè)計電路板時布線和接地要合理;對供電電源采用抗干擾措施;輸入輸出通道抗干擾措施;進(jìn)行軟硬件濾波等。
溫度、濕度設(shè)置參數(shù)斷電保存模塊
電路選擇了AT24C01電路作為溫度、濕度參數(shù)的儲存電路。AT24C01是美國Atmel公司的低功耗CMOS型E2PROM,內(nèi)含256×8位存儲空間,具有工作電壓寬(2.5~5.5 V)、擦寫次數(shù)多(大于10000次)、寫入速度快(小于10 ms)、抗干擾能力強、數(shù)據(jù)不易丟失、體積小等特點。而且他是采用了I2C總線式進(jìn)行數(shù)據(jù)讀寫的串行器件,占用很少的資源和I/O線,并且支持在線編程,進(jìn)行數(shù)據(jù)實時的存取十分方便。AT24C01中帶有的片內(nèi)地址寄存器。每寫入或讀出一個數(shù)據(jù)字節(jié)后,該地址寄存器自動加1,以實現(xiàn)對下一個存儲單元的讀寫。所有字節(jié)均以單一操作方式讀取。為降低總的寫入時間,一次操作可寫入多達(dá)8個字節(jié)的數(shù)據(jù)。I2C總線是一種用于IC器件之間連接的二線制總線。他通過SDA(串行數(shù)據(jù)線)及SCL(串行時鐘線)兩根線在連到總線上的器件之間傳送信息,并根據(jù)地址識別每個器件。 AT24C01正是運用了I2C規(guī)程,使用主/從機(jī)雙向通信,主機(jī)(通常為單片機(jī))和從機(jī)(AT24C01)均可工作于接收器和發(fā)送器狀態(tài)。主機(jī)產(chǎn)生串行時鐘信號(通過SCL引腳)并發(fā)出控制字,控制總線的傳送方向,并產(chǎn)生開始和停止的條件。無論是主機(jī)還是從機(jī),接收到一個字節(jié)后必須發(fā)出一個確認(rèn)信號ACK。AT24C01的控制字由8位二進(jìn)制數(shù)構(gòu)成,在開始信號發(fā)出以后,主機(jī)便會發(fā)出控制字,以選擇從機(jī)并控制總線傳送的方向。
管腳描述:
● SCK 為串行時鐘:
串行時鐘輸入管腳用于產(chǎn)生器件所有數(shù)據(jù)發(fā)送或接收的時鐘這是一個輸入管腳。
● SDA 為串行數(shù)據(jù)/地址:
雙向串行數(shù)據(jù)/地址管腳用于器件所有數(shù)據(jù)的發(fā)送或接收SDL,是一個開漏輸出管腳可與其它開漏輸出或集電極開路輸出進(jìn)行線。
● A0、A1、A2 為器件地址輸入端:
當(dāng)使用24C02 時最大可級聯(lián)8個器件,如果只有一個24C01被總線尋址,這三個地址輸入腳A0、A1、A2可懸空或連接到Vss。
● WP為寫保護(hù):
如果WP 管腳連接到Vcc 所有的內(nèi)容都被寫保護(hù)只能讀當(dāng)WP, 管腳連接到Vss 或懸空,允許器件進(jìn)行正常的讀/寫操作。管腳圖如圖3-3所示。

特點:
內(nèi)建128x8存儲序列
2線制串行接口
雙向數(shù)據(jù)傳送協(xié)議
100kHz(1.8V,2.5V,2.7V) 和400kHz(5V)兼容
寫同步時鐘(最大10ms)
高可靠性
-極限:1M寫時鐘周期
-數(shù)據(jù)保存:100年
AT24C01提供電可擦除的串行1024位存儲或可編程只讀存儲器(EEPROM)128字(8位/字)。
芯片在低壓的工業(yè)與商業(yè)應(yīng)用中進(jìn)行了最優(yōu)化。AT24C01的封裝為8腳PDIP、8腳JEDEC
SOIC、8腳TSSOP,通過2線制串行接口進(jìn)行數(shù)據(jù)傳輸。
設(shè)備操作: SDA管腳通常外部要拉高。SDA管腳上的數(shù)據(jù)只能在SCL低期間改變。數(shù)據(jù)在SCL高期間改變定義為一個開始或停止信號。
開始狀態(tài):在任何操作之前必須有一個開始信號----在SCL為高時SDA上產(chǎn)生一個下降沿。
停止?fàn)顟B(tài): SCL為高時SDA產(chǎn)生一個上升沿是停止信號,停止信號后將停止所有通信。
在一個讀的序列之后,停止信號將讓EEPROM進(jìn)入備用電源模式。
3.8報警模塊及溫度濕度控制模塊
本系統(tǒng)采用蜂鳴器作為報警裝置,蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電壓供電,廣泛應(yīng)用于計算機(jī)、打印機(jī)、復(fù)印機(jī)、報警器、電子玩具、汽車電子設(shè)備、電話機(jī)、定時器等電子產(chǎn)品中作發(fā)聲器件。 蜂鳴器主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器在電路中用字母“H”或“HA”(舊標(biāo)準(zhǔn)用“FM”、“LB”、“JD”等)表示。
3.8.1蜂鳴器報警原理及溫度濕度控制模塊原理
本設(shè)計采用蜂鳴音報警電路,其工作過程就是把傳感器采集的數(shù)據(jù)通過單片機(jī)處理后,與該參數(shù)上限給定值進(jìn)行比較,如果高于上限值則進(jìn)行報警。同時當(dāng)溫度,濕度低于設(shè)計值時,自動啟動加溫電、加濕設(shè)置進(jìn)行加溫、加濕工作。
蜂鳴器發(fā)聲原理是電流通過電磁線圈,使電磁線圈產(chǎn)生磁場來驅(qū)動振動膜發(fā)聲的,因此需要一定的電流才能驅(qū)動它,單片機(jī)I/O口引腳輸出的電流較小,單片機(jī)輸出的TTL電平基本上驅(qū)動不了蜂鳴器,因此需要增加一個電流放大的電路。所以才用一個三極管來放大驅(qū)動蜂鳴器。在本系統(tǒng)中峰鳴器報警接口電路的設(shè)計采用壓電式蜂鳴器,通過AT89C51的1根I/O口線經(jīng)驅(qū)動器驅(qū)動蜂鳴音發(fā)聲。壓電式蜂鳴器約需10mA的驅(qū)動電流,可以用一個晶體三極管驅(qū)動,P2.4接晶體管基極輸入端。當(dāng)P2.4輸出高電平“1”時,晶體管導(dǎo)通,壓電蜂鳴器兩端獲得約+5V電壓而鳴叫;當(dāng)P2.4輸出低電平“0”時,三極管截止,蜂鳴器停止發(fā)聲。
3.8.2 報警電路接口
聲光報警系統(tǒng)由一個電阻R2,一個三極管BG1和一個蜂鳴器BY以及發(fā)光二極管D5與限流電阻R10組成,三極管用來放大電路中的電流,來驅(qū)動蜂鳴器發(fā)聲,在發(fā)聲的同時發(fā)光二極管D5閃亮。報警系統(tǒng)連接單片機(jī)的I/O口P2.3,當(dāng)單片機(jī)檢測到溫度或者濕度超出所設(shè)置的閾值時,就會給P2.3置低電平0,這時三極管導(dǎo)通,蜂鳴器報警,如果沒有超出閾值,P2.3置高電平1,三極管截止。R4與D1組成溫度過低的報警指示電路及啟動加溫控制指示電路,溫度低于溫度設(shè)置下限值時,D1點亮,同時P1.7腳由高電平變?yōu)榈碗娖,?jīng)R9、BG3驅(qū)動繼電器工作,電機(jī)M2轉(zhuǎn)動(用來模擬加熱電器及加熱通風(fēng)機(jī)工作),當(dāng)溫度高于下限值時,D1O熄,同時M2停止工作。R5與D2組成溫度高報警電路,溫度高于上限值時,D2點亮。R6與D3組成濕度過低的報警指示電路及啟動加濕水泵控制指示電路,R7、D4組成濕度高的報警指示電路,當(dāng)濕度低于設(shè)置下限值時,D3點亮,同時P1.6腳由高電平變?yōu)榈碗娖剑?jīng)R8、BG2驅(qū)動繼電器工作,電機(jī)M1轉(zhuǎn)動(用來模擬加濕水泵工作),當(dāng)濕度高于下溫度下限值時,D3熄滅,這時水泵繼續(xù)工作,當(dāng)濕度高于濕度設(shè)置上限值時,D4點亮,同時停止加濕水泵工作。報警模塊及加濕模塊電路圖如圖3.12所示。

圖3.12報警電路及加濕加溫電路模塊
3.9供電電路
整個濕度溫度測量裝置的供電設(shè)計采用5伏直流電源進(jìn)行供電,圖中C1,C2作為電源濾波電容。供電電源可以直接選用目前市面上比較多的手機(jī)充電電源作為供電電源,這種電源工作可靠,安全適用,成本低。
3.9小結(jié)
本系統(tǒng)設(shè)計主要有主控模塊、顯示模塊、溫濕度采集模塊、WIFI串口通信模塊、鍵盤模塊、報警模塊、復(fù)位電路和時鐘電路八大模塊。其中主控模塊AT89C51的晶振電路采用12MHz的無源晶振,微調(diào)電容大小取22pF。顯示模塊選用LCD1602字符型液晶模塊,是目前工控系統(tǒng)中使用最為廣泛的液晶屏之一。溫濕度采集模塊所采用的DHT11數(shù)字溫濕度傳感器是一款含有已校準(zhǔn)數(shù)字信號輸出的溫濕度復(fù)合傳感器,它應(yīng)用專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有極高的可靠性與穩(wěn)定性;其單線制串行接口,使系統(tǒng)集成變得簡易快捷。報警模塊采用蜂鳴器,采用PNP型晶體管9012放大單片機(jī)I/O口的電流。系統(tǒng)的輸入模塊采用獨立式鍵盤,操作簡單,溫濕度檢測方便準(zhǔn)確。該設(shè)計最終要實現(xiàn)的目標(biāo)是,溫濕度采集數(shù)據(jù)并傳輸?shù)絾纹瑱C(jī),單片機(jī)經(jīng)過數(shù)據(jù)處理在發(fā)送到液晶顯示器顯示,同時單片機(jī)會將采集到的數(shù)據(jù)同系統(tǒng)設(shè)置溫度、濕度值進(jìn)行比較,如果超過定值,報警電路就會發(fā)出報警聲光信號,如果溫度、濕度在設(shè)置范圍內(nèi),單片機(jī)就會繼續(xù)采集溫濕度數(shù)據(jù)。
鍵盤一共有四個鍵,開關(guān)K1、K2、K3、K4分別接單片機(jī)的I/O口P3.4、P3.5、P3.6 、P3.7。K1是模式選擇鍵,用來選擇溫度、濕度上下限值。K2和K3分別為設(shè)置溫度、濕度上下限值, K4為保存鍵,設(shè)置完成按下該鍵后儲存設(shè)置參數(shù)。顯示器一共是兩行顯示,第一行顯示的是溫度,第二行顯示的是濕度。
在完成了系統(tǒng)硬件的設(shè)計后,再設(shè)計系統(tǒng)軟件,首先要建立程序框架的流程圖,對整個設(shè)計劃分模塊,逐個模塊實現(xiàn)其功能,最終把各個子模塊合理的連接起來,構(gòu)成總的程序,這樣能快速準(zhǔn)備的進(jìn)行編程。首先建立主程序框架流程圖,弄明白整個系統(tǒng)程序設(shè)計,其次再分別設(shè)計顯示模塊、傳感器模塊和鍵盤模塊的程序,最后在進(jìn)行整合,形成一個完整的程序。
本系統(tǒng)采用C語言編程。C語言是一種計算機(jī)程序設(shè)計語言。它既具有高級語言的特點,又具有匯編語言的特點。
C語言編程的優(yōu)點有:
(1)簡潔緊湊、靈活方便。C語言一共只有32個關(guān)鍵字,9種控制語句,程序書寫形式自由,區(qū)分大小寫。把高級語言的基本結(jié)構(gòu)和語句與低級語言的實用性結(jié)合起來。C 語言可以像匯編語言一樣對位、字節(jié)和地址進(jìn)行操作,而這三者是計算機(jī)最基本的工作單元。
(2)運算符豐富。C語言的運算符包含的范圍很廣泛,共有34種運算符。C語言把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使C語言的運算類型極其豐富,表達(dá)式類型多樣化。靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。
(3)數(shù)據(jù)類型豐富。C語言的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)的運算。并引入了指針概念,使程序效率更高。另外C語言具有強大的圖形功能,支持多種顯示器和驅(qū)動器。且計算功能、邏輯判斷功能強大。
(4)語法限制不太嚴(yán)格,程序設(shè)計自由度大。雖然C語言也是強類型語言,但它的語法比較靈活,允許程序編寫者有較大的自由度。
4.1 主程序模塊程序設(shè)計
本系統(tǒng)的整個程序流程是首先上電,系統(tǒng)各部分進(jìn)行初始化,單片機(jī)初始化,液晶顯示器初始化等。初始化完成后進(jìn)行鍵盤掃描,然后再進(jìn)行延時一段時間,供傳感器采集數(shù)據(jù),延時完成后就進(jìn)行數(shù)據(jù)的采集并傳輸?shù)絾纹瑱C(jī),單片機(jī)處理之后傳輸?shù)揭壕э@示器,液晶顯示器顯示溫濕度值。并且判斷溫度和濕度是否超出閾值,如果沒有超過,就繼續(xù)執(zhí)行數(shù)據(jù)采集程序,如果有一個值超出閾值,則啟動報警系統(tǒng),蜂鳴器發(fā)出聲音,溫濕度檢測結(jié)束。主程序流程圖如圖4.1所示。

液晶顯示模塊是一個慢顯示器件,在執(zhí)行每條指令之前要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,則此指令失效,要顯示字符時要先輸入顯示字符地址,告訴模塊在哪里顯示了字符。1602液晶顯示模塊可與單片機(jī)接口直接連接,無需再加驅(qū)動。
LCD1602的顯示數(shù)據(jù)過程是首先液晶初始化,初始化完成后執(zhí)行延時程序,等待數(shù)據(jù)的采集,延時完成后LCD會先寫入一些指令和顯示字符的地址,在這完成后單片機(jī)會向LCD發(fā)送數(shù)據(jù)即寫數(shù)據(jù),數(shù)據(jù)發(fā)送完LCD就會讀取寫入的地址并顯示出來,最后返回。軟件流程圖如圖4.2所示。
圖4.3 DHT11傳感器模塊的軟件流程圖
傳感器模塊負(fù)責(zé)溫濕度數(shù)據(jù)源的采集,首先數(shù)據(jù)口連接端P1.0輸出低電平,延時18ms之后P1.0輸出高電平,延時40ms之后,讀P1.0引腳是否為低電平,如果不是低電平就繼續(xù)讀,如果是低電平就執(zhí)行判斷從機(jī)80μs高電平是否結(jié)束,如果沒有結(jié)束就繼續(xù)判斷,如果結(jié)束就進(jìn)行單片機(jī)數(shù)據(jù)接收,將接收到的數(shù)據(jù)按十進(jìn)制數(shù)位存入指定的數(shù)組中,數(shù)據(jù)采集結(jié)束并保持?jǐn)?shù)據(jù)采集持續(xù)進(jìn)行。
4.4 鍵盤模塊設(shè)計
鍵盤模塊是用來設(shè)置系統(tǒng)閾值的,首先通過模式選擇鍵開閾值并選擇溫度和濕度的設(shè)置,加一鍵和減一鍵是對溫度和濕度的設(shè)置。第一次按模式鍵然后經(jīng)過延時可以開閾值和進(jìn)行濕度的設(shè)置,第二次按模式鍵并延時是溫度的設(shè)置,第三次按模式鍵是關(guān)閾值。
鍵盤模塊軟件流程圖如圖4.4所示。

圖4.4 鍵盤模塊軟件流程圖
4.5 小結(jié)
本系統(tǒng)的軟件設(shè)計采用了C語言編程,只需對溫度和濕度進(jìn)行相應(yīng)的采集處理后,即可讓液晶實時顯示當(dāng)前的溫度與濕度值。報警模塊只需接上單片機(jī)的I/O 口,并對其接口線進(jìn)行編程方可,當(dāng)溫度與濕度超過閾值時報警模塊就會報警。這樣就可以完成環(huán)境中溫濕度的檢測。
本設(shè)計在完成硬件電路設(shè)計并焊接好電路硬件的基礎(chǔ)上,通過串口模塊將軟件代碼下載至AT89C51單片機(jī)中完成系統(tǒng)集成。由于采用了AT89C51單片機(jī),性能可靠、電路簡單,系統(tǒng)中還可充分利用AT89C51中先進(jìn)的軟件硬件資源,便于軟件系統(tǒng)的升級,操作方便。
設(shè)計制作51單片機(jī)DHT11的溫濕度檢測系統(tǒng),程序設(shè)計及試工作是一項重要內(nèi)容,所設(shè)計的程序51單片機(jī)DHT11的溫濕度檢測系統(tǒng)程序只是在編譯環(huán)境下通過編譯,消除編程工作中產(chǎn)生的語法錯誤后,直接將程序?qū)懭雴纹瑱C(jī)中與硬件一起進(jìn)行聯(lián)調(diào),如果這時硬件設(shè)計制作是正確的還好說,只需要進(jìn)行軟件的調(diào)試修改,燒寫到硬件環(huán)境中驗證直到達(dá)到設(shè)計要求即可,但這個工作也是需要反復(fù)不停地修改程序并燒錄到硬件單片機(jī)中進(jìn)行調(diào)試,但如果說硬設(shè)計、制作及程序設(shè)計都存在問題,整個調(diào)試工作就顯得無從下手,給軟件調(diào)試、硬件故障排出帶來非常大的困難,增加不少工作量,甚至造成系統(tǒng)設(shè)計制作的失敗。有好的解決辦法嗎?回答是肯定的,就是程序仿真,編譯通過的程序,在Proteus環(huán)境下,按設(shè)計的硬件原理圖,把仿真圖畫好,調(diào)入程序在Proteus仿真環(huán)境下進(jìn)行程序的仿真,來驗證程序設(shè)計的正確性及各項功能是否達(dá)到設(shè)計要求,在仿真環(huán)境下完成程序的調(diào)試工作。通過仿真調(diào)試滿意后的程序,再燒寫到硬件環(huán)境下調(diào)試,這時,如果硬件工作正常,可以進(jìn)一步的驗證程序的功能及正確性,如果工作不正常,這時可排出軟件設(shè)計的問題,集中精力排出硬件設(shè)計、制作的問題,有針對性的排出,從而可提高設(shè)計制作過程中的效率,大大減輕制作工作量,使單片機(jī)DHT11的溫濕度檢測系統(tǒng)制作成功率可以得到100%的保證。下圖是本設(shè)計的仿真圖。

6 設(shè)計中遇到的問題及解決方法
6.1 硬件問題及解決方法
(1)LCD1602不顯示:
檢查LCD各個端口與單片機(jī)的連接是否接通,發(fā)現(xiàn)都通著,又檢查了LCD數(shù)據(jù)口連接順序與單片機(jī)的I/O口順序是否一致,最后發(fā)現(xiàn)LCD的數(shù)據(jù)口順序接反了,最后把LCD的D0-D7接單片機(jī)的I/O口P0.0-P0.7后,工作正常了。。
(2)蜂鳴器不響:
因為剛開始不知道老師給的三極管是啥型號的,自己就用萬用表測試了一下就焊接上了,結(jié)果不響,我就按照三極管的型號上網(wǎng)查了一下結(jié)果發(fā)現(xiàn)自己檢測錯了,自己的是PNP型的,三個管腳分別是字面對著自己ebc。然后卸下來重新焊上去蜂鳴器就響了。
(3)LCD1602顯示亂碼:
把程序下載到單片機(jī)上,液晶顯示的不是程序要顯示的內(nèi)容。我就用萬用表檢查8根數(shù)據(jù)線是否都接通,結(jié)果發(fā)現(xiàn)都是連通的。然后就考慮是不是數(shù)據(jù)線短路了,用萬用表分別測量8跟數(shù)據(jù)線有沒有短路的,結(jié)果發(fā)現(xiàn)有一根在焊接的時候不小心焊到旁邊的焊盤上了,導(dǎo)致數(shù)據(jù)線接到了電源線上,那根數(shù)據(jù)線就會一直顯示高電平,所以顯示就亂碼了。用烙鐵把連接的焊錫分開以后,重新上電發(fā)現(xiàn)液晶顯示正常了。
6.2 軟件所遇問題及解決方法
(1)鍵盤問題
按鍵沒有按照程序設(shè)計的工作,模式鍵沒有起作用,加減鍵也不規(guī)律的進(jìn)行加減。通過仔細(xì)檢查程序,通過檢查按鍵硬件電路發(fā)現(xiàn)按鍵電路都好著呢,然后再檢查程序,發(fā)現(xiàn)程序中按鍵按下之后沒有用延時程序,就給程序中各個按鍵后邊加了個延時程序,下載程序之后發(fā)現(xiàn)按鍵可以實現(xiàn)功能了。
(2)濕度顯示不穩(wěn)定
在數(shù)據(jù)采集完成以后,顯示在顯示器上,發(fā)現(xiàn)濕度顯示不穩(wěn)定,一直在跳動。剛開始以為是正常情況,可是最后發(fā)現(xiàn)跳動的特別厲害,跳動幅度也很大。最后想到可能是單片機(jī)一直在采集數(shù)據(jù)然后顯示數(shù)據(jù),中間沒有停歇才導(dǎo)致顯示不穩(wěn)定,就給數(shù)據(jù)采集前加了個延時程序,通過串口下載程序后,發(fā)現(xiàn)濕度顯示穩(wěn)定了。
隨著社會的發(fā)展,科技越來越越發(fā)達(dá),我們的生活也越來越智能化。溫濕度是我們生活環(huán)境中的兩個重要的參數(shù),在我們的生活中,我們要時刻關(guān)心環(huán)境的變化,只有很好的把握好環(huán)境的差異變化,我們才能更好的生存與發(fā)展。
本文設(shè)計的溫、濕度智能測控系統(tǒng)主要有以下幾個各方面:
(1)采用AT89C51單片機(jī)為控制核心;
(2)采用數(shù)字式溫度傳感器DHT11為溫、濕度數(shù)據(jù)采集器件,通過PC機(jī)作為人機(jī)接口,實現(xiàn)了數(shù)據(jù)采集與測控指令參數(shù)的設(shè)置;
(3)顯示部分采用已標(biāo)準(zhǔn)的1602液晶為顯示屏,具有顯示質(zhì)量高、體積小、功耗低等優(yōu)點。
本系統(tǒng)整體設(shè)計具有界面友好、控制靈活、硬件系統(tǒng)集成度高、電路簡單、功能強、性能可靠、成本低等特點。對我們的生活特別有幫助 。
在這次設(shè)計中我也學(xué)到了很多東西主要,原來在課堂上學(xué)習(xí)的單片機(jī)知識都是理論,從沒有實踐過,這次設(shè)計就讓我的理論知識應(yīng)用到了實踐中。經(jīng)過近這一段時間的努力,從拿到題目,到后來查找資料,理論學(xué)習(xí),焊接電路板,實驗編程調(diào)試,這一切都使我的理論知識和動手能力有了很大的提高。了解了單片機(jī)的硬件結(jié)構(gòu)和軟件編程方法,對單片機(jī)的工作方式有了很大的認(rèn)知。同時,對一些外圍設(shè)備比如傳感器、液晶屏、鍵盤、蜂鳴器等有了一定的了解。
本系統(tǒng)具有較強的實用性,具體方面有:
(1)我對DHT11與DS18B20及一些水銀溫濕度測量器的測量數(shù)據(jù)進(jìn)行了比較,驗證了DHT11測量數(shù)據(jù)的準(zhǔn)確性和穩(wěn)定性。低廉的價格、小巧的體積、準(zhǔn)確穩(wěn)定的測量數(shù)據(jù)、簡單的單總線控制方式、簡潔的電路連接,這些將使DHT11擁有良好的應(yīng)用前景;
(2)LCD1602液晶具有顯示質(zhì)量高、體積小、功耗低等優(yōu)點,在以后會得到更廣泛的應(yīng)用。
附錄1 硬件原理圖
附錄2 PCB圖
附錄3元件布置圖
源程序