ESP32. Accéder aux fichiers SPIFFS en FTP avec la librairie ESP8266FtpServer

Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Table des matières

Il existe plusieurs librairies permettant d’accéder aux système de fichier SPIFFS stockés sur la mémoire flash d’un ESP32 en FTP. La librairie ESP8266FtpServer.h développée par David Paiva (nailbuster), très simple d’utilisation, permet d’ajouter un petit serveur FTP au code Arduino du projet ESP32. Elle fonctionne également sur ESP8266. On pourra l’utiliser pour récupérer des fichiers de données ou mettre à jour à distance les fichiers de l’interface HTML, le fichier de données d’une acquisition de données.

 

Le système de fichier SPIFFS pour ESP32 permet de stocker les fichiers sur le module à mémoire flash. On pourra séparer le code de l’interface HTML (fichier HTML, feuille de style CSS, code javascript) ainsi que des fichiers de données ou de paramètres. On utilisera la librairie SPIFFS.h pour accéder, créer ou modifier les fichiers depuis le code Arduino du projet.

Limitations du système de fichier SPIFFS

Avant de commencer, n’oubliez pas que le système de fichier SPIFFS est très limité.

  • Il n’y a aucune gestion d’arborescence. Les fichiers sont stockés à plat dans la zone mémoire
  • Il est possible d’utiliser le caractère / dans le nom de fichier. On peut créer une pseudo arborescence
  • Le nom de fichier est limité à 31 caractères utiles en incluant l’extension de fichier (4 caractères)
  • Evitez d’utiliser SPIFFS au delà de 128Mo de stockage
  • Le temps d’écriture est très variable

Ajouter la librairie ESP8266FtpServer.h à un projet Arduino ESP32

La librairie ESP8266FtpServer.h est en cours de développement. C’est une adaptation de la librairie Arduino de Gallegojm. Elle peut nous rendre bien des services dans deux situations.

Elle n’est pas disponible depuis le gestionnaire de librairies de l’IDE Arduino. Il faudra donc récupérer manuellement les fichiers et les ajouter au projet ESP32.

Allez sur la page GitHub du projet ici puis téléchargez le code du projet

Ajouter la librairie ESP8266FtpServer à un projet ESP8266

Décompressez l’archive ZIP puis déplacez les fichiers ESP8266FtpServer.cpp et ESP8266FtpServer.h à la racine du projet au même niveau que le fichier ino du projet.

esp32 arduino esp8266ftpserver librarie installation

Exemple de serveur de fichier FTP sur ESP32

Créer un nouveau croquis sur l’IDE Arduino et coller le code suivant.

Modifier les paramètres suivants :

  • Identifiant et mot de passe WiFi
  • Identifiant et mot de passe du serveur FTP
#ifdef ESP8266
  #include <ESP8266WiFi.h> 
#elif defined ESP32
  #include <WiFi.h>
  #include "SPIFFS.h"
#endif
#include "ESP8266FtpServer.h"

const char* ssid = "enter_your_ssid";
const char* password = "enter_your_password";
const char* ftp_user = "esp32";
const char* ftp_password = "esp32";

FtpServer ftpSrv;  
void setup()
{
  Serial.begin(112500);

  WiFi.begin(ssid, password);
  Serial.println("");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(ssid);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());

  Serial.println(F("Inizializing FS..."));
  // FTP Setup, ensure SPIFFS is started before try to use ftp methods  
#ifdef ESP32       
  if (SPIFFS.begin(true)) {
#elif defined ESP8266
  if (SPIFFS.begin()) {
#endif
    Serial.println("SPIFFS opened!");
    ftpSrv.begin(ftp_user, ftp_password);   //username, password for ftp
  }
}

void loop() {
  ftpSrv.handleFTP();
}

Comment fonctionne le code C++

Comme les fichiers de la librairie sont au même niveau que le fichier ino, on déclare la librairie ESP8266FtpServer.h entre guillemets pour indiquer au compilateur qu’on doit utiliser les fichiers locaux.

#include "ESP8266FtpServer.h"

On créé ensuite l’objet C++ qui permettra de démarrer le serveur FTP et gérer les demandent externes

FtpServer ftpSrv;

A la mise sous tension de l’ESP32, on démarre le serveur FTP à l’aide de la méthode begin() dans le setup(). La méthode begin de l’objet FtpServer prend deux paramètres qui permettent de définir les identifiants de connexion au serveur FTP (utilisateur, mot de passe).

if (SPIFFS.begin()) {
  Serial.println("SPIFFS opened!");
  ftpSrv.begin(ftp_use,ftp_password);    //username, password for ftp.  set ports in ESP8266FtpServer.h  (default 21, 50009 for PASV)
}

Pour rendre accessible le serveur FTP, il faut appeler à chaque execution de la boucle loop la méthode handleFTP().

void loop(void){
  ftpSrv.handleFTP();
}

D’autres paramètres peuvent être configurés directement dans le code du projet

  • FTP_DEBUG dé-commentez pour activer l’envoi des messages de debug sur le moniteur série (pratique pour la mise au point)
  • FTP_CTRL_PORT port du serveur FTP. Par défaut, c’est le 21
  • FTP_TIME_OUT temps avant déconnexion automatique (j’ai un doute sur son bon fonctionnement)

C’est terminé, vous pouvez maintenant accéder à vos fichiers à l’aide d’un client FTP tel que FileZilla.

Accéder au système de fichier SPIFFS à l’aide du client FTP Filezilla

Dans la version actuelle, il n’y a que le mode passif qui est supporté. Le SFTP (FTP sécurisé) n’est pas supporté. Si vous ne connaissez pas Filezilla, vous pouvez commencer par lire ce tutoriel.

A LIRE AUSSI :
Comment se connecter en FTP à un Raspberry Pi

Lancez FileZilla. Le plus facile pour se connecter à un ESP8266 en FTP et d’utiliser le gestionnaire de site. J’ai rencontré des difficultés en utilisant la barre de connexion rapide. Ouvrez le gestionnaire de site depuis le menu Fichier et configurez l’accès comme ceci :

  • Hôte adresse IP de l’ESP32
  • Port 21 (ou celui configuré par la clé FTP_CTRL_PORT)
  • Protocole TFP – Protocole de Transfert de Fichiers
  • Chiffrement Connexion FTP simple (non sécurisé)
  • Type d’authentification  Normale
  • Identifiant et mot de passe 

filezila ftp configuration esp32

Lancez la connexion en cliquant sur Connexion. La connexion est maintenant enregistrée par FileZilla, il ne sera plus nécessaire de le refaire.

Comme la connexion n’est pas sécurisée, vous devez accepter l’avertissement avant de pouvoir vous connecter à l’ESP32.

esp32 ftp spiffs filezilla autoriser acces non securise

Une fois la connexion établie, vous avez un accès à tous les fichiers du répertoire Data du projet Arduino.

esp32 ftp filezilla spiffs

Il est également possible d’accéder en FTP aux fichiers SPIFFS et LittleFS sur ESP8266.

A LIRE AUSSI :
ESP8266. Accéder en FTP aux fichiers SPIFFS ou LittleFS. Librairies ESP8266FtpServer et FTPClientServer

Mises à jour

02/09/2020 Première publication du tutoriel

Avez-vous aimé cet article ?
[Total: 0 Moyenne: 0]
Partager sur facebook
Partager sur twitter
Partager sur linkedin
Partager sur pinterest
Partager sur email
Partager sur telegram

Vous avez aimé ce projet ? Ne manquez plus aucun projet en vous abonnant à notre lettre d’information hebdomadaire!

quel modèle esp8266 choisir
Quel modèle d'ESP8266EX choisir en 2020 ?
guide choix esp32 development board
Quel ESP32 choisir en 2020 ?

Vous rencontrez un problème avec ce sujet ?

Peut-être que quelqu’un a déjà trouvé la solution, visitez le forum avant de poser votre question

Nous serions ravis de connaître votre avis

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Calculateurs
×
Calculateur loi d'Ohm
Tension (U) - en Volt
Courant (I) - en Ampère
Résistance (R) - en Ohms
Puissance (P) - en Watts

Ce calculateur permet de calculer les relations entre le courant, la tension, la résistance et la puissance dans les circuits résistifs.

Saisir au moins deux valeurs puis cliquer sur calculer pour calculer les valeurs restantes. Réinitialisez après chaque calcul.

Rappel sur la Loi d'Ohm
La loi d'Ohm explique la relation entre la tension, le courant et la résistance en déclarant que le courant traversant un conducteur entre deux points est directement proportionnel à la différence de potentiel entre les deux points.
La loi d'Ohm s'écrit U = IR, où U est la différence de tension, I est le courant en ampère et R est la résistance en Ohms (symbole Ω).
Loi d'Ohm (U=RI)
×
Déchiffrer le code couleur d'une résistance à 4 bandes
Bande 1 Bande 2 Multiplicateur Tolérance
   

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 4 anneaux
Formule : ab*cΩ ±d%
Les deux premières bandes (a, b) permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0) donne le nombre 10.
La troisième bande (c) est un coefficient multiplicateur. Par exemple, l'anneau rouge est un coefficient multiplicateur de 100, ce qui donne 10 X 100 = 1000Ω.
Le quatrième anneau (d) indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que sa valeur soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 4 bandes
×
Déchiffrer le code couleur d'une résistance à 5 bandes
Bande 1 Bande 2 Bande 3 Multiplicateur Tolérance

Résistance:  

1 000 Ω ±5%

Comment déchiffrer le code couleur d'une résistance à 5 anneaux
Formule : abc*dΩ ±e%
Les trois premières bandes permettent de déterminer le chiffre significatif. La première bande correspond au chiffre de la dizaine, le second anneau le chiffre de l'unité. Par exemple Brun(1), Noir (0), Noir (0) donne le nombre 100
La quatrième bande est un coefficient multiplicateur. Par exemple, l'anneau brun correspond au coefficient multiplicateur 10, ce qui donne 100 X 10 = 1000Ω.
Le cinquième anneau indique la tolérance de la valeur nominale de la résistance. Par exemple l'anneau Or correspond à ±5%. Donc le fabricant de la résistance s'engage à ce que la valeur de la résistance soit comprise entre 950 Ω et 1050 Ω.
Déchiffrer code couleur 5 bandes
×
Calculateur de résistance série pour une ou plusieurs LED
Tension d'alimentation en Volt
Tension directe en Volt
Courant en mA
Résistance calculée en Ω
Puissance estimée en W

Ce calculateur permet de déterminer la résistance requise pour piloter une ou plusieurs LED connectées en série à partir d'une source de tension à un niveau de courant spécifié.

Remarque. Il est préférable d'alimenter le circuit avec une puissance nominale comprise entre 2 et 10 fois la valeur calculée afin d'éviter la surchauffe
Couleur Longueur d'onde (nm) Tension (V) pour LED ⌀3mm Tension(V) pour LED ⌀5mm
Rouge 625-630  1,9-2,1 2,1-2,2
Bleu 460-470 3,0-3,2 3,2-3,4
Vert 520-525 2,0-2,2 2,0-2,2
Jaune 585-595 2,0-2,2 3,0-3,2
Blanc 460-470 3,0-3,2 1,9-2,1
Résistance en série pour une ou plusieurs LED
×
Calculateur durée de vie d'une batterie
Capacité de la batterie
Consommation de l'appareil ou objet connecté

Ce calculateur estime la durée de vie d'une batterie, en fonction de sa capacité nominale et du courant ou de la puissance qu'une charge en tire.

La durée de vie de la batterie est une estimation idéalisée. La durée de vie réelle peut varier en fonction de l'état de la batterie, de son âge, de la température, du taux de décharge et d'autres facteurs. C'est le mieux que vous pouvez espérer obtenir.

Autonomie de la batterie = capacité de la batterie en mAh / courant de charge en mA

Durée de vie batterie
Publicité
À lire aussi
Composants
Sur le Forum
Derniers Sujets
Domotique et objets connectés à faire soi-même
Domotique et objets connectés à faire soi-même
Vous avez aimé ce tutoriel

Ne manquez plus les prochains projets

Recevez chaque semaine le récapitulatif des tutoriels et projets.

Vous pouvez vous désabonner à tout moment. 

Shopping cart