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
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 :
- Arduino Uno
- Komputer + Software IDE Arduino
- Sensor DHT11
- Resistor 4.7 KΩ
- Breadboard
- Kabel Jumper
WiringS Schematic
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 :
- Buka Software arduino uno IDE
- Arahkan cursor pada menu sketch -> include libraries -> manage libraries
- Ketikan “DHT11“
- Pilih “DHT Sensor Library by Adafruit“
- Klik install dan closed
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.
Tutorial cara mengakses Sensor DHT11 dengan display LCD 16×2
Bahan – bahan yang diperlukan :
- Arduino Uno atau Nano
- Module suhu dan kelembaban
- Kabel jumper male to female male 8 pcs
- Breadboard
- LCD 16×2 dan PCF8574
- Komputer + arduino IDE
Skema dan wiring
Langkah – langkah untuk installing library driver PCF8574 dengan catatan terhubung internet :
- Buka Software arduino uno IDE
- Arahkan cursor pada menu sketch -> include libraries -> manage libraries
- Ketikan “PCF8574“
- Pilih “LiquidCrystal_PCF8574 by Matthias Hertel“
- Klik install dan closed
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 :
- a. Buka file libraries diatas yang telah diinstall pada alamat
“/document/arduino/libraries/LiquidCrystal_PCF8574“ - b. Buka file .cpp dan .h
- c. Edit pada createChar dari “int” menjadi byte
Hasil trial diatas
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!