Cara Mengukur Suhu dan Kelembaban dengan DHT11 dan Arduino
Hai sob, pada artikel kali ini saya akan menjelaskan cara mengukur suhu dan kelembaban menggunakan DHT11 dan Arduino. Bagi teman-teman yang sudah lama bermain Arduino pasti sudah tidak asing lagi dengan sensor DHT11 dan DHT22, sensor yang biasa terdapat di dalam paket belajar Arduino.
Bagi yang belum tahu, sensor DHT11 dan DHT22 adalah sebuah sensor yang mampu mengukur suhu dan kelembaban. Sensor ini banyak digunakan di dalam proyek-proyek sederhana yang berkaitan dengan pengukuran suhu dan kelembaban seperti monitoring suhu ruangan berbasis IoT.
Di dalam artikel ini saya akan menjelaskan sedikit mengenai spesifikasi DHT11 dan DHT22, perbedaan dari kedua sensor tersebut, cara kerja sensor DHT11 dan DHT22, lalu kemudian akan membahas cara menggunakan sensor DHT11 dan DHT22 pada Arduino serta rangkaian dan beberapa contoh program yang bisa langsung digunakan.
Spesifikasi Sensor DHT11 dan DHT22
Spesifikasi DHT11:
- Tegangan kerja = 3.3V-5V.
- Arus maksimum = 2.5mA
- Range pengukuran kelembaban = 20%-80%
- Akurasi pengukuran kelembaban = 5%
- Range pengukuran suhu = 0°C-50°C
- Akurasi pengukuran suhu = 2°C
- Kecepatan pengambilan sampel tidak lebih dari 1 Hz (setiap detik)
- Ukuran = 15.5 mm x 12 mm x 5.5 mm
- 4 pin dengan jarak 0,1 "
Spesifikasi DHT22:
- Tegangan kerja = 3.3V-5V.
- Arus maksimum = 2.5mA
- Range pengukuran kelembaban = 0%-100%
- Akurasi pengukuran kelembaban = 2-5%
- Range pengukuran suhu = -40°C-80°C
- Akurasi pengukuran suhu = 0.5°C
- Kecepatan pengambilan sampel tidak lebih dari 0.5 Hz (setiap detik)
- Ukuran = 15.1 mm x 25 mm x 7.7 mm
- 4 pin dengan jarak 0,1 "
Perbedaan antara DHT11 dan DHT22
Perbedaan antara DHT11 dan DHT22 antara lain:
- Range pengukuran suhu. Dimana DHT11 (0℃-50℃), sedangkan DHT22 (-40℃-80℃).
- Akurasi pengukuran suhu. Dimana DHT11 memiliki akurasi 2℃ sedangkan DHT22 sebesar 0.5℃.
- Range pengukuran kelembaban. DHT11 (20%-80%) sedangkan DHT22 (0%-100%).
- Akurasi pengukuran kelembaban. DHT11 memiliki akurasi 5% sedangkan DHT22 sebesar 2%-5%.
- Kecepatan update data. DHT11 setiap 1 detik sekali sedangkan DHT22 2 detik sekali.
Untuk melihat perbedaan lebih jelas, silakan sobat lihat perbandingan antara kedua sensor pada gambar berikut.
Cara kerja Sensor DHT11 dan DHT22
Cara kerja sensor DHT11 dan DHT22 adalah sama. Cara DHT11 mengukur kelembaban adalah dengan mendeteksi uap air dengan mengukur resistansi listrik antara dua elektroda. Komponen pendeteksi kelembaban yang digunakan adalah berupa substrat penahan kelembaban dengan elektroda.
Ketika uap air diserap oleh substrat, ion dilepaskan oleh substrat yang akan menyebabkan peningkatan terhadap konduktivitas antar elektroda. Perubahan resistansi antara kedua elektroda sebanding dengan kelembaban relatif. Kelembaban relatif yang lebih tinggi akan mengurangi resistensi antara elektroda, sementara kelembaban relatif yang lebih rendah akan meningkatkan resistensi antara elektroda.
Cara DHT11 mengukur suhu adalah dengan menggunakan sensor termistor yang terpasang di permukaan. Termistor sebenarnya adalah sebuah resistor variabel dengan resistansi yang berubah-ubah terhadap perubahan suhu.
Sensor-sensor ini dibuat dengan sintering bahan semikonduktor seperti keramik atau polimer untuk memberikan perubahan resistansi yang lebih besar hanya dengan perubahan suhu yang kecil. Istilah "NTC" berarti "Negative Temperature Coefficient", yang berarti bahwa nilai resistansi akan berkurang jika suhu meningkat.
Pinout pada DHT11 dan DHT22
Berbicara mengenai pin pada sensor DHT11 dan DHT22, ada 2 jenis yang dijual di pasaran, yakni sensor dengan 3 pin dan 4 pin, fungsinya tetap sama, hanya jumlah pin yang berbeda. Karena pemetaan pin dari kedua tipe sensor tersebut sama, jadi pada gambar di bawah ini hanya dicontohkan dengan sensor DHT22. Untuk lebih jelasnya sobat bisa lihat gambar berikut.
DHT22 dan DHT11 dengan 4 pin:
DHT22 dan DHT11 dengan 3 pin:
Cara Menggunakan Sensor DHT11 dan DHT22 pada Arduino
Untuk menggunakan sensor DHT11 atau DHT22 pada Arduino, kita terlebih dahulu harus mengetahui rangkaiannya terhadap Papan Arduino. Pada tutorial ini saya menggunakan papan Arduino Uno dengan ATmega328P sebagai mikrokontroler. Jika sobat menggunakan papan Arduino lain, sobat tinggal sesuaikan pin-pinnya dengan papan Arduino yang sobat miliki. Oke, mari kita mulai!
- Siapkan alat yang dibutuhkan.
- Buatlah rangkaian DHT11/DHT22 seperti gambar dibawah.
Wiring diagram: - Pastikan sudah mengunduh Arduino IDE.
- Download DHT Sensor Library untuk Arduino jika belum ada dan masukkan ke folder C:\Program Files\Arduino\libraries.
- Buka Arduino IDE dan buat New File.
- Paste program di bawah ini ke Arduino IDE. Atau download: DHT_Sensor.ino
#include "DHT.h"
#define DHTPIN 2 // Deklarasi PIN DHT11
#define DHTTYPE DHT11 // Tipe sensor yang digunakan (DHT11 atau DHT22)
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity(); // Membaca kelembaban
float t = dht.readTemperature(); // Membaca suhu dalam satuan Celsius
float f = dht.readTemperature(true); // Membaca suhu dalam satuan Fahrenheit
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Gagal membaca sensor!!!"));
return;
}
float hif = dht.computeHeatIndex(f, h);
float hic = dht.computeHeatIndex(t, h, false);
Serial.print("Kelembaban: "); // Menampilkan data kelembaban di serial monitor
Serial.print(h);
Serial.println("%");
Serial.print("Temperatur (C): "); // Menampilkan data Suhu (C) di serial monitor
Serial.print(t);
Serial.println(" C");
Serial.print("Temperatur (F): "); // Menampilkan data Suhu (F) di serial monitor
Serial.print(f);
Serial.println(" F");
Serial.println(" ");
}
Penutup
Mungkin itu saja mengenai tutorial menggunakan sensor DHT11 dan DHT22 pada Arduino, semoga artikel ini bermanfaat, mungkin di lain waktu kita akan mencoba menampilkan data pembacaan sensor DHT11/DHT22 ke LCD 16x2.