Mengukur temperature dan kelembaban udara

sensor temperature humidity DHT11

Dalam tulisan ini kita akan mengulas DHT11 beserta contoh penggunaannya dalam proyek arduino. Sensor DHT11 adalah suatu sensor murah meriah untuk mengukur temperature dan kelembaban udara. Sensor ini, memang agak lambat responsnya dibanding kakaknya DHT22, namun sudah cukup memadai untuk kebanyakan proyek. Kecepatan bacanya adalah seperempat detik dan data yang kita baca adalah data 2 detik yang lalu. Nggak masalah, kecuali kalau kita akan menggunakan proyek-proyek yang sensitive terhadap waktu, tentunya kita akan menggunakan sensor yang lebih baik (lebih mahal :D )

DHT11 hadir dalam beberapa bentuk, yang saya punya adalah seperti gambar di bawah ini.

Perhatikan, sebetulnya DHT11 sensor adalah yang berwarna biru itu dengan 4 pin. Tetapi beberapa pabrikan menambahkan komponen yang dibutuhkan seperti resistor, sehingga produk akhir menjadi gambar yang di atas itu

Berbeda dengan sensor cahaya (LDR) yang kita bahas pada proyek sebelumnya yang merupakan sensor analog, DHT11 adalah sensor digital. Output yang dihasilkan merupakan baris data digital 40 bits, yang terdiri dari 16 bit data temperature, 16 bit data humidity dan 8 bit data parity. Untuk bisa membacanya kita memerlukan library DHT11 yang bisa di download di sini : https://github.com/adafruit/DHT-sensor-library. Library tersebut juga sekaligus bisa digunakan untuk sensor DHT22 dan DHT21

Penggunaannya cukup sederhana, cukup sambungkan PIN - ke Ground dan PIN + ke VCC (5 V) dan Pin S ke input PIN, misalnya PIN 1. Selanjutnya, tinggal baca temperature dan humidity dengan code di bawah ini:

 
#include "DHT.h" 
#define DHTPIN 2 // what pin we're connected to #define 
DHTTYPE DHT11 // bisa untuk DHT21 san DHT22 
DHT dht(DHTPIN, DHTTYPE); 

void setup() { 
Serial.begin(9600); 
dht.begin(); 
} 

void loop() { 
// Reading temperature or humidity takes about 250 milliseconds! 
// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor) 
float h = dht.readHumidity(); 
float t = dht.readTemperature(); 
// check if returns are valid, if they are NaN (not a number) then something went wrong! 

if (isnan(t) || isnan(h)) { 
   Serial.println("Failed to read from DHT"); 
} else { 
   Serial.print("Humidity: "); 
   Serial.print(h); 
   Serial.print(" %\t"); 
   Serial.print("Temperature: "); 
   Serial.print(t); Serial.println(" *C"); 
}
 } 

Hasil dari serial monitor sbb:

Next, Insya Allah saya akan tambahkan rutin untuk menyalakan fan apabila suhu udara cukup panas

Source Code: 
LampiranUkuran
Package icon sensor_temperature.zip717 byte
Komponen: 
Bahasa Indonesia