ESP32 4 RELAY Control (Blynk)
Wokwi程式
#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL6LesDW5_h"
#define BLYNK_TEMPLATE_NAME "ESP32 4 Relay"
#define BLYNK_AUTH_TOKEN "UehmJvhbd6YtPkMQHkxF2t6iYdWQm__d"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#define BLYNK_PRINT Serial
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
// Define the pins for 4 relays
#define relay1 2
#define relay2 15
#define relay3 4
#define relay4 5
#define buttonPin 12 // Pin for the button to control all relays
int SW_relay1 = 0;
int SW_relay2 = 0;
int SW_relay3 = 0;
int SW_relay4 = 0;
BLYNK_WRITE(V1)
{
SW_relay1 = param.asInt();
controlRelay(relay1, SW_relay1, V1);
}
BLYNK_WRITE(V2)
{
SW_relay2 = param.asInt();
controlRelay(relay2, SW_relay2, V2);
}
BLYNK_WRITE(V3)
{
SW_relay3 = param.asInt();
controlRelay(relay3, SW_relay3, V3);
}
BLYNK_WRITE(V4)
{
SW_relay4 = param.asInt();
controlRelay(relay4, SW_relay4, V4);
}
BLYNK_WRITE(V5)
{
int value = param.asInt();
if (value == 1)
{
// Set all relays to ON
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
}
else
{
// Set all relays to OFF
digitalWrite(relay1, LOW);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, LOW);
}
Blynk.virtualWrite(V1, value);
Blynk.virtualWrite(V2, value);
Blynk.virtualWrite(V3, value);
Blynk.virtualWrite(V4, value);
}
void controlRelay(int pin, int state, int virtualPin)
{
if (state == 1)
{
digitalWrite(pin, HIGH);
Serial.println("Relay terbuka");
Blynk.virtualWrite(virtualPin, HIGH);
}
else
{
digitalWrite(pin, LOW);
Serial.println("Relay tertutup");
Blynk.virtualWrite(virtualPin, LOW);
}
}
void setup()
{
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("ESP32 Blynk");
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // Set buttonPin as input with internal pull-up resistor
Blynk.begin(BLYNK_AUTH_TOKEN ,ssid, pass);
}
void loop()
{
// put your main code here, to run repeatedly:
Blynk.run();
timer.run();
}
沒有留言:
張貼留言