Cara Akses Sensor DHT11 Menggunakan Arduino Uno

Posted on

DHT11 Arduino Uno

Pengertian Sensor DHT11

Cara Akses Sensor DHT11 Menggunakan Arduino Uno – DHT11 adalah sensor temperatur dan kelembaban. Sensor memiliki dua sensor didalamnya, yaitu sensor kelembaban kapasitif dan thermistor. 

Meskipun termasuk sensor murah dan lamban dalam pengiriman data, tapi sensor cocok bagi pemula dalam membuat alat pendeteksi suhu dan kelembaban. Sensor 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
Berikut spesifikasi detail sensor DHT11 Arduino yang saya kutip dari datasheetnya:
Download DHT11 Datasheet

Prinsip kerja DHT11

Untuk pengiriman dan penerimaan data antara DHT11 Arduino, sensor  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 Arduino, silahkan ikuti rangkaian berikut.

Untuk memudahkan dalam pemrograman, sudah tersedia library untuk sensor yang akan kita pakai menggunakan Arduino.

Ada dua cara mendapatkan library . Pertama dari library manager di arduino ide, kedua memasukkan secara menual.

Library yang saya lampirkan diambil dari adafruit industries. SIlahkan download library berikut dan masukkan ke Arduino IDE anda:

Download DHT Library

Berikut adalah contoh program mengmpilkan data suhu.


#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT11 // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
Serial.begin(9600);
Serial.println(F("DHTxx test!"));
dht.begin();
}

void loop() {
delay(2000);
float h = dht.readHumidity();
// Read temperature as Celsius (the default)
float t = dht.readTemperature();
// Read temperature as Fahrenheit (isFahrenheit = true)
float f = dht.readTemperature(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;
}


// Compute heat index in Fahrenheit (the default)
float hif = dht.computeHeatIndex(f, h);
// Compute heat index in Celsius (isFahreheit = false)
float hic = dht.computeHeatIndex(t, h, 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"));
}

Hasilnya sebagai berikut:

Semoga bermanfaat.

Leave a Reply

Your email address will not be published.