Arduino, ESP, Tutoriels

Comment utiliser l’EEPROM avec Arduino et l’ESP8266 pour stocker des données de manière permanente

Comment Utiliser L'Eeprom Avec Arduino Et L'Esp8266 Pour Stocker Des Données De Manière Permanente

L’EEPROM (Electrically Erasable Programmable Read-Only Memory) est un composant essentiel dans les projets d’électronique, car il permet de stocker des données de manière permanente, même après une coupure de courant. Que ce soit avec Arduino ou l’ESP8266, l’utilisation de l’EEPROM ouvre de nombreuses possibilités pour améliorer vos projets en conservant des paramètres de configuration ou des données importantes.

Dans ce tutoriel, nous allons explorer comment utiliser l’EEPROM avec ces deux microcontrôleurs populaires pour écrire et lire des données dans la mémoire non volatile. Vous apprendrez les bases de la librairie EEPROM.h, comment écrire des données dans l’EEPROM, comment les lire et comment éviter les pièges liés à la taille et au cycle d’écriture de l’EEPROM.

Partie 1 : Utilisation de l’EEPROM avec Arduino

Dans cette première partie du tutoriel, nous allons nous concentrer sur l’utilisation de l’EEPROM avec Arduino. Vous apprendrez comment inclure la librairie EEPROM.h, écrire des données dans l’EEPROM et les lire à partir de celle-ci. Nous vous montrerons également comment éviter les erreurs courantes lors de l’utilisation de l’EEPROM pour prolonger sa durée de vie. Avec cet outil puissant, vous pourrez stocker des données importantes de manière permanente dans vos projets Arduino.

Utilisation De L'Eeprom Avec Arduino
Utilisation de l’EEPROM avec Arduino

Principe de fonctionnement de l’EEPROM sur Arduino

L’EEPROM d’Arduino est un type de mémoire permanente qui conserve les données même après que la carte ait été éteinte. Cependant, il est important de noter que l’EEPROM a des capacités limitées en termes de taille et de cycles d’écriture. Par exemple, sur l’Arduino Uno et Mega, vous disposez de 1024 octets d’EEPROM, mais après environ 100 000 opérations d’écriture, l’emplacement de mémoire peut devenir inutilisable. Il est donc essentiel d’utiliser l’EEPROM avec précaution pour éviter de l’endommager.

Utilisation de la librairie EEPROM.h avec Arduino

Arduino fournit une librairie appelée EEPROM.h qui facilite l’utilisation de l’EEPROM. Voici quelques-unes des fonctions importantes fournies par la librairie :

  1. EEPROM.write(address, value) : Cette fonction permet d’écrire un octet de valeur à une adresse spécifiée dans l’EEPROM.
  2. EEPROM.read(address) : Cette fonction permet de lire un octet à partir d’une adresse spécifiée dans l’EEPROM.
  3. EEPROM.update(address, value) : Cette fonction est similaire à EEPROM.write(), mais les nouvelles données sont écrites dans l’EEPROM uniquement si elles diffèrent de ce qui a déjà été écrit. Cela permet d’éviter d’écrire inutilement dans l’EEPROM et de prolonger sa durée de vie.

Exemple d’utilisation de l’EEPROM avec Arduino

Maintenant, nous allons vous montrer un exemple concret d’utilisation de l’EEPROM avec Arduino pour stocker et lire des données.

Étape 1 : Inclure la librairie EEPROM.h

Tout d’abord, nous devons inclure la librairie EEPROM.h dans notre code.

#include <EEPROM.h>

Étape 2 : Écrire des données dans l’EEPROM

Dans cet exemple, nous allons stocker un nombre entier et un nombre flottant dans l’EEPROM.

void setup() {
  Serial.begin(9600);

  // Écrire un nombre entier (valeur 42) à l'adresse 0 de l'EEPROM
  int valueInt = 42;
  EEPROM.write(0, valueInt);

  // Écrire un nombre flottant (valeur 3.14) à l'adresse 4 de l'EEPROM
  float valueFloat = 3.14;
  EEPROM.put(4, valueFloat);

  // Attendre 2 secondes pour que les données soient écrites
  delay(2000);
}

Étape 3 : Lire des données depuis l’EEPROM

Nous allons maintenant lire les données que nous avons écrites dans l’EEPROM.

void loop() {
  // Lire le nombre entier à l'adresse 0 de l'EEPROM
  int readInt = EEPROM.read(0);
  Serial.print("Nombre entier lu : ");
  Serial.println(readInt);

  // Lire le nombre flottant à l'adresse 4 de l'EEPROM
  float readFloat;
  EEPROM.get(4, readFloat);
  Serial.print("Nombre flottant lu : ");
  Serial.println(readFloat);

  // Attendre 5 secondes avant de lire à nouveau les données
  delay(5000);
}

L’utilisation de l’EEPROM avec Arduino permet de stocker des données de manière permanente, même après la coupure de courant. Cela ouvre de nombreuses possibilités pour améliorer vos projets d’électronique en conservant des paramètres de configuration ou des données importantes. N’oubliez pas de prendre en compte les limitations de taille et de cycles d’écriture de l’EEPROM pour prolonger sa durée de vie.

Dans la deuxième partie de ce tutoriel, nous allons explorer comment utiliser l’EEPROM avec l’ESP8266 pour vos projets d’électronique. Restez à l’écoute !

Partie 2 : Utilisation de l’EEPROM avec l’ESP8266

Dans cette deuxième partie du tutoriel, nous allons explorer comment utiliser l’EEPROM avec l’ESP8266, un microcontrôleur populaire pour les projets IoT. Vous apprendrez comment initialiser l’EEPROM de l’ESP8266, écrire des données et les lire à partir de celle-ci. Nous vous montrerons également comment éviter les pièges liés à la taille et au cycle d’écriture de l’EEPROM pour maximiser son utilisation dans vos projets électroniques.

Comment Utiliser Leeprom Avec Arduino Et Lesp8266 Pour Stocker Des Donnees De Maniere Permanente 1
Utilisation de l’EEPROM avec l’ESP8266

Principe de fonctionnement de l’EEPROM sur l’ESP8266

L’ESP8266 utilise une partie de sa mémoire Flash pour simuler l’EEPROM. C’est une mémoire non volatile, ce qui signifie que les données y restent même après une coupure de courant. Cependant, il est essentiel de comprendre que l’EEPROM a une taille limitée et un nombre limité de cycles d’écriture (environ 100 000). Il est donc important de gérer attentivement la taille des données stockées et leur fréquence de mise à jour pour prolonger la durée de vie de l’EEPROM. La taille totale de la mémoire Flash sur l’ESP8266 est généralement de 4 Mo, tandis que l’EEPROM a une taille de 4 Ko.

Utilisation de la librairie EEPROM.h avec l’ESP8266

Pour travailler avec l’EEPROM de l’ESP8266, nous pouvons utiliser la librairie EEPROM.h, similaire à celle utilisée pour Arduino, mais avec quelques différences. Avant d’utiliser les fonctions, nous devons initialiser la taille de la mémoire à l’aide de la fonction begin(). Contrairement à la librairie Arduino, l’EEPROM de l’ESP8266 n’a pas de fonction update(), mais la fonction write() fait quelque chose de similaire.

Exemple d’utilisation de l’EEPROM avec l’ESP8266

Maintenant, nous allons vous montrer un exemple concret d’utilisation de l’EEPROM avec l’ESP8266 pour stocker et lire des données.

Étape 1 : Inclure la librairie EEPROM.h

Tout d’abord, nous devons inclure la librairie EEPROM.h dans notre code.

#include <EEPROM.h>

Étape 2 : Initialiser la taille de l’EEPROM

Nous devons également définir la taille de l’EEPROM que nous allons utiliser. Par exemple, nous pouvons définir la taille à 12 octets.

#define EEPROM_SIZE 12

Étape 3 : Initialiser l’EEPROM

Dans la fonction setup(), nous devons initialiser l’EEPROM en utilisant la fonction EEPROM.begin(EEPROM_SIZE).

void setup() {
  Serial.begin(115200);
  Serial.println(F("Initialisation du système"));

  EEPROM.begin(EEPROM_SIZE);
  // ... Suite du code ...
}

Étape 4 : Écrire des données dans l’EEPROM

Dans cet exemple, nous allons stocker un identifiant de carte et un paramètre (valeur de température) dans l’EEPROM.

void setup() {
  // ... Code précédent ...

  int address = 0;
  int boardId = 18;
  EEPROM.put(address, boardId);
  address += sizeof(boardId); // Mettre à jour la valeur de l'adresse

  float param = 26.5;
  EEPROM.put(address, param);
  EEPROM.commit();

  // ... Suite du code ...
}

Étape 5 : Lire des données depuis l’EEPROM

Nous allons maintenant lire les données que nous avons écrites dans l’EEPROM.

void loop() {
  int address = 0;
  int readId;
  EEPROM.get(address, readId);
  Serial.print("Identifiant lu = ");
  Serial.println(readId);
  address += sizeof(readId); // Mettre à jour la valeur de l'adresse

  float readParam;
  EEPROM.get(address, readParam);
  Serial.print("Paramètre lu = ");
  Serial.println(readParam);

  // ... Suite du code ...
}

L’utilisation de l’EEPROM avec l’ESP8266 permet de stocker des données de manière permanente, même après la coupure de courant. Cela ouvre de nombreuses possibilités pour améliorer vos projets d’électronique en conservant des paramètres de configuration ou des données importantes. N’oubliez pas de prendre en compte les limitations de taille et de cycles d’écriture de l’EEPROM pour prolonger sa durée de vie.

Avec l’EEPROM, vous pouvez créer des projets plus robustes et fiables, en conservant des données essentielles même après un redémarrage ou une coupure de courant. Expérimentez et amusez-vous bien en intégrant l’EEPROM dans vos projets d’électronique avec Arduino et l’ESP8266 !


Conclusion

L’EEPROM est un outil puissant pour stocker des données de manière permanente dans vos projets d’électronique. Que vous utilisiez Arduino ou l’ESP8266, la librairie EEPROM.h facilite l’écriture et la lecture des données dans la mémoire non volatile. Cependant, il est essentiel de prendre en compte les limitations de taille et de cycle d’écriture de l’EEPROM pour prolonger sa durée de vie. En intégrant l’EEPROM dans vos projets, vous pouvez créer des systèmes plus robustes et fiables, conservant des paramètres et des données critiques même après une coupure de courant. Expérimentez avec l’EEPROM et profitez de ses avantages pour rendre vos projets d’électronique plus performants et polyvalents.

Lien outilles

  1. EEPROM librairie : https://docs.arduino.cc/learn/built-in-libraries/eeprom
  2. Pour plus d’articles : https://www.moussasoft.com/tutoriels-electroniques
  3. Twitter: Moussa Lhoussaine (@Moussasoft_com) / Twitter