#include #include typedef struct { bool buttonPressed; } joystickData; joystickData dataToSend; uint8_t receiverMAC[] = {0x18, 0x8B, 0x0E, 0x93, 0xA3, 0xC4}; // Replace with receiver MAC const int swPin = 2; // Joystick button pin void onSent(const uint8_t *mac_addr, esp_now_send_status_t status) { Serial.print("Send Status: "); Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Success" : "Fail"); } void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); pinMode(swPin, INPUT_PULLUP); // Joystick button (active LOW) if (esp_now_init() != ESP_OK) { Serial.println("ESP-NOW init failed!"); return; } esp_now_register_send_cb(onSent); esp_now_peer_info_t peerInfo = {}; memcpy(peerInfo.peer_addr, receiverMAC, 6); peerInfo.channel = 0; peerInfo.encrypt = false; if (esp_now_add_peer(&peerInfo) != ESP_OK) { Serial.println("Failed to add peer"); return; } } void loop() { // Button pressed = LOW → true dataToSend.buttonPressed = digitalRead(swPin) == LOW; Serial.print("Button: "); Serial.println(dataToSend.buttonPressed ? "PRESSED" : "NOT PRESSED"); esp_now_send(receiverMAC, (uint8_t *)&dataToSend, sizeof(dataToSend)); delay(200);