#include #include // ---------- TOUCH PINS ---------- #define TOUCH1 1 #define TOUCH2 2 #define TOUCH3 3 #define TOUCH4 7 #define TOUCH5 8 #define TOUCH6 6 // ---------- RECEIVER MAC ---------- uint8_t receiverMAC[] = {0xE8, 0xF6, 0x0A, 0x8D, 0x16, 0xF8}; // CHANGE if needed // ---------- THRESHOLDS ---------- int threshold[6] = { 100000, // sensor 1 100000, // sensor 2 100000, // sensor 3 100000, // sensor 4 100000, // sensor 5 100000 // sensor 6 }; // ---------- STATES ---------- bool pressed[6] = {false,false,false,false,false,false}; void sendTouch(char c) { esp_now_send(receiverMAC, (uint8_t*)&c, 1); Serial.printf("[SENDER] SENT: %c\n", c); } void setup() { Serial.begin(115200); delay(1000); Serial.println("=== FINAL SENDER STARTING ==="); WiFi.mode(WIFI_STA); if (esp_now_init() != ESP_OK) { Serial.println("ESP-NOW FAILED"); return; } esp_now_peer_info_t peerInfo = {}; memcpy(peerInfo.peer_addr, receiverMAC, 6); peerInfo.channel = 0; peerInfo.encrypt = false; esp_now_add_peer(&peerInfo); Serial.println("=== FINAL SENDER READY ==="); } void loop() { int val[6]; val[0] = touchRead(TOUCH1); val[1] = touchRead(TOUCH2); val[2] = touchRead(TOUCH3); val[3] = touchRead(TOUCH4); val[4] = touchRead(TOUCH5); val[5] = touchRead(TOUCH6); Serial.printf( "T1:%d | T2:%d | T3:%d | T4:%d | T5:%d | T6:%d\n", val[0], val[1], val[2], val[3], val[4], val[5] ); for (int i = 0; i < 6; i++) { // TOUCH DETECTED if (val[i] > threshold[i] && !pressed[i]) { sendTouch('1' + i); pressed[i] = true; } // RELEASE DETECTED if (val[i] < threshold[i] - 20000) { pressed[i] = false; } } delay(100); }