arduino mengakses sensor DHT11

Cara mengakses sensor DHT11 menggunakan Arduino

Penjelasan Singkat

Sensor DHT11 adalah module sensor yang berfungsi untuk mensensing objek suhu dan kelembaban yang memiliki output tegangan analog yang dapat diolah lebih lanjut menggunakan mikrokontroler.

Module sensor ini tergolong kedalam elemen resistif seperti perangkat pengukur suhu seperti contohnya yaitu NTC.

Kelebihan dari module sensor ini dibanding module sensor lainnya yaitu dari segi kualitas pembacaan data sensing yang lebih responsif yang memliki kecepatan dalam hal sensing objek suhu dan kelembaban, dan data yang terbaca tidak mudah terinterverensi.

Sensor DHT11 pada umumya memiliki fitur kalibrasi nilai pembacaan suhu dan kelembaban yang cukup akurat.

Penyimpanan data kalibrasi tersebut terdapat pada memori program OTP yang disebut juga dengan nama koefisien kalibrasi.

Sensor ini memiliki 4 kaki pin, dan terdapat juga sensor DHT11 dengan breakout PCB yang terdapat hanya memilik 3 kaki pin seperti gambar dibawah ini

Sensor DHT11

Bentuk Fisik DHT11

Spesifikasi :

  • Tegangan masukan : 5 Vdc
  • Rentang temperatur :0-50 ° C kesalahan ± 2 ° C
  • Kelembaban :20-90% RH ± 5% RH error

Tutorial cara mengakses Sensor DHT11 menggunakan Arduino Uno

Bahan yang diperlukan :

WiringS Schematic

Tutorial cara mengakses DHT11 menggunakan Arduino simpel

Skema yang perlu dirangkaikan

Hal yang perlu diperhatikan yaitu dikarenakan pada software IDE arduino tidak ada library DHT11 maka perlu ditambahkan dahulu untuk memudahkan dalam pemrogramannya.

Langkah – langkah untuk installing library DHT11 dengan catatan terhubung internet :

  1. Buka Software arduino uno IDE
  2. Arahkan cursor pada menu sketch -> include libraries -> manage libraries
  3. Ketikan “DHT11
  4. Pilih “DHT Sensor Library by Adafruit
  5. Klik install dan closed

how to installing libraries dht11

Contoh kode untuk pemrogramannya

/* --- www.nyebarilmu.com --- */
#include "DHT.h" //library sensor yang telah diimportkan
#define DHTPIN 2     //Pin apa yang digunakan
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600); //baud komunikasi serial
  Serial.println("Pengujian DHT11!"); //penulisan di serial monitor
  dht.begin(); //prosedur memulai pembacaan module sensor
}

void loop() {
  delay(2000);  //menunggu beberapa detik untuk pembacaan

  //pembacaan sensor membutuhkan waktu 250ms

  //Pembacaan untuk data kelembaban
  float humidity_1 = dht.readHumidity();
  //Pembacaan dalam format celcius (c)
  float celcius_1 = dht.readTemperature();
  //pembacaan dalam format Fahrenheit
  float fahrenheit_1 = dht.readTemperature(true);

  //mengecek pembacaan apakah terjadi kegagalan atau tidak
  if (isnan(humidity_1) || isnan(celcius_1) || isnan(fahrenheit_1)) {
    Serial.println("Pembacaan data dari module sensor gagal!");
    return;
  }

  float htof = dht.computeHeatIndex(fahrenheit_1, humidity_1);
  //Prosedur pembacaaan data indeks panas dalam bentuk fahreheit
  float htoc = dht.computeHeatIndex(celcius_1, humidity_1, false);
 //Prosedur pembacaaan data indeks panas dalam bentuk celcius

  //pembacaan nilai pembacaan data kelembaban
  Serial.print("Kelembaban: ");
  Serial.print(humidity_1);
  Serial.print(" %\t");

  //pembacaan nilai pembacaan data suhu
  Serial.print("Suhu : ");
  Serial.print(celcius_1); //format derajat celcius
  Serial.print("°"); //simbol derajat
  Serial.print("C / ");
  Serial.print(fahrenheit_1); //format derajat fahrenheit
  Serial.print("°");
  Serial.print("F\t");

  Serial.print("Indeks Panas: ");
  Serial.print(htof);
  Serial.print("°");
  Serial.print("F / ");
  Serial.print(htoc);
  Serial.print("°");
  Serial.println("C ");

}

Hasil pembacaan dapat diamati pada serial monitor.

serial monitoring DHT11 dan Arduino


Tutorial cara mengakses Sensor DHT11 dengan display LCD 16×2

Bahan – bahan yang diperlukan :

  1. Arduino Uno atau Nano
  2. Module suhu dan kelembaban
  3. Kabel jumper male to female male 8 pcs
  4. Breadboard
  5. LCD 16×2 dan PCF8574
  6. Komputer + arduino IDE

Skema dan wiring

Tutorial cara mengakses DHT11 menggunakan Arduino display LCD 16x2

Langkah – langkah untuk installing library driver PCF8574 dengan catatan terhubung internet :

  1. Buka Software arduino uno IDE
  2. Arahkan cursor pada menu sketch -> include libraries -> manage libraries
  3. Ketikan “PCF8574
  4. Pilih “LiquidCrystal_PCF8574 by Matthias Hertel
  5. Klik install dan closed

Instalasi library driver i2c lcd pcf8574

Sebelum masuk ke program harap dicek dahulu untuk address driver lcd nya menggunakan i2c scanner dapat dicek pada link ini :

[irp posts=”657″ name=”Cara mencari tahu alamat interface i2c module arduino”]

Kode Program komplit

[sociallocker id=1344]

/* --- www.nyebarilmu.com --- */
#include "DHT.h" //library sensor yang telah diimportkan
#include <LiquidCrystal_PCF8574.h>
#include <Wire.h>

#define DHTPIN 2    //Pin apa yang digunakan
#define DHTTYPE DHT11   // DHT 11

LiquidCrystal_PCF8574 lcd(0x27);

DHT dht(DHTPIN, DHTTYPE);

byte pic_termo[8] = //icon for termometer
{
    B00100,
    B01010,
    B01010,
    B01110,
    B01110,
    B11111,
    B11111,
    B01110
};

byte pic_humd[8] = //icon for water droplet
{
    B00100,
    B00100,
    B01010,
    B01010,
    B10001,
    B10001,
    B10001,
    B01110,
};

void setup() {
  Serial.begin(9600); //baud komunikasi serial
  Serial.println("Pengujian DHT11!"); //penulisan di serial monitor
  lcd.begin(16, 2);
  lcd.setBacklight(255);
  lcd.setCursor(0,0);
  lcd.print("TRIAL DHT11");
  lcd.setCursor(0,1);
  lcd.print("nyebarilmu.com");
  delay(2000);
  lcd.clear();
  lcd.createChar(1,pic_termo);
  lcd.createChar(2,pic_humd);
  dht.begin(); //prosedur memulai pembacaan module sensor
}

void loop() {
  delay(2000);  //menunggu beberapa detik untuk pembacaan

  //pembacaan sensor membutuhkan waktu 250ms

  //Pembacaan untuk data kelembaban
  float humidity_1 = dht.readHumidity();
  //Pembacaan dalam format celcius (c)
  float celcius_1 = dht.readTemperature();
  //pembacaan dalam format Fahrenheit
  float fahrenheit_1 = dht.readTemperature(true);

  //mengecek pembacaan apakah terjadi kegagalan atau tidak
  if (isnan(humidity_1) || isnan(celcius_1) || isnan(fahrenheit_1)) {
    Serial.println("Pembacaan data dari module sensor gagal!");
    return;
  }

  float htof = dht.computeHeatIndex(fahrenheit_1, humidity_1);
  //Prosedur pembacaaan data indeks panas dalam bentuk fahreheit
  float htoc = dht.computeHeatIndex(celcius_1, humidity_1, false);
 //Prosedur pembacaaan data indeks panas dalam bentuk celcius

  //pembacaan nilai pembacaan data kelembaban
  Serial.print("Kelembaban: ");
  Serial.print(humidity_1);
  Serial.print(" %\t");

  //pembacaan nilai pembacaan data suhu
  Serial.print("Suhu : ");
  Serial.print(celcius_1); //format derajat celcius
  Serial.print("°"); //simbol derajat
  Serial.print("C / ");
  Serial.print(fahrenheit_1); //format derajat fahrenheit
  Serial.print("°");
  Serial.print("F");

  lcd.setCursor (0,0);
  lcd.print("DHT11 - LCD 16x2");
  lcd.setCursor (0,1);
  lcd.write(1);
  lcd.setCursor (1,1);
  lcd.print(celcius_1);
  lcd.print((char)223);
  lcd.setCursor (9,1);
  lcd.write(2);
  lcd.setCursor (10,1);
  lcd.print(humidity_1);
  lcd.print("%");

}

[/sociallocker]

Edit Libraries untuk menampilkan karakter termometer dan kelembaban

Langkah – langkahnya :

  1. a. Buka file libraries diatas yang telah diinstall pada alamat
    /document/arduino/libraries/LiquidCrystal_PCF8574
  2. b. Buka file .cpp dan .h
  3. c. Edit pada createChar dari “int” menjadi byte

edit libraries pcf8574

Hasil trial diatas

hasil trial dht11 dan lcd 16x2

Program tersebut dapat dimodif dengan menggunakan penampil LCD 16×2 dan aktuator Relay yang dapat dimanfaatkan dalam berbagai aplikasi dalam kehidupan sehari – hari.

Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *