dimanche 3 mars 2019

ESP8266 et carte SD

Dans cet article, je vous propose la mise au point d'un "data logger" à base d'ESP8266 qui répétera une mesure à une fréquence choisie par l'utilisateur et enregistrera les informations à l'intérieur  d'un fichier sur une carte SD. De plus, il sera possible de consulter les 10 mesures les plus récentes dans une page web.

Connexion et test du lecteur de carte SD

Mon lecteur de carte SD est un module qui communique au moyen du protocole SPI à un niveau logique de 3,3 V qui convient parfaitement à l'ESP8266.

En ce qui concerne l'ESP8266, j'ai utilisé une carte Wemos D1, mais bien entendu n'importe quel ESP8266 comportant un nombre suffisant de broches GPIO fera l'affaire.


Le module lecteur de cartes SD est connecté à l'ESP8266 de la façon suivante:

      Carte SD    ---    ESP8266
GǸD      ---     GND
 +3,3     ---     3,3V
+5       ---     ----
      CS        ---    GPIO 15
    MOSI      ---    GPIO 13
      SCK      ---    GPIO 14
      MISO    ---    GPIO 12


Bonne nouvelle: la bibliothèque "SD" fournie avec l'IDE Arduino est parfaitement compatible avec l'ESP8266, ce qui simplifie évidemment les choses.

Pour vérifier le fonctionnement correct de la carte SD, c'est toujours une bonne idée de faire l'essai de l'exemple "CardInfo". Il faudra toutefois utiliser "15" comme valeur de la constante "chipSelect".




Sketch

Voici le sketch qui prend une mesure à chaque minute et consigne le résultat à l'intérieur d'un fichier intitulé "Mesures.txt" sur la carte SD.  Pour faire mes tests, j'ai simplement utilisé un potentiomètre branché à l'ADC de l'ESP8266. La date et l'heure de chaque mesure est également enregistrée, après interrogation d'un serveur NTP (il n'est donc pas nécessaire de brancher une horloge temps réel (RTC) à l'ESP8266.

Afin de profiter au maximum des possibilités de l'ESP8266, j'ai également programmé un serveur web qui présente les 10 mesures les plus récentes ayant été enregistrées sur la carte SD.

Lors du démarrage, le moniteur série indique la réussite (ou l'échec) de la connexion au réseau WiFi, de la mise en place du serveur web, de la connexion au serveur NTP et de l'initialisation de la carte SD. L'enregistrement de chaque mesure dans la carte SD est également signalée.


Au moyen d'un fureteur, on accède à l'adresse IP indiquée dans le moniteur série, ce qui nous permet de consulter les 10 dernières mesures ayant été consignées sur la carte SD.




Yves Pelletier   (TwitterFacebook)

Aucun commentaire:

Enregistrer un commentaire