#define BLYNK_TEMPLATE_ID "TMPL6EwoyrRWY"
#define BLYNK_TEMPLATE_NAME "RoBoCar"
#define BLYNK_AUTH_TOKEN "FBmhajHbOvGeorggamjIc3vBP6b8iaRm"
#define BLYNK_PRINT Serial
#include <BlynkSimpleEsp32.h>
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
BlynkTimer timer;
// Motor control pins
const int motor1Pin1 = 16; // IN1
const int motor1Pin2 = 17; // IN2
const int motor2Pin1 = 18; // IN3
const int motor2Pin2 = 19; // IN4
void setup() {
// Start serial communication
Serial.begin(9600);
// Set motor pins as outputs
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(motor2Pin1, OUTPUT);
pinMode(motor2Pin2, OUTPUT);
// Connect to Blynk
//Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, "blynk.cloud", 80);
//Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass, IPAddress(192,168,1,100), 8080);
}
void loop() {
Blynk.run(); // Runs Blynk
timer.run();
}
// Forward
BLYNK_WRITE(V1) {
if (param.asInt() == 1) {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
}
// Backward
BLYNK_WRITE(V2) {
if (param.asInt() == 1) {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
}
}
// Left
BLYNK_WRITE(V3) {
if (param.asInt() == 1) {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, HIGH);
digitalWrite(motor2Pin1, HIGH);
digitalWrite(motor2Pin2, LOW);
}
}
// Right
BLYNK_WRITE(V4) {
if (param.asInt() == 1) {
digitalWrite(motor1Pin1, HIGH);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, HIGH);
}
}
// Stop
BLYNK_WRITE(V5) {
if (param.asInt() == 1) {
digitalWrite(motor1Pin1, LOW);
digitalWrite(motor1Pin2, LOW);
digitalWrite(motor2Pin1, LOW);
digitalWrite(motor2Pin2, LOW);
}
}