#define BLYNK_PRINT Serial
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define SSID "Wokwi-GUEST"
#define PASSWORD ""
#define BLYNK_TEMPLATE_ID "TMPL0QKhgaaH"
#define BLYNK_DEVICE_NAME "Project"
#define BLYNK_AUTH_TOKEN "D1qwadVcZpWC5P1BqS_Nt-YvMtkUAv8W"
//int LED_Pump = 15; // กำหนดขา Pin LED
int Relay_1 = 15; // Forward
int Relay_2 = 2; // Backward
int Relay_3 = 4; // Propeller
typedef enum
{
RELAY_1_NONE =0, //ไม่มีคำสั่ง
RELAY_1_ON, //คำสั่งเปิดมอเตอร์
RELAY_1_OFF, //คำสั่งปิดมอเตอร์
}RELAY_1_en;
typedef enum
{
RELAY_2_NONE =0, //ไม่มีคำสั่ง
RELAY_2_ON, //คำสั่งเปิดมอเตอร์
RELAY_2_OFF, //คำสั่งปิดมอเตอร์
}RELAY_2_en;
typedef enum
{
RELAY_3_NONE =0, //ไม่มีคำสั่ง
RELAY_3_ON, //คำสั่งเปิดมอเตอร์
RELAY_3_OFF, //คำสั่งปิดมอเตอร์
}RELAY_3_en;
RELAY_1_en relay_1;
RELAY_2_en relay_2;
RELAY_3_en relay_3;
BLYNK_WRITE(V0)
{
if(param.asInt())
{
Serial.println("Pump 1 on recv");
relay_1 = RELAY_1_ON;
}
else
{
Serial.println("Pump 1 off recv");
relay_1 = RELAY_1_OFF;
}
}
BLYNK_WRITE(V1)
{
if(param.asInt())
{
Serial.println("Pump 2 on recv");
relay_2 = RELAY_2_ON;
}
else
{
Serial.println("Pump 2 off recv");
relay_2 = RELAY_2_OFF;
}
}
BLYNK_WRITE(V2)
{
if(param.asInt())
{
Serial.println("Pump 3 on recv");
relay_3 = RELAY_3_ON;
}
else
{
Serial.println("Pump 3 off recv");
relay_3 = RELAY_3_OFF;
}
}
void Relay_1_SwitchON()
{
Blynk.virtualWrite(V3, 1);
digitalWrite(Relay_1,HIGH);
delay(15);
}
void Relay_2_SwitchON()
{
Blynk.virtualWrite(V4, 1);
digitalWrite(Relay_2,HIGH);
delay(15);
}
void Relay_3_SwitchON()
{
Blynk.virtualWrite(V5, 1);
digitalWrite(Relay_3,HIGH);
delay(15);
}
void Relay_1_SwitchOFF()
{
Blynk.virtualWrite(V3, 0);
digitalWrite(Relay_1,LOW);
delay(15);
}
void Relay_2_SwitchOFF()
{
Blynk.virtualWrite(V4, 0);
digitalWrite(Relay_2,LOW);
delay(15);
}
void Relay_3_SwitchOFF()
{
Blynk.virtualWrite(V5, 0);
digitalWrite(Relay_3,LOW);
delay(15);
}
void setup()
{
Serial.begin(9600); // ความเร็ว Serial Port 9600
Serial.println("Start your Engine");
pinMode(Relay_1, OUTPUT);
pinMode(Relay_2, OUTPUT);
pinMode(Relay_3, OUTPUT);
WiFi.begin(SSID, PASSWORD); // WiFi เริ่มทำงาน
Serial.printf("WiFi connecting to %s\n", SSID);
while (WiFi.status() != WL_CONNECTED) // check การเชื่อมต่อ WiFi วนลูปจนกว่าจะต่อ WiFi ได้
{
Serial.print(".");
delay(400);
}
Serial.printf("\nWiFi connected\nIP : ");
Serial.println(WiFi.localIP()); // แสดงค่า IP Address ที่ต่อ WiFi ได้ ออกทาง Serial Port
Blynk.begin(BLYNK_AUTH_TOKEN, SSID, PASSWORD, "blynk.cloud", 80); //เชื่อมต่อ Blynk Server
}
void loop()
{
Blynk.run(); // รัน blynk
delay(100);
switch(relay_1)
{
case RELAY_1_NONE: Relay_1_SwitchOFF(); break;
case RELAY_1_ON: Relay_1_SwitchON(); break;
case RELAY_1_OFF: Relay_1_SwitchOFF(); break;
}
switch(relay_2)
{
case RELAY_2_NONE: Relay_2_SwitchOFF(); break;
case RELAY_2_ON: Relay_2_SwitchON(); break;
case RELAY_2_OFF: Relay_2_SwitchOFF(); break;
}
switch(relay_3)
{
case RELAY_3_NONE: Relay_3_SwitchOFF(); break;
case RELAY_3_ON: Relay_3_SwitchON(); break;
case RELAY_3_OFF: Relay_3_SwitchOFF(); break;
}
}