Sıcaklık ve nem gibi çevresel koşulların izlenmesi, ev otomasyonundan sera yönetimine kadar çeşitli uygulamalar için gereklidir. Çok yönlü Arduino platformu ve DHT11 veya DHT22 gibi sensörlerle, güvenilir bir sıcaklık ve nem monitörü oluşturmak hem uygun hem de basittir. Bu kılavuzda, ihtiyaç duyulan bileşenler, kurulum işlemi ve monitörünüzü hayata geçirmek için gereken kodlamada size yol göstereceğiz.
İhtiyacınız olacak bileşenler
- Arduino uno
- DHT11 veya DHT22 sensörü
- 10k ohm direnç
- Breadboard ve jumper telleri
- LCD ekran (isteğe bağlı)
- USB kablosu
DHT11/DHT22 sensörlerini anlamak
DHT11 ve DHT22, sıcaklık ve nemi ölçmek için popüler sensörlerdir. DHT11, maliyet etkin ve temel uygulamalar için uygundur, ± 2 ° C doğruluk ve nem aralığı ile ±% 5 doğrulukla 0-50 ° C sıcaklık aralığı sunar. Öte yandan DHT22, ± 0.5 ° C doğruluk ve nem aralığı ile daha geniş bir sıcaklık aralığı ve ±% 2-5 doğrulukla% 0-100'lük bir sıcaklık sağlar, bu da daha zorlu projeler için idealdir.
Sensörü Arduino'ya bağlama
DHT sensörünüzü Arduino'ya bağlamak için bu adımları izleyin:
- Güç Bağlantıları: DHT sensörünün VCC pimini Arduino'daki 5V pimine ve GND pimini yere (GND) bağlayın.
- Veri Pin: DHT sensörünün veri pimini Arduino'daki dijital giriş pimine bağlayın (genellikle pim 2).
- Çekme direnci: Kararlı veri iletimini sağlamak için VCC ve veri pimi arasına 10 bin ohm direnç yerleştirin.
- LCD ekran (isteğe bağlı): Bir LCD kullanıyorsanız, okumaları görüntülemek için uygun Arduino pimlerine bağlayın.
Arduino programlama
DHT sensöründen verileri okumak için, DHT.h
süreci basitleştiren kütüphane. Başlamanız için bir örnek kodu snippet'tir:
// Include the DHT library
#include <DHT.h>
// Define the sensor type and the pin it's connected to
#define DHTPIN 2
#define DHTTYPE DHT22 // Change to DHT11 if you're using that model
// Initialize the DHT sensor
DHT dht(DHTPIN, DHTTYPE);
void setup() {
// Start serial communication
Serial.begin(9600);
// Initialize the DHT sensor
dht.begin();
}
void loop() {
// Wait a few seconds between measurements
delay(2000);
// Read humidity and temperature
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
// Check if any reads failed
if (isnan(humidity) || isnan(temperature)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
// Print the results to the Serial Monitor
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
}
Kodun açıklaması:
- .
DHT.h
Sensörle iletişimi kolaylaştırmak için kütüphane dahildir. - Veri pinini ve sensör türünü kullanarak tanımlıyoruz
#define
. - İçinde
setup()
İşlev, seri iletişim ve DHT sensörünü başlatırız. - .
loop()
İşlev nem ve sıcaklığı her iki saniyede bir okur ve bunları seri monitöre yazdırır.
Verileri Görüntüleme
Daha kullanıcı dostu bir kurulum için okumaları bir LCD'de görüntüleyebilirsiniz. Seri monitör yerine LCD'ye veri göndermek için kodu değiştirin. Uygun LCD kütüphanesine sahip olduğunuzdan emin olun ve pimleri buna göre yapılandırın.
LCD ekran için örnek kodu:
// Include necessary libraries
#include <DHT.h>
#include <LiquidCrystal.h>
// Define sensor and LCD pins
#define DHTPIN 2
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);
// Initialize the LCD (adjust pin numbers as needed)
LiquidCrystal lcd(12, 11, 5, 4, 3, 6);
void setup() {
// Start serial communication
Serial.begin(9600);
dht.begin();
// Initialize the LCD
lcd.begin(16, 2);
lcd.print("Temp & Humidity");
}
void loop() {
delay(2000);
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(humidity) || isnan(temperature)) {
lcd.clear();
lcd.print("Sensor Error");
return;
}
// Display on LCD
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temp: ");
lcd.print(temperature);
lcd.print(" C");
lcd.setCursor(0, 1);
lcd.print("Humidity: ");
lcd.print(humidity);
lcd.print(" %");
}
Kurulumunuzu test etmek
Kodu Arduino'nuza yükledikten sonra seri monitörü açın (seri çıkışı kullanıyorsanız) veya LCD ekranını gözlemleyin. Gerçek zamanlı sıcaklık ve nem okumalarını görmelisiniz. Bağlantılarınızın güvenli olduğundan ve sensörün doğru çalıştığından emin olun. Sorunlarla karşılaşırsanız, kablolamayı iki kez kontrol edin ve doğru sensör türünün kodunuzda tanımlandığını doğrulayın.
Geliştirmeler ve sonraki adımlar
Artık temel bir sıcaklık ve nem monitörünüz olduğuna göre, aşağıdaki geliştirmeleri göz önünde bulundurun:
- Veri Günlüğü: Analiz için zaman içinde verileri kaydetmek için Arduino'nuzu bir SD kart modülüne bağlayın.
- Kablosuz İzleme: Akıllı telefonunuza veya bulut hizmetlerinize veri göndermek için ESP8266 veya Bluetooth gibi modülleri kullanın.
- Uyarılar: Sizi aşırı koşullar hakkında bilgilendirmek için LED'ler veya buzzerler kullanarak eşik tabanlı uyarılar uygulayın.
- Çoklu Sensörler: Hava kalitesi veya ışık yoğunluğu gibi parametreler için ek sensörler ekleyecek şekilde kurulumunuzu genişletin.
Çözüm
DHT11/DHT22 ve Arduino ile bir sıcaklık ve nem monitörü oluşturmak, yeni başlayanlar ve meraklılar için mükemmel bir projedir. Sensör entegrasyonu, veri işleme ve ekran teknikleri ile uygulamalı deneyim sağlar. Kişisel kullanım için isterse daha karmaşık sistemler için bir temel olarak, bu proje Arduino ekosisteminin gücünü ve esnekliğini sergiliyor. Mutlu bina!