ESP8266-DEV
L'ESP8266-DEV & ESP8266-EVB
Ce tutoriel se concentre sur le Flash de MicroPython sur un ESP8266-EVB (carte d'évaluation d'Olimex avec Relais) et l'ESP8266-DEV (carte ESP8266 d'Olimex destinée aux développements).
L'ESP8266-DEV est une carte de développement ESP8266 produite par Olimex et prête a souder sur vos propres cartes. Hormis cela et quelques GPIO supplémentaires, cet ESP8266 n'est pas différent des autres cartes ESP8266. |
Mise en oeuvre de l'ESP8266 par Olimex Ltd sous forme d'une carte d'évaluation, la déclinaison de l'ESP8266 est nettement améliorée avec:
- Des entrées/sorties en quantité,
- Un accès au convertisseur Analogique/Digital (1V max),
- 2 Mo de mémoire Flash (contrairement aux autres modules ne proposant que 512Ko),
- Une interface SDIO.
La carte d'évaluation apporte:
- Une fiche Jack d'alimentation (5V) et régulateur de tension
- Un relais
- Un bouton poussoir
- Un connecteur UEXT (pour brancher facilement des modules complémentaires)
- Interface série
- Bus I2C
- SPI
- Exposition de nombreux signaux sur le connecteur CON3
- GPIOs additionnels
- signaux SD_IO
- Enable, ...
Olimex c'est aussi une garantie de qualité et de pérennité de gamme.
Connexion Série
Etant donné que le l'ESP8266-DEV (et donc ESP8266-EVB) ne disposent pas de convertisseur USB-Série, il sera donc nécessaire d'utiliser un câble console (USB-Série-TTL) pour communiquer avec la carte ESP8266.
Flasher MicroPython
Pour flasher MicroPython sur l'ESP8266-DEV (module ESP8266) qui équipe la carte d'évaluation d'Olimex (ESP8266-EVB), nous vous proposons le tutoriel Charger MicroPython ci-dessous.
Utiliser MicroPython sur ESP8266 nécessite de Flasher le MicroContrôleur avec le Firmware et d'utiliser des outils appropriés pour communiquer avec lui. Vous trouverez ci-dessous une sélection de tutoriel pour vous préparer. Nous recommandons vivement l'usage de RSHell, même si Ampy reste une solution plus simpliste (mais aussi nettement plus limitée).
Apprenez comment charger le Firmware MicroPython sur une carte Pyboard, ESP8266 (Feather, Wemos, NodeMcu), etc.
Transférez des fichiers et contrôlez votre carte depuis une simple connexion série. ESP8266 compatible.
Outil simplifié de transfert de fichiers et de contrôlez de carte depuis une connexion série. ESP8266 compatible.
RShell sur ESP8266
Une petite pointe de rappel pour l'utilisation des ESP8266 avec RShell...
Il est impératif de réduire la taille du buffer à 128 octets sur un ESP8266 sinon vous risquez d'écraser le système de fichier votre ESP8266... auquel cas il faudra reflasher votre carte |
rshell --port /dev/ttyUSB0 --baud 115200 --buffer-size 128 --editor nano
Nous avons également un petit script shell rsheel-esp8266.sh pour faciliter faciliter le démarrage de rshell pour un esp8266.
ESP8266-EVB en détails
Les différents éléments de la carte se présentent comme suit:
Il sera nécessaire d'alimenter la carte par le connecteur Jack pour assurer la mise sous tension de l'ESP8266. NE PAS DEPASSER 5V sur le connecteur Jack!! |
Avec le diagramme suivant publié par Olimex :
La carte propose deux connecteurs: un connecteur UEXT et un connecteur additionnel (CON3).
Connecteur UEXT
Le connecteur UEXT est connecteur 10 broches permettant de transporter les bus les plus fréquemment utilisés sur les microcontrôleurs avec:
- un bus I2C
- un bus SPI
- un port série
Connecteur CON3
Le connecteur CON3 reprend différents signaux dont le GPIO 0, GPIO 5, GPIO 16.
Le convertisseur ADC (Analogique --> Digital) est également disponible 1 Volts max. L'entrée ADC peut aussi être utiliser comme entrée digitale à condition d'employer un pont diviseur de tension adéquat pour ne pas dépasser 1V sur l'entrée.
Commander le relais
Comme indiqué sur le schéma ci-dessous,le relais en branché sur le GPIO 5.
>>> from machine import Pin
>>> relay = Pin(5, Pin.OUT)
>>> relay.value( 1 ) # Relais activé
>>> relay.value( 0 ) # Relais inactif
>>> relay.value( 1 ) # Relais activé
>>> relay.value( 0 ) # Relais inactif
>>> relay.value( 1 ) # Relais activé
>>> relay.value( 0 ) # Relais inactif
Utilisation de l'entrée
La lecture de l'entrée bouton se fait sur le GPIO 0.
En pressant le bouton, l'entrée GPIO 0 est placée à la masse. Cela implique donc qu'il faut activer la résistance pull-up interne sur le GPIO 0. Par conséquent:
Switch OUVERT : GPIO 0 = HIGH (3.3v) Switch FERME : GPIO 0 = LOW (0v)
Le script suivant lit le GPIO 0 à interval régulier et affiche le résultat dans la session REPL.
>>> from machine import Pin
>>> from time import sleep_ms
>>> btn = Pin( 0, Pin.IN, pull=Pin.PULL_UP )
>>> while True:
>>> print( '--' if btn.value()==1 else 'PRESSE' )
>>> sleep_ms( 300 )
Ce qui produit les résultats suivants sur la session REPL.
--
PRESSE
PRESSE
PRESSE
--
--
--
--
--
PRESSE
--
--
PRESSE
--
--
--
--