#include #include typedef struct { char text[100]; } MessageData; MessageData msg; uint8_t peerAddress[] = { 0x3C, 0x0F, 0x02, 0xDD, 0x62, 0x94 }; void OnDataSent( const wifi_tx_info_t *tx_info, esp_now_send_status_t status) { Serial.print("Send Status: "); if(status == ESP_NOW_SEND_SUCCESS) Serial.println("SUCCESS"); else Serial.println("FAILED"); } void OnDataRecv( const esp_now_recv_info_t *recv_info, const uint8_t *incomingData, int len) { MessageData incomingMsg; memcpy( &incomingMsg, incomingData, sizeof(incomingMsg)); Serial.print("Received: "); Serial.println(incomingMsg.text); } void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); WiFi.disconnect(); Serial.println("ESP32-C3 Ready"); if(esp_now_init() != ESP_OK) { Serial.println("ESP-NOW Init Failed"); return; } esp_now_register_send_cb(OnDataSent); esp_now_register_recv_cb(OnDataRecv); esp_now_peer_info_t peerInfo = {}; memcpy( peerInfo.peer_addr, peerAddress, 6); peerInfo.channel = 0; peerInfo.encrypt = false; esp_now_add_peer(&peerInfo); } void loop() { if(Serial.available()) { String text = Serial.readStringUntil('\n'); text.trim(); if(text.length()) { memset( msg.text, 0, sizeof(msg.text)); text.toCharArray( msg.text, sizeof(msg.text)); esp_now_send( peerAddress, (uint8_t *)&msg, sizeof(msg)); Serial.print("Sent: "); Serial.println(text); } } }