Memantau kondisi lingkungan seperti suhu dan kelembaban sangat penting untuk berbagai aplikasi, dari otomatisasi rumah hingga manajemen rumah kaca. Dengan platform Arduino yang serba guna dan sensor seperti DHT11 atau DHT22, menciptakan suhu dan monitor kelembaban yang andal sangat terjangkau dan mudah. Dalam panduan ini, kami akan memandu Anda melalui komponen yang dibutuhkan, proses pengaturan, dan pengkodean yang diperlukan untuk menghidupkan monitor Anda.
Komponen yang Anda butuhkan
- Arduino uno
- Sensor DHT11 atau DHT22
- Resistor ohm 10k
- Papan tempat memotong papan dan kabel jumper
- Tampilan LCD (Opsional)
- Kabel USB
Memahami sensor DHT11/DHT22
DHT11 dan DHT22 adalah sensor populer untuk mengukur suhu dan kelembaban. DHT11 hemat biaya dan cocok untuk aplikasi dasar, menawarkan kisaran suhu 0-50 ° C dengan akurasi ± 2 ° C dan kisaran kelembaban 20-80% dengan akurasi ± 5%. DHT22, di sisi lain, memberikan kisaran suhu yang lebih luas -40 hingga 80 ° C dengan akurasi ± 0,5 ° C dan kisaran kelembaban 0-100% dengan akurasi ± 2-5%, menjadikannya ideal untuk proyek yang lebih menuntut.
Pengkabelan sensor ke Arduino
Ikuti langkah -langkah ini untuk menghubungkan sensor DHT Anda ke Arduino:
- Koneksi Daya: Hubungkan pin VCC dari sensor DHT ke pin 5V pada Arduino dan pin GND ke tanah (GND).
- Pin Data: Hubungkan pin data sensor DHT ke pin input digital pada Arduino (biasanya pin 2).
- Pull-up Resistor: Tempatkan resistor ohm 10k antara VCC dan pin data untuk memastikan transmisi data yang stabil.
- Tampilan LCD (Opsional): Jika menggunakan LCD, sambungkan ke pin Arduino yang sesuai untuk menampilkan bacaan.
Memprogram Arduino
Untuk membaca data dari sensor DHT, kami akan menggunakan DHT.h
perpustakaan, yang menyederhanakan proses. Di bawah ini adalah cuplikan kode sampel untuk memulai:
// 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");
}
Penjelasan Kode:
- Itu
DHT.h
Perpustakaan dimasukkan untuk memfasilitasi komunikasi dengan sensor. - Kami mendefinisikan pin data dan jenis sensor menggunakan
#define
. - Di
setup()
Fungsi, kami menginisialisasi komunikasi serial dan sensor DHT. - Itu
loop()
Fungsi membaca kelembaban dan suhu setiap dua detik dan mencetaknya ke monitor serial.
Menampilkan data
Untuk pengaturan yang lebih ramah pengguna, Anda dapat menampilkan bacaan pada LCD. Ubah kode untuk mengirim data ke LCD alih -alih monitor serial. Pastikan Anda memiliki perpustakaan LCD yang sesuai diinstal dan mengkonfigurasi pin yang sesuai.
Kode sampel untuk tampilan LCD:
// 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(" %");
}
Menguji pengaturan Anda
Setelah mengunggah kode ke Arduino Anda, buka monitor serial (jika menggunakan output serial) atau amati layar LCD. Anda harus melihat suhu waktu nyata dan pembacaan kelembaban. Pastikan koneksi Anda aman, dan sensor berfungsi dengan benar. Jika Anda mengalami masalah, periksa kembali kabel dan verifikasi bahwa jenis sensor yang benar didefinisikan dalam kode Anda.
Peningkatan dan langkah selanjutnya
Sekarang Anda memiliki monitor suhu dan kelembaban dasar, pertimbangkan peningkatan berikut:
- Data Logging: Hubungkan Arduino Anda ke modul kartu SD untuk mencatat data dari waktu ke waktu untuk analisis.
- Pemantauan Nirkabel: Gunakan modul seperti ESP8266 atau Bluetooth untuk mengirim data ke smartphone atau layanan cloud Anda.
- Peringatan: Menerapkan peringatan berbasis ambang batas menggunakan LED atau buzzer untuk memberi tahu Anda tentang kondisi ekstrem.
- Beberapa sensor: Perluas pengaturan Anda untuk memasukkan sensor tambahan untuk parameter seperti kualitas udara atau intensitas cahaya.
Kesimpulan
Membangun monitor suhu dan kelembaban dengan DHT11/DHT22 dan Arduino adalah proyek yang sangat baik untuk pemula dan penggemar. Ini memberikan pengalaman langsung dengan integrasi sensor, pemrosesan data, dan teknik tampilan. Baik untuk penggunaan pribadi atau sebagai dasar untuk sistem yang lebih kompleks, proyek ini menampilkan kekuatan dan fleksibilitas ekosistem Arduino. Bangunan yang bahagia!