Table des matières

ESP 8266

Matériel apporté par 3615
Si possible, fourni par le fablab
Pour chaque participant
Pour économiser la bande passante locale

Intro

On va voir la puce, ce qu'elle sait faire.
On va voir une façon de le faire (y en a d'autres).
On va la triturer une peu.

Le hardware

Tour d'horizon des caractéristiques de la puce

ADC - 1 seule, 1024 valeurs de 0 a 1V.
GPIO - 16 théorique
  attention a n°16 en pull down
  attention a n°0 et n°2 qui servent a la prog
  n°1 et n°3 rx-tx
  6 reellement utilisables.
  notées 1..16 ou D1..Dx
Wifi
  20 ans de fonctionnement dans le milieu hostile de la bande libre.
  BT existe en 2 goûts, apple et pas apple qui s'aiment pas.
  Superbe portée avec un bon routeur, ajustable. Mesure de puissance dispo.
  Suffit d'un tel pour paramétrer.
Frequence: 80Mhz, 4ns entre 2 loop.
Prix a peu près 2 euros...

Electronique - 3.3V, 215mA crête. Différents formfactor, quelles différences pour quelles utilisations

ESP01 ESP11 NodeMcu - peu de pattes
ESP12 - tres plat - lire les pattes au dos.
  besoin d'un FTDI (usb -> serie TTL 3.3v)
Wemos - avec des pattes et l'USB
  shield relais - cool
  shield lipo - cool
  shield oled... pas encore réussi grand chose ...
LoLin - des pattes, USB, plus gros
... plein d'autres formes, quasi le même chip au centre

matos qui va bien avec

source de matos : Aliexpress, gotronic, adafruit, etc …

La Doc

Au débuts était la chine :-). Et la chaîne de compilation était ardue à faire fonctionner, une VM a installer. Puis la communauté arduino est passée par là. Ce qu'en dit le Web.

Exemples d'utilisation

Relais pilotés à distance, serveur web, etc… La liste est longue, nous en ferons un tour d'horizon.

La boite à lampe malade - relais statique
boites moteur - boites loupiotes - osc
Ouvre porte garage - relais std.
Trouble - 200 esp, fabrique de carte (Topo Guillaume)
Adler - pilote steppers - [http://wiki.3615senor.org/doku.php?id=projet_adler]
Spécificités logicielles (diff avec les autres machins)
temps réel moins stable qu'un arduino. Parfois interrompu par les échanges de trames de la stack ip
le watchdog déclenche dés qu'on est trop long.
Nécessite un dev un peu spécifique 
  automates d'états
  mesure des temps.
  construire ses pages html, pêcher les réponses dans les trames, autoreload.
  interruptions
Un raspi aura plus de puissance de calcul mais 
  mais ++ cher
  mais pas d'ADC
  plus hackable
  mais ++ gourmand en elec
  plus linux
  mais - d'espoir d'en faire fonctionner sur pile.
Un arduino est 
  plus simple
  plus stable
  plus solide
  mais pas de wifi
  plus gros
  plus 5V 
  moins de mémoire...

Librairies

Compatibilité : pas toutes
Celles qu'on à testées
Sécurité

Code simple

Les mains dans le cambouis: préparer l'IDE d'Arduino

chargement du package lié à la puce
NodeMCU 1.0 (ESP-12E) 80Mhz 4M 115200

Compiler les exemples fournis dans l'ide Modifier les exemples

Compatibilité avec les libs arduino

WS2812 - leds tricolores pilotables.
Libs communes, libs spécifiques, libs... a voir.

Se connecter à un réseau existant automatiquement Se retrouver sur le réseau

Wifi SSID/pwd Cli+AP
LAN MAC/IP
Connect Udp Tcp
Internet OSC - HTTP par le texte.
pas de routage entre les interfaces.

Code complexe

L'exemple d'un code complexe créé par Emmanuel Patoux, de 3615 Señor, pour un spectacle de la compagnie Tricyclique Dol appelé “Trouble”. L'ESP exploité à 100% de ses possibilités. Environ 200 puces ont été utilsées sur la création.

Le firmata CrabESP

Du code de Trouble a été tiré une version plus générique qui permet de créer très facilement des réseaux d'objets. Présentation de ce morceau de code qui permet de configurer les choses sans une seule ligne de code, puis mise en pratique. Crab mets dans ce soft tout ce qui lui à été utile…

Ceci est une première tentative de documentation. Une fois satisfaisante, cette doc sera publiée, ainsi qu'une première version publique du code.

Le principe:

Une fois compilé (attention aux bibliothèques) et uploadé sur l'ESP, tous les réglages de l'ESP se feront via la page web qu'il publie, ou par une simple connexion série.

Connexion

Notice générale

Chaque paramètre pourra être modifié selon la logique suivante: des caractères ou des chiffres + une lettre sont envoyés à l'ESP selon un schéma précis. Les chiffres et les caractères sont les paramètres, la lettre finale indique à quel endroit affecter cela. La syntaxe à respecter ainsi que le nombre de caractères possibles à rentrer sont indiqués à chaque fois en face du réglage actuel, sous une forme syntétique qui préserve la mémoire de l'ESP.

Exemple:

*2N : xxN Node → il faut lire la ligne à l'envers. Cette ligne indique le numéro de nœud (Node). Pour régler le numéro de nœud, il faut envoyer deux chiffres (xx) suivis de la lettre N en majuscule. Le réglage actuel et '2'. Si je veux le changer et le passer en 33, je vais passer la commande 33N .

Liste des paramètres

ACTIONS

Suivent un certain nombre d'informations relatives aux réglages: état du switch, de la connection wifi, adresse ip, cycles de l'eeprom, infos sur les moteurs.

https://github.com/CrabTerlDc/TroubleEsp