45 lines
889 B
C

// ESPNOW
#include <esp_now.h>
#include <WiFi.h>
// Packet Data Structure
struct PacketData {
uint8_t X; // Steering (left/right)
uint8_t Y; // Throttle (forward/backward)
bool B; // Button
};
// Data Received From Remote
PacketData data;
// ESP-NOW callback
void OnDataRecv(const esp_now_recv_info *info, const uint8_t *data, int len) {
if (len == sizeof(PacketData)) {
memcpy(&data, data, sizeof(PacketData));
}
}
// Function To Start ESPNOW
void espnow_begin() {
// ESP-NOW setup
WiFi.mode(WIFI_STA);
if (esp_now_init() != ESP_OK) {
Serial.println("ESP-NOW init failed");
return;
}
delay(100);
// Print MAC Address
Serial.println(WiFi.macAddress());
delay(2000);
// When Receive Data Execute OnDataRecv Function
esp_now_register_recv_cb(OnDataRecv);
}