Les cartes ESP8266 sont pourvues de mémoires EEPROM d’une capacité de xxx octets.
Attention, ce type de mémoire ne peut être écrite qu’un nombre limité de fois (100K). A n’utiliser que pour stocker des informations ponctuelles. Par exemple le SSID et le mot de pass de connexion à un point WIFI.
Pour utiliser les EEPROM avec l’IDE ARDUINO :
1°) Inclure la bibliothèque : #include <EEPROM.h>
2°) Initialisation de la taille de l’EEPROM nécessaire : EEPROM.begin(512);
3°) Lecture d’une valeur : EEPROM.read(adresse);
4°) Ecriture d’une valeur : EEPROM.write(adresse, valeur); suivi de EEPROM.commit();
Exemple d’écriture d’un SSID et MOT DE PASSE :
Serial.println("writing eeprom ssid:");
for (int i = 0; i < qsid.length(); ++i)
{
EEPROM.write(i, qsid[i]);
Serial.print("Wrote: ");
Serial.println(qsid[i]);
}
EEPROM.commit();
Exemple de lecture d’un SSID et MOT DE PASSE :
Serial.println("Reading EEPROM ssid");
String esid;
for (int i = 0; i < 32; ++i)
{
esid += char(EEPROM.read(i));
}
Serial.print("SSID: ");
Serial.println(esid);
Serial.println("Reading EEPROM pass");
String epass = "";
for (int i = 32; i < 96; ++i)
{
epass += char(EEPROM.read(i));
}
Serial.print("PASS: ");
Serial.println(epass);
if ( esid.length() > 1 ) {
WiFi.begin(esid.c_str(), epass.c_str());
}
Références :
https://github.com/chriscook8/esp-arduino-apboot/blob/master/ESP-wifiboot.ino