Thanks! I am measuring time from start of broadcast message transmission to reception.
Here are sender and receiver codes:
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
pinMode(REF_PIN, OUTPUT);
// Init Serial Monitor
Serial.begin(115200);
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != 0) {
Serial.println("Error initializing ESP-NOW");
return;
}
// Once ESPNow is successfully Init, we will register for Send CB to
// get the status of Trasnmitted packet
// actually send callback is not userful for broadcast
esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
esp_now_register_send_cb(OnDataSent);
// Register peer
esp_now_add_peer(broadcastAddress0, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
//esp_now_add_peer(broadcastAddress1, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
//esp_now_add_peer(broadcastAddress2, ESP_NOW_ROLE_SLAVE, 1, NULL, 0);
}
void loop() {
if (Serial.available() > 0) {
data = Serial.read();
digitalWrite(REF_PIN, !digitalRead(REF_PIN));
// Send message via ESP-NOW
esp_now_send(broadcastAddress0, (uint8_t *) &data, sizeof(data));
//esp_now_send(broadcastAddress1, (uint8_t *) &data, sizeof(data));
//esp_now_send(broadcastAddress2, (uint8_t *) &data, sizeof(data));
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
Receiver code:
void OnDataRecv(uint8_t * mac, uint8_t *incomingData, uint8_t len) {
digitalWrite(REF_PIN, !digitalRead(REF_PIN));
data = incomingData[0];
uint8_t cmd[] = {
(uint8_t)0xAB,
(uint8_t)data, // Use the received eight_bit_value here
1, 2, 3, 4, 5, 6, 7, 8, // Example placeholders for additional data
0xDE, 0xAD, 0xBE, 0xEF // Example hex values as requested
};
Serial.write(cmd, sizeof(cmd));
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
}
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
// setup GPIO pin
pinMode(REF_PIN, OUTPUT);
// Initialize Serial Monitor
Serial.begin(115200);
// Set device as a Wi-Fi Station
WiFi.mode(WIFI_STA);
// Init ESP-NOW
if (esp_now_init() != 0) {
Serial.println("Error initializing ESP-NOW");
return;
}
// Once ESPNow is successfully Init, we will register for recv CB to
// get recv packer info
esp_now_set_self_role(ESP_NOW_ROLE_SLAVE);
esp_now_register_recv_cb(OnDataRecv);
}
void loop() {
}