I was using the code below for slave and master. Earlier the slave device was receiving the data but now the master is sending data but the slave is not receiving data.
I am trying to send a string which is received from the serial monitor on master and sending it to the slave via ESP NOW protocol and print it on serial monitor of the slave device
Can anyone tell me what is the problem?
Master
#include<ESP8266WiFi.h>
extern "C"
{
#include<espnow.h>
}
const byte dataLength = 7;
byte cnt = 0;
uint8_t rcvData[dataLength];
uint8_t snd;
// char serial[dataLength];
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.println();
WiFi.mode(WIFI_STA);
WiFi.disconnect();
if(esp_now_init()==0)
{
Serial.println("ESP NOW initialised. . .");
}
else
{
Serial.println("ESP NOW not initialised. . .");
ESP.restart();
delay(1);
}
Serial.print("Station MAC Address");
Serial.println(WiFi.macAddress());
esp_now_set_self_role(ESP_NOW_ROLE_CONTROLLER);
uint8_t mac_addr[6] = {0x62, 0x01, 0x94, 0x42, 0x0B, 0x5B};
uint8_t role = 2;
uint8_t channel = 3;
uint8_t key[0] = {};/////////no key
//uint8_t key[16] = {1,3,3,4,j,9,8,6,t,v,l,2,5,d,b,1};
uint8_t key_len = sizeof(key);
Serial.print("keylength : - ");
Serial.println(key_len);
int add = esp_now_add_peer(mac_addr, role, channel, NULL, 0);
if(add == 0)
{
Serial.println("Pairing Success " + String(add));
}
else
{
Serial.println("Pairing Failed " + String(add));
}
esp_now_register_send_cb([](uint8_t *mac, uint8_t Status)
{
Serial.print("send status " + String(Status));
});
//byte mac[] = {0x62, 0x01, 0x94, 0x42, 0x0B, 0x5B};
//uint8_t result = esp_now_send(mac, rcvData, sizeof(rcvData));
}
void loop()
{
if(Serial.available()!=0)
{
rcvData[dataLength] = Serial.read();
}
byte mac[] = {0x62, 0x01, 0x94, 0x42, 0x0B, 0x5B};
uint8_t result = esp_now_send(mac, rcvData, sizeof(rcvData));
if(result == 0)
{
Serial.println("Data Send Success ");
}
else
{
Serial.println("Data Send failed");
}
}
slave
//#include<SoftwareSerial.h>
#include<ESP8266WiFi.h>
extern"C"
{
#include<espnow.h>
}
void setup()
{
Serial.begin(115200);
Serial.println();
Serial.print("Access Point MAC address");
Serial.println(WiFi.softAPmacAddress());
//Serial.print("Station MAC Address");
//Serial.println(WiFi.macAddress());
WiFi.mode(WIFI_AP);
if(esp_now_init()==0)
{
Serial.println("ESP NOW initialised. . .");
}
else
{
Serial.println("ESP NOW not initialised. . .");
ESP.restart();
delay(1);
}
esp_now_set_self_role(2);
/*Serial.print("Access Point MAC address");
Serial.println(WiFi.softAPmacAddress());
Serial.print("Station MAC Address");
Serial.println(WiFi.macAddress());*/
}
void loop()
{
esp_now_register_recv_cb([](uint8_t *mac, byte *data, uint8_t len)
{
char macMaster[6];
sprintf(macMaster, "%02X:%02X:%02X:%02X:%02X:%02X", mac[0],mac[1],mac[2],mac[3],mac[4],mac[5]);
Serial.print("recevied data from master : -");
for(int i = 0; i<len; i++)
{
//String tad = data[i];
Serial.print(data[i]);
Serial.print(" ");
}
Serial.println("");
});
}