Professional Documents
Culture Documents
Code Code
Code Code
h>
#include <BlynkSimpleEsp32.h>
// WiFi credentials
char ssid[] = "YourWiFiSSID";
char pass[] = "YourWiFiPassword";
BLYNK_READ(VIRTUAL_SPEED_PIN) {
motorSpeed = param.asInt(); // Update motor speed when virtual pin V0 is read
}
BLYNK_READ(VIRTUAL_FORWARD_PIN) {
forwardRequested = param.asInt(); // Update forwardRequested when virtual pin V1 is read
}
BLYNK_READ(VIRTUAL_REVERSE_PIN) {
reverseRequested = param.asInt(); // Update reverseRequested when virtual pin V2 is read
}
void setup() {
// Setup Blynk
Blynk.begin(auth, ssid, pass);
void loop() {
Blynk.run();
// Example logic for gate movement based on forward/reverse requests and limit switch status
if (forwardRequested && digitalRead(LIMIT_SWITCH_A)) {
// Move gate in forward direction
analogWrite(MOTOR_A_PWM, motorSpeed);
digitalWrite(MOTOR_A_FWD, HIGH);
digitalWrite(MOTOR_A_REV, LOW);
analogWrite(MOTOR_B_PWM, motorSpeed);
digitalWrite(MOTOR_B_FWD, HIGH);
digitalWrite(MOTOR_B_REV, LOW);
} else if (reverseRequested && digitalRead(LIMIT_SWITCH_B)) {
// Move gate in reverse direction
analogWrite(MOTOR_A_PWM, motorSpeed);
digitalWrite(MOTOR_A_FWD, LOW);
digitalWrite(MOTOR_A_REV, HIGH);
analogWrite(MOTOR_B_PWM, motorSpeed);
digitalWrite(MOTOR_B_FWD, LOW);
digitalWrite(MOTOR_B_REV, HIGH);
} else {
// Stop gate movement
analogWrite(MOTOR_A_PWM, 0);
analogWrite(MOTOR_B_PWM, 0);
}
}