#define BLYNK_TEMPLATE_ID "TMPL6S_gUXvAD"
#define BLYNK_TEMPLATE_NAME "Savira Intania 2311012024"
#define BLYNK_AUTH_TOKEN "dITHxFH2oaY8eFrYmSLRXXlhywwtvhiK"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <DHT.h>
#include <ESP32Servo.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
#define POMPA_PIN 17
#define LAMPU_PIN 5
#define KIPAS_PIN 14
#define BUZZER_PIN 12
#define SERVO_PIN 13
#define DHT_PIN 4
#define DHT_TYPE DHT22
#define SOIL_PIN 34
#define LDR_PIN 35
#define TRIG_PIN 18
#define ECHO_PIN 19
#define PIR_PIN 21
#define GAS_PIN 32
#define RAIN_PIN 25
#define AIR_PIN 33
#define DOOR_PIN 26
DHT dht(DHT_PIN, DHT_TYPE);
BlynkTimer timer;
Servo myServo;
BLYNK_WRITE(V0) { digitalWrite(POMPA_PIN, param.asInt()); }
BLYNK_WRITE(V1) { digitalWrite(LAMPU_PIN, param.asInt()); }
BLYNK_WRITE(V12) { digitalWrite(KIPAS_PIN, param.asInt()); }
BLYNK_WRITE(V13) {
if(param.asInt() == 1) tone(BUZZER_PIN, 1000);
else noTone(BUZZER_PIN);
}
BLYNK_WRITE(V14) {
if(param.asInt() == 1) myServo.write(90);
else myServo.write(0);
}
void sendSensorData() {
float t = dht.readTemperature();
float h = dht.readHumidity();
if (!isnan(t) && !isnan(h)) {
Blynk.virtualWrite(V2, t);
Blynk.virtualWrite(V3, h);
}
Blynk.virtualWrite(V4, map(analogRead(SOIL_PIN), 0, 4095, 0, 100));
Blynk.virtualWrite(V5, map(analogRead(LDR_PIN), 0, 4095, 0, 100));
digitalWrite(TRIG_PIN, LOW); delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH); delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration = pulseIn(ECHO_PIN, HIGH);
Blynk.virtualWrite(V6, duration * 0.034 / 2);
Blynk.virtualWrite(V7, digitalRead(PIR_PIN));
Blynk.virtualWrite(V8, map(analogRead(GAS_PIN), 0, 4095, 0, 100));
Blynk.virtualWrite(V9, !digitalRead(RAIN_PIN));
Blynk.virtualWrite(V10, map(analogRead(AIR_PIN), 0, 4095, 0, 100));
Blynk.virtualWrite(V11, !digitalRead(DOOR_PIN));
}
void setup() {
Serial.begin(115200);
pinMode(POMPA_PIN, OUTPUT);
pinMode(LAMPU_PIN, OUTPUT);
pinMode(KIPAS_PIN, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
myServo.attach(SERVO_PIN);
myServo.write(0);
dht.begin();
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(PIR_PIN, INPUT);
pinMode(RAIN_PIN, INPUT_PULLUP);
pinMode(DOOR_PIN, INPUT_PULLUP);
Blynk.begin(auth, ssid, pass, "blynk.cloud", 80);
timer.setInterval(2000L, sendSensorData);
}
void loop() {
Blynk.run();
timer.run();
}Loading
esp32-devkit-c-v4
esp32-devkit-c-v4
Savira Intania - 2311012024 - Smart Greenhouse