User Tools

Site Tools


evenements:woot3:esp8266-tuto

Tutoriel d'installation arduino + esp8266

Tous les liens wootdevices.io sont locaux si vous êtes au Jack, ça évite d'attendre pour les téléchargements lents sur notre lien ADSL.

Préliminaires

  1. Installer arduino.
    • MacO$ Copier arduino.app dans les Applications
    • Linux64 Décompresser dans $HOME
      wget http://wootdevices.io/files/arduino-1.6.7-linux64.tar.xz -O - | tar xvJ -C ~/
    • Linux32
      wget http://wootdevices.io/files/arduino-1.6.7-linux32.tar.xz -O - | tar xvJ -C ~/
  1. Installer le driver ftdi pour windows.

Pour que windows reconnaisse le convertisseur USB ↔ série, il est nécessaire d'installer le driver FTDI. Télécharger et suivre les indications de la page suivantes :

  1. Installer le support ESP8266.
    1. Manuellement (MacOS/Linux), à préférer au Jack :
        • Linux : Télécharger et décompresser dans le répertoire ~/arduino-1.6.7/hardware/ :
          wget -O - http://wootdevices.io/files/esp8266_v2.0.tar.gz | tar xvz -C ~/arduino-1.6.7/hardware 
        • MacOS : MacOS (.zip) Télécharger d'abord le fichier, on obtient un dossier esp8266com. Déplacer le dossier :
          mv ~/Downloads/esp8266com/ /Applications/Arduino.app/Contents/Java/hardware/
      1. Télécharger les outils binaires :
        cd ~/arduino-1.6.7/hardware/esp8266com/esp8266/tools ; python get.py
    2. Avec le gestionnaire Arduino (Windows/Linux/MacOS) :
      1. Coller l'URL du fichier json suivant dans Arduino (Fichier/Préférences/Paramètres/URL de gestionnaire de cartes supplémentaires)
        http://arduino.esp8266.com/stable/package_esp8266com_index.json
      2. Puis installer le package esp8266 via le gestionnaire de carte (Outils/Type de carte/Gestionnaire de carte).
  1. Configurer les ports de communication :
    • Linux :
      sudo usermod -aG dialout user 
    • MacOS : télécharger le pilote du convertisseur USB-série si nécessaire :

Arduino est prêt à programmer de l'ESP8266 !

Sources : https://esp8266.github.io/Arduino/versions/2.0.0/doc/reference.html

Flashage des modules

Certains modules sont vraiment démunis de composants et les échecs de flashages proviennent probablement d'oublis dans les branchements. On pourra corriger cela avec de meilleurs schémas, un peu plus complexes.
Au démarrage, le processeur s'attend à ce que GPIO15 soit bas et GPIO2 haut. GPIO0 sélectionne le mode, haut signifie fonctionnement normal et bas le mode reprogrammation par le port série. Selon les modules, certains GPIO auront des pull-up ou des pull-down rien du tout. Le schéma suivant est donc à adapter sur chaque module:
Schéma de branchement
Source : http://hackaday.com/2015/03/18/how-to-directly-program-an-inexpensive-esp8266-wifi-module/

ESP-01

ESP01 ESP01

Branchement du module au convertisseur USB-Serie.
Schéma simpliste qui fonctionne quand il fait beau, qu'on a de la chance et des câbles courts.
Schéma de branchement Pinout

Dans “Outils” → “Type de carte”, sélectionner “Généric ESP8266 Module”

Procedure d'upload sur le module ESP01 :

Quand le module démarre et que GPIO-0 est à GND, il passe en mode reflashable. Après un flashage réussi le programme est lancé, donc pas besoin de débrancher de fil pour tester un programme.
Pour exécuter le programme en mémoire au démarrage ou après un reset, GPIO-0 doit être à VCC ou flottant.

  1. Mettre GPIO-0 à GND (et débrancher de GPIO-2 ce qui pourrait le mettre à 0)
  2. Alimenter le module (ou effectuer un reset)
  3. Lancer l'upload depuis l'IDE arduino

Téléversement terminé !

Olimex

Olimex Pinout

ESP-12

Pinout

Exemple de code de test :

wificlient.ino
#include <ESP8266WiFi.h>
 
const char* ssid = "JA-RdC";
const char* password = "SuperLapin";
 
void setup() {
    Serial.begin(115200);
    Serial.println();
    Serial.print("connecting to ");
    Serial.println(ssid);
    WiFi.begin(ssid, password);
      while (WiFi.status() != WL_CONNECTED) {
        delay(500);
        Serial.print(".");
      }
    Serial.println("WiFi connected");
    Serial.println("IP address: ");
    Serial.println(WiFi.localIP());
  }
 
void loop() {}

Si ça marche, on voit son IP dans le moniteur série arduino ! (Configuré sur 115200 baud)
Dès qu'on a ça, on peut donc ping via le terminal :

ping 192.168.0.xxx

Wemos D1 mini, pas cher et très cool, tuto d'introduction

evenements/woot3/esp8266-tuto.txt · Last modified: 2019/02/12 17:14 by barzi