DHT11 adalah modul yang didalamnya sudah ada sensor temperatur (thermistor) dan kelembaban (kapasitif). Meskipun termasuk sensor murah dan lamban dalam pengiriman data, sensor ini cocok bagi pemula dalam membuat alat pendeteksi suhu dan kelembaban.
Berdasarkan datasheet, sensor ini memiliki spesifikasi maksimum sebagai berikut:
- Range pengukuran temperatur 0 – 50 ℃
- Range pengukuran kelembaban 20 – 90% RH
- Akurasi pembacaan temperatur ±2℃
- Akurasi pembacaan kelembaban ±5% RH
- Tegangan kerja 3.3 – 5.5V
Prinsip kerja DHT11
DHT11 sensor mengirimkan data ke arduino menggunakan serial interface (single wayer two-way). Artinya sensor hanya menggunakan satu pin saja untuk pengiriman dan penerimaan data. Pada datasheet, sensor membutuhkan waktu 4ms pada saat sekali komunikasi.
Paket data yang dikeluarkan atau yang dikirimkan ke arduino sebanyak 40bit. Adapun format data yang dikirim DHT11 ke Arduino adalah sebagai berikut:
Data RH integral 8-bit + data RH desimal 8-bit + data T integral 8-bit + data T desimal 8-bit + data kondisi 8-bit.
Rangkaian DHT11 Arduino
Untuk dapat menggunakan sensor DHT11 pada board Arduino, silahkan ikuti rangkaian berikut.
Library
Untuk membantu kita dalam membaca data dari sensor DHT11, kita butuh 2 library dan dapat anda download dengan klik tombol berikut ini:
Untuk panduan cara install library tersebut ke Arduino IDE, silahkan ikuti penjelasan pada artikel Cara Install Library Arduino IDE.
Kode Program
Berikut adalah contoh program mengmpilkan data suhu.
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}
void loop() {
delay(2000);
float h = dht.readHumidity();
float t = dht.readTemperature(); // Read temperature as Celsius (the default)
float f = dht.readTemperature(true); // Read temperature as Fahrenheit (isFahrenheit = true)
// Check if any reads failed and exit early (to try again).
if (isnan(h) || isnan(t) || isnan(f)) {
Serial.println(F("Failed to read from DHT sensor!"));
return;
}
float hif = dht.computeHeatIndex(f, h); // Compute heat index in Fahrenheit (the default)
float hic = dht.computeHeatIndex(t, h, false); // Compute heat index in Celsius (isFahreheit = false)
Serial.print(F("Humidity: "));
Serial.print(h);
Serial.print(F("% Temperature: "));
Serial.print(t);
Serial.print(F("°C "));
Serial.print(f);
Serial.print(F("°F Heat index: "));
Serial.print(hic);
Serial.print(F("°C "));
Serial.print(hif);
Serial.println(F("°F"));
}
Hasil
Setelah kode program diatas di upload ke arduino board, sekarang buka Serial Monitor yang ada di Arduino IDE. Dari program diatas, hasil yang tampil di Serial Monitor Arduino IDE adalah sebagai berikut:
Semoga artikel Arduino DHT11 Tutorial dan Kode Program Dasar ini bermanfaat.
Baca juga: