#define BLYNK_TEMPLATE_ID "TMPL6B3w1QhVu"
#define BLYNK_TEMPLATE_NAME "kandang pitik"
#define BLYNK_AUTH_TOKEN "lHhm--wMod7U7Vuvv7LyoQOk193g9sVk"
//**********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
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;
//*****SERIAL MONITOR, menampilkan data suhu dan kelembaban****
OLED.clearDisplay();
OLED.setCursor(0,0);
OLED.print("Suhu : ");
OLED.print(suhu);
OLED.setCursor(0,10);
OLED.print("Kelembapan: ");
OLED.print(kelembapan);
OLED.display();
//*****BLYNK, kirim nilai sensor*****************************
Blynk.virtualWrite(V0, suhu);
Blynk.virtualWrite(V3, kelembapan);
}
//******blink lampu**(*(**))
BLYNK_WRITE(V1) // Menangani perintah dari tombol Blynk
{
int pinValue = param.asInt();
if (pinValue == 1) {
// Lampu dihidupkan
digitalWrite(2 , HIGH);
} else {
// Lampu dimatikan
digitalWrite(2 , LOW);
}
}
void setup() {
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***********************
Serial.begin(115200);
//*****DHT 22, setting*****************************************
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
}
void loop() {
//********BLYNK, menjalankan blynk****************************
Blynk.run();
timer.run();
}