//1911102441018 Muhammad Ijai
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPLVfsjQmg2"
#define BLYNK_DEVICE_NAME "monitoring suhu dan kelembapan"
#define BLYNK_AUTH_TOKEN "WGoJTGgP6LbV4fm1gM_lVBIXP_RiQR-U"
#include <LiquidCrystal_I2C.h>
#define LED 2
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHTesp.h>
LiquidCrystal_I2C lcd(0x27, 20, 4);
const int DHT_PIN = 15;
DHTesp dhtSensor;
char auth[] = "WGoJTGgP6LbV4fm1gM_lVBIXP_RiQR-U";
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
//Get the button value
BLYNK_WRITE(V2)
{
int pinValue = param.asInt();
if (pinValue == 1)
{digitalWrite(2, HIGH);}
else {digitalWrite(2, LOW);}
}
void sendSensor() {
// put your main code here, to run repeatedly:
TempAndHumidity data = dhtSensor.getTempAndHumidity();
Serial.println("Suhu: "+ String(data.temperature, 2)+"˚C");
Serial.println("Kelembapan: "+ String(data.humidity, 1)+"%");
Serial.println("---");
Blynk.virtualWrite(V0, data.temperature);
Blynk.virtualWrite(V1, data.humidity);
}
void setup() {
lcd.init();
lcd.backlight();
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, OUTPUT);
Blynk.begin(auth, ssid, pass);
pinMode(LED, OUTPUT);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
timer.setInterval(1000L, sendSensor);
//Untuk Suhu
lcd.setCursor(0, 0);
lcd.print("Temp :");
lcd.write(0);
lcd.setCursor(13, 0);
lcd.print("C");
//Untuk Kelembapan
lcd.setCursor(0, 1);
lcd.print("Humi :");
lcd.write(1);
lcd.setCursor(13, 1);
lcd.print("%");
}
void loop(){
Blynk.run();
timer.run();
float suhu = dhtSensor.getTemperature();
float kelembapan = dhtSensor.getHumidity();
lcd.setCursor (6,0);
lcd.print(suhu);
lcd.setCursor (6,1);
lcd.print(kelembapan);
}