|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
#include <Arduino.h> #include <esp_now.h> #include <WiFi.h> // MAC de tu receptor (Wemos D1) uint8_t broadcastAddress[] = {0x5C, 0xCF, 0x7F, 0x6A, 0xA3, 0x69}; typedef struct struct_message { char msg[32]; // Aquí guardaremos "Hola" + el número int id; } struct_message; struct_message myData; esp_now_peer_info_t peerInfo; void OnDataSent(const uint8_t *mac_addr, esp_now_send_status_t status) { Serial.print("\r\nStatus: "); Serial.println(status == ESP_NOW_SEND_SUCCESS ? "Envío OK" : "Fallo"); } void setup() { Serial.begin(115200); WiFi.mode(WIFI_STA); if (esp_now_init() != ESP_OK) return; esp_now_register_send_cb(OnDataSent); memcpy(peerInfo.peer_addr, broadcastAddress, 6); peerInfo.channel = 0; peerInfo.encrypt = false; esp_now_add_peer(&peerInfo); // Importante para que el número aleatorio cambie de verdad en cada reinicio randomSeed(analogRead(0)); } void loop() { static int contador = 0; myData.id = contador++; // Generamos el número aleatorio entre 0 y 10000 long numeroAleatorio = random(0, 10001); // Juntamos la palabra "Hola" con el número en la variable myData.msg // %ld es el formato para números largos (long) snprintf(myData.msg, sizeof(myData.msg), "Hola %ld", numeroAleatorio); Serial.print("Enviando paquete: "); Serial.println(myData.msg); esp_now_send(broadcastAddress, (uint8_t *) &myData, sizeof(myData)); delay(2000); // Espera 2 segundos para el siguiente envío } |

