ESP 32 Sensor Temperature & Humidity DHT with LCD 12C - Arduino IDE

ESP 32 Sensor Temperature & Humidity DHT with LCD 12C - Arduino IDE

Tujuan

Kali ini kita akan melakukan pemograman ESP 32 dengan membaca nilai input dari sensor DHT yaitu berupa Humidity dan Temperature ruangan dan menampilkan nilai pembacaan ke LCD 16x2 I2C. 

Persiapan

  • ESP 32 board harus sudah terinstall di Arduino IDE, caranya disini
  • Download library Liquid Crystal I2C, dapatkan disini
  • Install Library DHT di Library Manager , beserta adafruit library ketika kita menginstall 

Schematic

LCD 16x2 yang saya pakai menggunakan I2C modul, jadi kita tidak memerlukan banyak GPIO yang dihubungkan ke ESP32 dikarenakan keterbatasan GPIO cukup dengan 2 Pin yaitu pin SDA dan SCL. Dan untuk sensor DHT disini saya menggunakan tipe DHT 11 yang sudah mempunyai 3 pin, (Out, + , - ). Untuk masing-masing penyambungan pin bisa dilihat di bawah ini :

LCD    --> ESP32

SDA     --> GPIO 21 (SDA)

SCL      --> GPIO 22 (SCL)

VCC     --> 5 Vdc

GND     -->  Gnd


DHT    --> ESP32

Out     --> GPIO 4 

+         --> 5 Vdc

-          -->  Gnd

Monitoring Humidity & Temperature sensor  from ESP 32


Code

Untuk pemogramanya kita akan menggunakan Arduino IDE, dan kita memerlukan library LCD 16x2 I2C, untuk library nya bisa di download disini. Setelah di download kita extract filenya dan masukkan ke folder libraries Arduino. Selanjutnya kita masuk ke Arduino IDE. Juga memerlukan library DHT dan Adafruit.

Pertama kita masukkan dahulu library I2C dan sensor DHT.

#include <LiquidCrystal_I2C.h>

#include <DHT.h> 

Kemudian kita setting konfigurasi LCD I2C dan sensor DHT.

#define DHTPIN 4

#define DHTTYPE DHT11   

LiquidCrystal_I2C lcd(0x27, 16, 2);  //0x27 address //16,2 jumlah kolom dan baris LCD

DHT dht(DHTPIN, DHTTYPE); 

Pada void setup() kita mulai LCD dan DHT.

 void setup()
{
 dht.begin();             // memluai sensor DHT
 lcd.init();                   // initialisasi LCD 
 lcd.backlight();         // turn on LCD backlight                     
 Serial.begin(115200);    // serial komunikasi

}

Pada void loop () kita mulai membaca hasil pengukuran sensor DHT11 nya dan ditampilkan ke LCD 16x2.

void loop(){
  float h = dht.readHumidity();        // Pembacaan nilai humidity
  float t = dht.readTemperature();     // Pembacaan nilai temperature
  delay(1000);                                    // tunda 1 detik
  lcd.clear();                                        // bersihkan layar LCD
  lcd.setCursor(0, 0);                            // atur posisi penulisan di LCD baris 0 kolom 0
  lcd.print("Humi: ");                            // tampilkan tulisan string "Humi :"
  lcd.print(h);                                        // tampilkan nilai float humidity DHT11
  lcd.print(" %");                                
  lcd.setCursor(0, 1);                            // atur posisi penulisan di LCD baris 1 kolom 0
  lcd.print("Temp: ");                            // tampilkan tulisan string "Temp :"
  lcd.print(t);                                        // tampilkan nilai float temperature DHT11
  lcd.print(" ");
  lcd.print((char)223);                           // tampilan simbol derajat
  lcd.print("C");  

  } 

Full Code

#include <LiquidCrystal_I2C.h>
#include <DHT.h>  
#define DHTPIN 4
#define DHTTYPE DHT11    
LiquidCrystal_I2C lcd(0x27, 16, 2);  //0x27 address //16,2 jumlah kolom dan baris LCD

DHT dht(DHTPIN, DHTTYPE); 

 void setup()
{
 dht.begin();             // memluai sensor DHT
 lcd.init();                   // initialisasi LCD 
 lcd.backlight();         // turn on LCD backlight                     
 Serial.begin(115200);    // serial komunikasi

}

void loop(){
  float h = dht.readHumidity();        // Pembacaan nilai humidity
  float t = dht.readTemperature();     // Pembacaan nilai temperature
  delay(1000);                                    // tunda 1 detik
  lcd.clear();                                        // bersihkan layar LCD
  lcd.setCursor(0, 0);                            // atur posisi penulisan di LCD baris 0 kolom 0
  lcd.print("Humi: ");                            // tampilkan tulisan string "Humi :"
  lcd.print(h);                                        // tampilkan nilai float humidity DHT11
  lcd.print(" %");                                
  lcd.setCursor(0, 1);                            // atur posisi penulisan di LCD baris 1 kolom 0
  lcd.print("Temp: ");                            // tampilkan tulisan string "Temp :"
  lcd.print(t);                                        // tampilkan nilai float temperature DHT11
  lcd.print(" ");
  lcd.print((char)223);                           // tampilan simbol derajat
  lcd.print("C");  

  } 

 Upload Code

  • Tools --> Board --> ESP32 Arduino --> ESP32 Dev Module
  • Tools --> PORT --> Click available port
  • Sketch --> Upload --> wait "Connecting .... " --> push boot/flash button ESP32

Result

Hasilnya akan seperti ini, jika tidak coba periksa lagi program dan diagram anda.


Komentar

Posting Komentar

Postingan populer dari blog ini

ESP 32 Membuat ESP32 Web Server - Arduino IDE

ESP 32 Koneksi ke Jaringan Wifi

ESP 32 Control LED From Firebase Real Time Database