#define BLYNK_TEMPLATE_ID "TMPL6M81WWihp"
#define BLYNK_TEMPLATE_NAME "PROJECT SUHU"
#define BLYNK_AUTH_TOKEN "GJFHzzq4VNtSlIS6bwzcXqauwRVw0vVN"
//***BLYNK, library************
#include <BlynkSimpleEsp32.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
//define lebar dan tinggi oled
#define lebarOLED 128
#define tinggiOLED 64
#define LED 13
Adafruit_SSD1306 OLED(lebarOLED, tinggiOLED, &Wire, -1);
BlynkTimer timer;
//****DHT22, library*************
#include "DHTesp.h"
//***BLYNK, ssid, pass, token*********
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
//****DHT22, deklarasi pin***********
const int DHT_PIN = 15;
DHTesp dhtSensor;
float suhu;
float kelembapan;
//**BLYNK, kirim nilai sensor**********
void sendSensor()
{
//****DHT22, membaca suhu dan kelembaban*******
TempAndHumidity data = dhtSensor.getTempAndHumidity();
suhu=data.temperature;
kelembapan=data.humidity;
OLED.clearDisplay();
//**SERIAL MONITOR, menampilkan data suhu dan kelembaban*
OLED.setCursor(0,0);
OLED.print("Suhu : ");
OLED.print(suhu);
OLED.setCursor(0,10);
OLED.print("Kelembapan: ");
OLED.print(kelembapan);
OLED.display();
if (suhu > 30)
{
digitalWrite(LED,LOW);
}
else
{digitalWrite(LED, HIGH);
}
//**BLYNK, kirim nilai sensor**********
Blynk.virtualWrite(V0, suhu);
Blynk.virtualWrite(V1, kelembapan);
Blynk.virtualWrite(V2, LED);
}
BLYNK_WRITE(V2)
{
int lampu= param.asInt ();
digitalWrite(LED,lampu);
}
void setup() {
pinMode(LED, OUTPUT);
Serial.begin(115200);
if (!OLED.begin(SSD1306_SWITCHCAPVCC, 0x3C))
{
Serial.print(F("Gagal menghubungkan OLED"));
while(1);
}
delay(2000);
OLED.clearDisplay();
OLED.setTextSize(1);
OLED.setTextColor(WHITE);
//***BLYNK, mulai koneksi ke blynk********
Blynk.begin(auth, ssid, pass);
timer.setInterval(1000L, sendSensor);
//**SERIAL MONITOR, setting baud rate********
//**DHT 22, setting**************
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
//***BLYNK, menjalankan blynk*********
Blynk.run();
timer.run();
}