#define BLYNK_PRINT Serial
#define BLYNK_TEMPLATE_ID "TMPL60ZPT6XSg"
#define BLYNK_TEMPLATE_NAME "003 servo midterm"
#define BLYNK_AUTH_TOKEN "GZXaJguqUsxQpzSBAJ4uQm1Zjd4Wf7Gr"
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <ESP32Servo.h>
Servo motor1;
Servo motor2;
int red_1 = 18;
int red_2 = 19;
int blue_1 = 17;
int blue_2 = 16;
int green = 4;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
void setup(){
Serial.begin(115200);
Blynk.begin(auth,ssid,pass);
motor1.attach(5);
motor2.attach(2);
pinMode(red_1, OUTPUT);
pinMode(red_2, OUTPUT);
pinMode(blue_1, OUTPUT);
pinMode(blue_2, OUTPUT);
}
BLYNK_WRITE(V3){
motor1.write(param.asInt());
int angle = param.asInt();
angle = constrain(angle,0,180);
motor2.write(180 - angle);
motor1.write(0);
}
BLYNK_WRITE(V0){
int led = param.asInt();
if(led == 1){
motor1.write(0);
digitalWrite(red_1, 1);
digitalWrite(red_2, 1);
digitalWrite(blue_1, 1);
digitalWrite(blue_2, 1);
}else {
motor1.write(180);
motor2.write(90);
digitalWrite(red_1, 1);
digitalWrite(red_2, 1);
digitalWrite(blue_1, 0);
digitalWrite(blue_1, 0);
}
}
BLYNK_WRITE(V1){
int led = param.asInt();
if(led == 1){
motor1.write(0);
digitalWrite(red_1, 1);
digitalWrite(red_2, 1);
digitalWrite(blue_1, 1);
digitalWrite(blue_2, 1);
}else {
digitalWrite(red_1, 0);
digitalWrite(red_2, 0);
digitalWrite(blue_1, 0);
digitalWrite(blue_2, 0);
}
}
BLYNK_WRITE(V2){
int led = param.asInt();
if(led == 1){
motor2.write(90);
digitalWrite(red_1, 1);
digitalWrite(red_2, 1);
}else {
digitalWrite(red_1, 0);
digitalWrite(red_2, 0);
}
}
void loop(){
Blynk.run();
}