#define BLYNK_TEMPLATE_ID "TMPL6-kmeDHkZ"
#define BLYNK_TEMPLATE_NAME "Mugiwara"
#define BLYNK_AUTH_TOKEN "3gDXawWgrPcAHBwUJpzXKez_zB2LijQ_"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#define DHTTYPE DHT22 // DHT type
#define DHTPIN 27 // Pin connected to DHT11 sensor
#define LDR_PIN 0 // LDR analog pin
#define LED_PIN V0 // LED pin on Blynk app
#define TRIGGER_PIN 4 // Ultrasonic sensor trigger pin
#define ECHO_PIN 5 // Ultrasonic sensor echo pin
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST"; //nama hotspot yang digunakan
char pass[] = ""; //password hotspot yang digunakan
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
void setup() {
Serial.begin(115200);
pinMode(26, OUTPUT);
Blynk.begin(auth, ssid, pass);
dht.begin();
timer.setInterval(1000L, sendSensorData); // Update sensor data every second
}
void loop() {
Blynk.run();
timer.run();
}
void sendSensorData() {
float temperature = dht.readTemperature();
float humidity = dht.readHumidity();
int lightIntensity = analogRead(LDR_PIN);
// Ultrasonic sensor code
pinMode(TRIGGER_PIN, OUTPUT);
digitalWrite(TRIGGER_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIGGER_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIGGER_PIN, LOW);
pinMode(ECHO_PIN, INPUT);
unsigned long duration = pulseIn(ECHO_PIN, HIGH);
unsigned int distance = duration * 0.034 / 2; // Calculate distance in cm
Blynk.virtualWrite(V3, temperature); // Send temperature to V3 on Blynk app
Blynk.virtualWrite(V4, humidity); // Send humidity to V4 on Blynk app
Blynk.virtualWrite(V2, lightIntensity); // Send light intensity to V2 on Blynk app
Blynk.virtualWrite(V1, distance); // Send distance to V1 on Blynk app
}
BLYNK_WRITE(V0)
{
int pinValue = param.asInt(); // Assign incoming value from pin V0 to a variable
if (pinValue == 1)
{
digitalWrite(26, HIGH); // Turn on LED connected to pin 26
}
else
{
digitalWrite(26, LOW); // Turn off LED connected to pin 26
}
}