ESP8266-OTA-ESPOTA


Niveau:2

Introduction:

Dans cet article, nous allons voir comment mettre en œuvre le téléversement de votre programme via votre réseau WIFI ( Over The Air ) . En premier lieu, nous allons intégrer la fonctionnalité dans l’ESP8266, puis effectuer des téléversements dans votre  notre ESP8266.

Installation de la fonctionnalité:

Je suppose que vous avez déjà installé les outils de programmation de l’ESP8266 dans l’IDE Arduino et configurer les paramètres de votre ESP (Zone mémoire pour le programme et SPIFFS si besoin). Depuis l’IDE de l’Arduino, ouvrir le strech BasicOTA.

Il faut savoir que votre programme ne devra pas dépasser la moitié de la mémoire EEPROM de votre ESP.

Remplir les paramètres de votre réseau wifi et téléverser le programme via votre liaison série.

Options possibles:

Configuration:

setPort() : Le port de communication par défaut est le 8266.
setHostname() : Attribution du nom à l’ESP8266.
setPassword() : Permet de demander un mot de passe avant d’exécuter une mise à jour.
ArduinoOTA.setPasswordHash():Permet de demander un mot de passe avant d’exécuter une mise à jour mais le mot de passe est encrypter en MD5. Vous pouvez encrypter votre mot de passe sur le site http://www.cryptage-md5.com/

Fonctions:

onStart() : Code à exécuter au démarrage de la mise à jour.
onEnd() : A la fin de la mise à jour.
onProgress() : Durant la mise à jour.
onError() : En cas d’erreur.

Téléversement depuis l’IDE Arduino:

Pour utiliser, l’outil de téléversement via le wifi qui s’appel espota.py. Vous devez avoir installer python pour exécuter le programme espota.py. Il fonctionne avec la version 2.7 de python. https://www.python.org/

 

Aller dans le menu Outils, et choisir le port suivant l’adresse IP ou le nom du périphérique.

Une fois sélectionné vous pouvez téléverser votre programme. Pour la partie SPIFFS ( Data), cela marche très bien sauf  si vous avez un de mot de passe. Pour cela, je vais vous faire voir mes solutions ci-dessous.

Utilisation de Espota:

Version de base avec python:

Voici le fichier source: https://github.com/esp8266/Arduino/blob/master/tools/espota.py   ou sur mon site: espota.py

Télécharger le fichier source et installer python 2.7 pour pour voir utiliser cette version. Voici la liste des commandes:

Commande: python espota.py [options]

Transmettez une image par liaison wifi au module esp8266 avec le support OTA.

Options:

-h ou –help =>Visualisation des options

-i AdresseIP ou  –ip=AdresseIP => Adresse IP de votre module ESP8266.

-I AdresseIP ou  –host_ip=AdresseIp => Adresse Ip de votre ordinateur facultatif.

-p Port ou –port=Port => Port pour OTA de l’ESP8266 facultatif ( Par défaut 8266).

-P Port ou –host_port=Port => Port de votre ordinateur facultatif (Par défaut aléatoire entre  10000-60000).

-a Mpd ou  –auth=Mpd => Mot de passe.

-f fichier ou –file=fichier => Chemin du fichier binaire sans espace.

-s ou –spiffs => Transmission du fichier data SPIFFS

-d ou –debug => Voir les commandes
-r ou –progress => Voir la progression du téléversement

Exemple:

python espota.py -i 192.168.1.20 -f C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_643706/esp8266_web_Alexa.ino.bin --auth=admin -r

Version autonome console:

Téléchargez l’archive espotaCon.zip et décompressez la dans un répertoire. Ensuite vous pouvez l’utiliser comme espota.py mais sans installer python.

Pour le fichier spiffs.bin:

espota.exe -i 192.168.1.20 -s -f C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_643706/esp8266_web_Alexa.spiffs.bin --auth=admin -r

Pour le fichier programme ino.bin:

espota.exe -i 192.168.1.20 -f C:\Users\CHRIST~1\AppData\Local\Temp\arduino_build_643706/esp8266_web_Alexa.ino.bin --auth=admin -r

Version autonome Graphique:

Téléchargez l’archive espotaGui.zip et décompressez la dans un répertoire. Puis faire un double clique sur le fichier espotaGui.exe.

Dernière version sur https://github.com/christophe94700/OTA-ESP826-Espota-Standalone