Reputation: 11
I'm using ESP-NOW to receive information from another ESP, and then I connect to a Wi-Fi network to send the data to my database. However, after receiving the data, the Wi-Fi status remains at 6 and it refuses to connect. There are no errors with the SSID or password, nor any hardware issues.
void setup() {
Serial.begin(115200);
configDeviceAP();
InitESPNow();
esp_now_register_recv_cb(OnDataRecv);
}
void configDeviceAP() {
const char *SSID = "Slave_1";
bool result = WiFi.softAP(SSID, "Slave_1_Password", CHANNEL, 0);
if (!result) {
Serial.println("AP Config failed.");
} else {
Serial.println("AP Config Success. Broadcasting with AP: " + String(SSID));
Serial.print("AP CHANNEL ");
Serial.println(WiFi.channel());
}
}
void resetToClientMode() {
WiFi.disconnect(true);
WiFi.persistent(false);
WiFi.mode(WIFI_STA);
Serial.println(WiFi.status());
Serial.println(WIFI_SSID);
Serial.println(WIFI_PASSWORD);
WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print("Connecting to WiFi ..");
while (WiFi.status() != WL_CONNECTED) {
Serial.print('.');
delay(1000);
}
Serial.println(WiFi.localIP());
Serial.println("Connected to WiFi.");
}
void OnDataRecv(const uint8_t *mac_addr, const uint8_t *data, int data_len) {
DataStruct receivedData;
memcpy(&receivedData, data, sizeof(DataStruct));
Serial.print("Valeur humidité : ");
Serial.println(receivedData.h);
Serial.print("Valeur température : ");
Serial.println(receivedData.t);
Serial.println("");
// Connect to WiFi and Firebase
resetToClientMode();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
Firebase.reconnectWiFi(true);
// Enregistrez les données reçues dans la base de données Firebase
Firebase.setInt(fbdo, "/Rooms/Room01/Temp", receivedData.t);
Firebase.setInt(fbdo, "/Rooms/Room01/Humidity", receivedData.h);
// Déconnectez-vous du réseau WiFi
WiFi.disconnect(true);
WiFi.persistent(false);
WiFi.mode(WIFI_OFF);
}
void loop() {
// Chill
}
Upvotes: 1
Views: 423