#include <esp_now.h>
#include <WiFi.h>
#include <ESP32Servo.h>
struct DataPacket{
int j1x;
int j1y;
int j2x;
int j2y;
bool b1;
bool b2;
bool b3;
bool b4;
};
DataPacket data;
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
#define LED1 23
#define LED2 22
#define LED3 21
#define LED4 19
void OnDataRecv(const esp_now_recv_info *info, const uint8_t *incomingData, int len){
memcpy(&data, incomingData, sizeof(data));
int s1 = map(data.j1x,0,4095,0,180);
int s2 = map(data.j1y,0,4095,0,180);
int s3 = map(data.j2x,0,4095,0,180);
int s4 = map(data.j2y,0,4095,0,180);
servo1.write(s1);
servo2.write(s2);
servo3.write(s3);
servo4.write(s4);
digitalWrite(LED1,data.b1);
digitalWrite(LED2,data.b2);
digitalWrite(LED3,data.b3);
digitalWrite(LED4,data.b4);
Serial.print("Servo1: ");
Serial.print(s1);
Serial.print(" Servo2: ");
Serial.print(s2);
Serial.print(" Servo3: ");
Serial.print(s3);
Serial.print(" Servo4: ");
Serial.println(s4);
}
void setup(){
Serial.begin(115200);
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
servo1.attach(18);
servo2.attach(5);
servo3.attach(17);
servo4.attach(16);
WiFi.mode(WIFI_STA);
if (esp_now_init() != ESP_OK) {
Serial.println("ESP NOW Init Failed");
return;
}
esp_now_register_recv_cb(OnDataRecv);
}
void loop(){}