#define BLYNK_TEMPLATE_ID "TMPL6Yw6Mgf_c"
#define BLYNK_TEMPLATE_NAME "Quickstart Template"
#define BLYNK_AUTH_TOKEN "KjuWf0PbGL7OPAeltuPaBsiZpSscfNpb"
#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
void myTimerEvent()
{
// You can send any value at any time.
// Please don't send more that 10 values per second.
Blynk.virtualWrite(V2, millis() / 1000);
}
BLYNK_WRITE(V0)
{
int ldrValue = param.asInt();
digitalWrite(27, ldrValue);
//Blynk.virtualWrite(V0, ldrValue);
}
BLYNK_WRITE(V1)
{
int rainValue = param.asInt();
digitalWrite(33, rainValue);
Blynk.virtualWrite(V4, rainValue);
}
BLYNK_WRITE(V6)
{
int startValue = param.asInt();
digitalWrite(23, startValue);
// Blynk.virtualWrite(V4, rainValue);
}
BLYNK_WRITE(V7)
{
int endValue = param.asInt();
digitalWrite(22, endValue);
// Blynk.virtualWrite(V4, rainValue);
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
pinMode(27, OUTPUT); // active low
pinMode(25, OUTPUT);
pinMode(32, INPUT); // pass
pinMode(33, OUTPUT); // pass
pinMode(16, OUTPUT);
pinMode(25, OUTPUT);
pinMode(23, OUTPUT);
pinMode(22, OUTPUT);
digitalWrite(25, LOW);
timer.setInterval(1000L, myTimerEvent);
digitalWrite(33, LOW);
}
void loop() {
Serial.begin(115200);
Blynk.run();
timer.run();
int LDR = digitalRead(27);
int Humid = analogRead(32);
int Rain = digitalRead(33);
int motor = digitalRead(16);
int black01 = digitalRead(23); // ต้น
int black02 = digitalRead(22); // ปลาย
Serial.println("Value LDR : " +String(LDR));
int val = map(Humid, 0, 4055, 0, 100);
Serial.println("Value humid : " +String(val));
Serial.println("Value rain : " + String(Rain));
Blynk.virtualWrite(V5, val);
// digitalWrite(25, HIGH);
//จากต้นไปปลาย
if(LDR == 0 && Rain == 0)
{
while(digitalRead(23) == HIGH && digitalRead(22) == LOW)
{
digitalWrite(25, HIGH);
}
digitalWrite(25, LOW);
}
//Normal case Open จากปลายเก็บมาต้น
else if (LDR == 0 && Rain == 1)
{
while(digitalRead(23) == LOW && digitalRead(22) == HIGH)
{
digitalWrite(25, HIGH);
if(digitalRead(23) == LOW && digitalRead(22) == LOW)
digitalWrite(25, HIGH);
}
digitalWrite(25, LOW);
}
//จากต้นไปปลาย
else if(LDR == 1 && Rain == 0)
{
while(digitalRead(23) == HIGH && digitalRead(22) == LOW)
{
digitalWrite(25, HIGH);
}
digitalWrite(25, LOW);
}
//Normal case Open จากปลายเก็บมาต้น
else if (LDR == 1 && Rain == 1)
{
while(digitalRead(23) == LOW && digitalRead(22) == HIGH)
{
digitalWrite(25, HIGH);
if(digitalRead(23) == LOW && digitalRead(22) == LOW)
digitalWrite(25, HIGH);
}
digitalWrite(25, LOW);
}
}