鳳 蘭
(內(nèi)蒙古電子信息職業(yè)技術(shù)學(xué)院電子與自動化學(xué)院,呼和浩特 010070)
車內(nèi)溫度、濕度與車廂內(nèi)乘客的舒適度直接相關(guān)。車廂內(nèi)環(huán)境檢測系統(tǒng)中溫度和濕度是兩個重要的顯示和分析指標(biāo),實時檢測車內(nèi)溫濕度,才可采取相應(yīng)措施,為乘客提供舒適、安全的乘車環(huán)境[1-2]。近年來通過單片機控制溫濕度系統(tǒng)的設(shè)計大量涌現(xiàn)[3-5],比如智慧農(nóng)業(yè)中的溫濕度控制,家居溫濕度控制等等。對于初學(xué)者,Arduino 開發(fā)板相對于單片機難度較低,并且有豐富的擴展模塊和庫函數(shù),易于實現(xiàn)各種功能。如果需要實現(xiàn)較為復(fù)雜的任務(wù)或需要高速運算,單片機可能更加適合。對于車廂內(nèi)的溫濕度控制這類項目則Arduino 更加適合[6-8]。本系統(tǒng)的設(shè)計初衷,也是為此類系統(tǒng)的設(shè)計提供便利。
本系統(tǒng)以Arduino 為主控制,用DHT11 數(shù)字溫度傳感器來進行溫濕度信息采集,將采集到的溫度與相對濕度通過LCD1602 液晶屏實時進行顯示。當(dāng)溫度和濕度達到設(shè)定值時,主控電路將啟動溫濕度控制模塊對執(zhí)行設(shè)備進行控制。系統(tǒng)的總體框架如圖1 所示。系統(tǒng)設(shè)計包括:DHT11 溫濕度傳感器,Arduino 開發(fā)板,LCD 顯示屏,兩個繼電器模塊,風(fēng)扇和加濕器。
圖1 系統(tǒng)總體框架圖
系統(tǒng)由DHT11 溫濕度檢測模塊、Arduino 控制模塊、液晶顯示模塊、繼電器模塊和執(zhí)行設(shè)備組成。詳細設(shè)計如下:
(1) DHT11 溫濕度檢測模塊
系統(tǒng)采用的信息采集模塊是DHT11 溫濕度傳感器。與相同功能的其他溫濕度傳感器相比[9],它具有更顯明的優(yōu)勢。首先,它是一種包含檢測溫度和濕度功能的復(fù)合型集成傳感器,采用單線制串行接口,使系統(tǒng)集成更易于實現(xiàn)和操作。其次,該傳感器輸出的數(shù)字信號是已經(jīng)經(jīng)過精確校準(zhǔn)后的數(shù)據(jù),更能精準(zhǔn)地測量到車廂內(nèi)的溫度和相對濕度。DHT11的工作電壓為3.3~5.5 V,采用4 針單排封裝,測量溫度時精度為±2℃,測量量程0~50℃,測濕精度在±5%RH,量程范圍是20%~90%RH。該傳感器可以通過一根數(shù)據(jù)線與主控制器進行通信,具有操作簡便、品質(zhì)優(yōu)良、響應(yīng)精準(zhǔn)和抗干擾能力強等優(yōu)點。
(2) 主控制模塊
Arduino 是目前較為流行的電子互動平臺,具有便捷靈活,功能多樣,價格低廉等優(yōu)點。相比于同性能控制芯片,它具有簡便的編程環(huán)境IDE,無需配置復(fù)雜的驅(qū)動程序、寄存器與庫函數(shù),更容易實現(xiàn)相應(yīng)的設(shè)計效果。
(3) 液晶顯示模塊
LCD1602 作為各類項目設(shè)計中常見的顯示屏,可顯示字母、數(shù)字和符號,能夠同時顯示16 字符、2行的字母或數(shù)字。LCD1602 最佳工作電壓為5V,具有低功耗、高可靠性、易于控制等優(yōu)點。它通常作為顯示輸出設(shè)備用于嵌入式系統(tǒng)中,易于跟Arduino開發(fā)板連接使用,符合本設(shè)計的需求。
(4) 繼電器模塊
繼電器是一種自動控制保護裝置。在系統(tǒng)電路設(shè)計中,用大量的繼電器來控制電路的通斷,即用流經(jīng)繼電器開關(guān)的小電流,通過常閉和常開觸點的動作控制用電器的大電流。其中電磁式繼電器的應(yīng)用為最廣泛。DC5V 繼電器是一種常見的電磁式繼電器,在本項目中主要控制加濕器與風(fēng)扇的工作。
(5) 執(zhí)行設(shè)備
汽車空調(diào)制冷系統(tǒng)的核心設(shè)備是壓縮機,通過制冷劑的循環(huán)給車廂降溫。車內(nèi)加濕器可以避免空氣過于干燥。在此項目中兩個執(zhí)行設(shè)備風(fēng)扇和加濕器的工作電壓均為5V。小風(fēng)扇用來模擬汽車空調(diào)制冷系統(tǒng)中的核心設(shè)備壓縮機;小加濕器用來模擬車廂內(nèi)的加濕系統(tǒng)。傳感器檢測到的溫度達到相應(yīng)的臨界值時,風(fēng)扇開始工作。當(dāng)車內(nèi)濕度達到臨界值時加濕器開始運行。
通過調(diào)用溫濕度傳感器的庫函數(shù),實現(xiàn)DHT11的溫濕度采集功能,并把檢測到的數(shù)字信號傳送到主控制模塊,進行數(shù)據(jù)分析和計算。對Arduino 編寫主函數(shù),完成從傳感器模塊接收數(shù)據(jù)、把數(shù)據(jù)發(fā)送給顯示模塊顯示的功能。把顯示的溫濕度按事先設(shè)定好的模式顯示在液晶屏的指定位置,溫度和濕度達到臨界值時,控制單元對執(zhí)行元件進行控制。由此對主代碼進行設(shè)計,代碼及分析如下:
起始部分為:
此段代碼的功能為:首先引入liquidcrystal 和dht 的庫函數(shù),定義LCD 連接到Arduino 開發(fā)板的12、11、5、4、3、2 號引腳。溫濕度傳感器DHT11 的數(shù)據(jù)端與Arduino 的8 號引腳相連。加濕器和風(fēng)扇分別與開發(fā)板的6 和7 號引腳相連。
后續(xù)代碼為:
此段代碼為:先初始化LCD1602(lcd.setCursor的功能是將光標(biāo)移動到指定位置)。第一行顯示字符串“--ShiDu---Test--”,把6 和7 號引腳均設(shè)為輸出模式,加濕器和風(fēng)扇的初始狀態(tài)為停止。
后續(xù)代碼為:
此段代碼的功能為:在lcd 第二行顯示溫度和濕度,單位分別為℃和%,其中“DH:”代表相對濕度,“TP:”代表溫度。比如:DH:38%---TP:43C。
后續(xù)代碼為:
此段代碼為:當(dāng)相對濕度達到37%時加濕器停止工作,在此之前加濕器一直工作;當(dāng)溫度達到25℃時,風(fēng)扇開啟,在此之前風(fēng)扇是關(guān)閉的狀態(tài)。
為了更好地開展實驗驗證,先做了模擬仿真測試,再用實物連接來實現(xiàn)整個軟硬件設(shè)計。
采用Proteus 8 Professional 仿真軟件模擬汽車空調(diào)車廂內(nèi)溫濕度控制系統(tǒng)。首先將DHT11 溫濕度傳感器和Arduino 開發(fā)板連接。DHT11 傳感器連接Arduino 版的供電端和地以及數(shù)據(jù)端8 號引腳,LCD顯示屏連接Arduino 的12、11、5、4、3、2 號引腳。具體連接情況如表1。
通過仿真連接和代碼上傳,可看出傳感器檢測到的數(shù)據(jù)有兩個部分:溫度和濕度。DHT11 能實時顯示環(huán)境溫度與濕度,并同步顯示在LCD 液晶顯示屏上。當(dāng)前顯示的溫度為43℃,相對濕度為38%。當(dāng)手動調(diào)整DHT11 的上下鍵時顯示屏上的溫濕度會發(fā)生變化,達到了設(shè)計的效果。Proteus 仿真界面及結(jié)果如圖2 所示。
圖2 Proteus 仿真圖
首先將傳感器模塊、Arduino 開發(fā)板、LCD 顯示模塊按仿真中的連接順序布線,再把Arduino 開發(fā)板的6 號和7 號引腳分別與濕度繼電器和溫度繼電器相連。將編好的代碼上傳到Arduino 控制模塊,控制加濕或吹風(fēng),同時采集到的溫濕度的信息顯示在LCD 顯示屏上。
當(dāng)相對濕度達到37%時,加濕器停止工作,在此之前加濕器一直工作;當(dāng)溫度達到25 ℃時,風(fēng)扇開啟,在此之前風(fēng)扇是關(guān)閉的狀態(tài)。車廂內(nèi)的溫度達到臨界溫度25℃時,壓縮機(小風(fēng)扇)開啟,對環(huán)境進行制冷,提供舒適的溫度。相對濕度低于37%時,加濕器啟動,提高了車廂內(nèi)濕度,避免太過干燥引起靜電等情況的發(fā)生。經(jīng)實驗,所設(shè)計功能運轉(zhuǎn)良好,實驗結(jié)果與設(shè)計預(yù)期吻合。
基于Arduino 簡單易操作的特點,以車廂內(nèi)的溫濕度控制為例介紹了整個軟硬件設(shè)計過程。溫濕度傳感器采集到的溫度、濕度信號傳遞給Arduino開發(fā)板,通過顯示模塊實時正確地顯示環(huán)境溫濕度,并在溫濕度達到臨界值時,由控制單元對執(zhí)行元件進行控制,達到了預(yù)期的效果。本設(shè)計簡便易行,具有一定實際應(yīng)用價值。