加濕器是用于增加封閉區(qū)域的相對(duì)濕度以確保該區(qū)域有足夠水分的設(shè)備。特別是在冬天,當(dāng)打開加熱器時(shí),它會(huì)導(dǎo)致空氣的相對(duì)濕度降低。在這個(gè)diy項(xiàng)目中,我們將建造一個(gè)自動(dòng)加濕器,它可以通過傳感器機(jī)制保持大氣空氣的相對(duì)濕度。我們還使用顯示器以空氣中水分百分比的形式顯示相對(duì)濕度 (RH)。除了 Arduino 和 LCD,我們還使用DHT11 傳感器來讀取大氣濕度值。如果它發(fā)現(xiàn)相對(duì)濕度低于要求的限制,它會(huì)打開加濕器,反之亦然。
構(gòu)建便攜式加濕器所需的組件
超聲波加濕器
Arduino納米
5V繼電器
7805
25V,1000uf電解電容
DHT11 傳感器
USB母插座
性能板
連接線
便攜式加濕器的工作原理
便攜式加濕器可以通過使用高頻振動(dòng)的金屬膜片產(chǎn)生溫暖/涼爽的霧氣。聲音振動(dòng)將水分推入空氣中。加濕器中產(chǎn)生的霧氣幾乎立即被空氣吸收。加濕器需要漂浮在水床上才能產(chǎn)生霧氣。我們要建造的加濕器的工作原理可以通過下面的框圖來理解:
如上框圖所示,超聲波加濕器放置在容器內(nèi)的水面上。加濕器漂浮在水面上。由于我們需要感應(yīng)濕度,因此 DHT11 濕度傳感器與 Arduino Nano 連接,并連接 OLED 顯示器以顯示實(shí)時(shí)值。此外,根據(jù)濕度值,我們需要觸發(fā)繼電器,進(jìn)而將加濕器切換到 ON/OFF。因此,將加濕器值與參考值進(jìn)行比較,并根據(jù)濕度值打開/關(guān)閉加濕器。該除濕機(jī)的主要特點(diǎn)如下:
類型:浮動(dòng)/超聲波
電源:USB,5V DC
工作電流:500Ma
噪音等級(jí):≤36db
便攜式加濕器電路圖
此處給出了使用 Arduino構(gòu)建DIY 加濕器的完整原理圖:
讓我們?cè)敿?xì)了解電路圖。如圖所示,首先使用 7805 穩(wěn)壓器和電容濾波器將 12V 直流電源轉(zhuǎn)換為 5V 直流電源。然后將此電源提供給 Arduino Nano、OLED、DHT11 和繼電器電路。DHT11 的數(shù)據(jù)引腳連接到 Arduino 的數(shù)字輸入引腳,如代碼所示和配置。OLED 顯示器通過 I2C 引腳連接到 Arduino,即 Arduino 的 A4、A5 引腳。同樣,Arduino 的數(shù)字輸出引腳連接到 Relay 和 BJT 用于 DC 風(fēng)扇驅(qū)動(dòng)。
在 Perfboard 上焊接組件:
為了使項(xiàng)目設(shè)置移動(dòng)化且更兼容,我將所有組件焊接在穿孔板上,如下圖所示:
為加濕器編程 Arduino Nano
按照電路圖完成硬件連接成功后,現(xiàn)在是時(shí)候?qū)⒋a刷入 Arduino 了。完整的代碼在文檔末尾給出。這里我們逐行解釋整個(gè)代碼。
因此,第一步是在代碼中包含整個(gè)所需的庫,即本項(xiàng)目中的“?SoftwareSerial.h?”、“?wire.h?”、“Adafruit_SH1106.h”和“DHT.h”。“?SoftwareSerial.h?”和“?wire.h?”是內(nèi)置的,“?Adafruit_SH1106.h?”可以從這個(gè)鏈接下載,“DHT.h”可以從這個(gè)鏈接下載。
?
#include#include #include #include "DHT.h"
?
然后,定義 OLED I2C 地址,可以是 OX3C 或 OX3D,在我的例子中是 OX3C。通常,1.3英寸OLED的地址是OX3C。此外,必須定義顯示器的復(fù)位引腳。在我的例子中,它被定義為 -1,因?yàn)轱@示器共享 Arduino 的復(fù)位引腳。
?
#define OLED_ADDRESS 0x3C #define OLED_RESET -1 Adafruit_SH1106 display(OLED_RESET);
?
現(xiàn)在,在 DHT 類類型中聲明了一個(gè)對(duì)象,該對(duì)象可以在整個(gè)代碼中使用。
?
DHT dht; 國際濕度=0;
?
在setup()中,我們知道,這里需要對(duì)串行通信、OLED 顯示器初始化等進(jìn)行初始化。這里,對(duì)于軟件串行通信,默認(rèn)波特率定義為 9600。這里 SH1106_SWITCHCAPVCC 用于從3.3V 內(nèi)部和display.begin函數(shù)用于初始化顯示。
?
無效設(shè)置() { 序列.開始(9600); dht.setup(2); pinMode(6,輸出); pinMode(11,輸出); display.begin(SH1106_SWITCHCAPVCC, OLED_ADDRESS); display.clearDisplay(); }
?
要從傳感器讀取濕度值,使用 getHumidity() 函數(shù)并將其存儲(chǔ)在變量中。然后使用選擇文本大小和光標(biāo)位置的相應(yīng)功能將其顯示在 OLED 上,如下所示。
?
延遲(dht.getMinimumSamplingPeriod()); 濕度 = dht.getHumidity(); display.setTextSize(1); display.setTextColor(白色); display.setCursor(27, 2); display.print("電路文摘"); display.setTextSize(1); display.setCursor(35, 20); display.print("濕度(%)"); 顯示.顯示(); display.setTextSize(2); display.setCursor(55, 40); display.print(濕度); 顯示.顯示(); 延遲(50); display.clearDisplay();
?
最后,為了觸發(fā)加濕器,將濕度值與參考濕度水平進(jìn)行比較,低于參考濕度水平,觸發(fā)繼電器,打開加濕器和風(fēng)扇。
?
如果(濕度<88) { 數(shù)字寫入(6,HIGH); 數(shù)字寫入(11,高); } else { digitalWrite(6,LOW); 數(shù)字寫入(11,低); } }
?
測試便攜式加濕器
一旦代碼和硬件準(zhǔn)備就緒,我們就可以測試這款加濕器在封閉房間內(nèi)的性能。為此,請(qǐng)按照以下步驟操作:
向容器中注入不超過容器3/4的淡水,然后將加濕器漂浮在容器上,如下所示:
打開適配器電源以打開電路,現(xiàn)在我們應(yīng)該看到 OLED 上的濕度水平。
然后,如果濕度水平低于參考值,則加濕器應(yīng)該開始產(chǎn)生霧氣并且應(yīng)該打開風(fēng)扇。
該自制加濕器的完整工作原理也在文檔末尾給出的視頻中進(jìn)行了說明。如果您有任何疑問,可以將它們留在下面的評(píng)論部分。
代碼
#include 《SoftwareSerial.h》
#include 《Wire.h》
#include 《Adafruit_SH1106.h》
#define OLED_ADDRESS 0x3C
#define OLED_RESET -1
Adafruit_SH1106 display(OLED_RESET);
#include “DHT.h”
DHT dht;
國際濕度=0;
無效設(shè)置()
{
序列。開始(9600);
dht.setup(2);
pinMode(6,輸出);
pinMode(11,輸出);
display.begin(SH1106_SWITCHCAPVCC, OLED_ADDRESS);
display.clearDisplay();
}
無效循環(huán)()
{
延遲(dht.getMinimumSamplingPeriod());
濕度 = dht.getHumidity();
display.setTextSize(1);
display.setTextColor(白色);
display.setCursor(27, 2);
display.print(“電路文摘”);
display.setTextSize(1);
display.setCursor(35, 20);
display.print(“濕度(%)”);
顯示。顯示();
display.setTextSize(2);
display.setCursor(55, 40);
display.print(濕度);
顯示。顯示();
延遲(50);
display.clearDisplay();
如果(濕度《85)
{
數(shù)字寫入(6,HIGH);
數(shù)字寫入(11,高);
}
else
{
digitalWrite(6,LOW);
數(shù)字寫入(11,低);
}
}
評(píng)論
查看更多