牟曉東
借助于溫度傳感器、風(fēng)扇模塊和幾個LED燈,我們利用Arduino開發(fā)制作一個“高溫監(jiān)控儀”:當(dāng)環(huán)境溫度處于較適宜的溫度范圍時(比如28℃以下),綠色LED燈亮,風(fēng)扇模塊無動作;當(dāng)溫度有小幅度升高時(28℃以上、30℃以下),黃色LED燈發(fā)光進行預(yù)警,同時風(fēng)扇模塊低速轉(zhuǎn)動進行風(fēng)力降溫,直至恢復(fù)正常;當(dāng)溫度較高時(30℃以上),紅色LED燈發(fā)光進行報警,風(fēng)扇模塊高速轉(zhuǎn)動進行風(fēng)力快速降溫……在整個過程中,屏幕每隔3秒鐘就顯示一次實時檢測到的溫度數(shù)據(jù)。
實驗器材:Arduino UNO主板一個,DHT11溫濕度傳感器一個,風(fēng)扇模塊一個,綠色、黃色和紅色LED燈各一支,面包板一塊,各色杜邦線若干;對照設(shè)計好的電路接線圖進行器材連接(如圖1)。
首先,將Arduino的5V和GND通過杜邦線連接至面包板一側(cè)的紅色和藍色線槽;接著,將綠色、黃色和紅色LED燈的短腿(負極)均插接至藍色線槽,長腿(正極)則分別插接至a列某行插孔中,再通過同種顏色的杜邦線將正極與Arduino的11號、12號和13號數(shù)字引腳相連;然后,將溫度傳感器和風(fēng)扇模塊的VCC端和GND端均通過杜邦線與面包板的紅色、藍色線槽連接,二者的信號端則分別插接至Arduino的2號和3號數(shù)字引腳;最后,通過數(shù)據(jù)線將Arduino與計算機USB接口連接,完成電路連接(如圖2)。
在Arduino IDE中對DHT11溫濕度傳感器進行編程控制的前提是要安裝DHT.h庫,首先依次點擊菜單“項目”-“加載庫”-“管理庫”項,在彈出的“庫管理器”中以“DHT11”為關(guān)鍵詞進行搜索,會出現(xiàn)一個名為“DHT sensor library(by Adafruit)”的庫,顯示支持DHT11(目前最新版本為1.4.2);接著,點擊“安裝”按鈕(如圖3),在彈出的提示窗口中點擊“Install all”按鈕進行下載和安裝;結(jié)束后返回“加載庫”中查看,底部“推薦的庫”中就會顯示有“DHT sensor library”項,說明安裝成功。
首先導(dǎo)入DHT.h庫:“#include
在loop()函數(shù)中先定義浮點型變量Temperature,通過“float Temperature = dht.readTemperature();”語句實現(xiàn)對檢測溫度數(shù)據(jù)的讀取,然后將該數(shù)據(jù)在串口監(jiān)視器中輸出:“Serial.print("當(dāng)前溫度為:");”“Serial.print(Temperature);”和“Serial.println("℃");”;接著,構(gòu)建“if…else if…else…”三分支選擇結(jié)構(gòu),對溫度數(shù)據(jù)進行數(shù)值區(qū)間判斷:如果溫度在28℃以下——“if (Temperature <= 28.00)”,則控制綠色LED燈發(fā)光:“digitalWrite(GreenLED, HIGH);”;如果溫度在28℃-30℃之間——“else if (Temperature > 28.00 && Temperature <= 30.00)”,則控制黃色LED燈發(fā)光、風(fēng)扇低速轉(zhuǎn)動:“digitalWrite(YellowLED,HIGH);”“analogWrite(Fan, 127);”;如果溫度超過30℃,則控制紅色LED發(fā)光、風(fēng)扇高速轉(zhuǎn)動:“digitalWrite(RedLED, HIGH);”“analogWrite(Fan, 255);”。