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
Code
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 LCDDHT 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
Mantap abang ,salam dari jhon prutechnik 🙏 🙇🙏
BalasHapusTerima kasih jhon, salam ^_^
Hapus