ESP8266

L'ESP8266 est un petit module Wifi vraiment pas cher. Son gros avantage est qu'il peut être flashé séparément et avoir son propre firmware. Il possède également des GPIOs (le nombre varie selon les modèles) et du chiffrement (WPA / WPA2), ce qui en fait un excellent petit module pour tout ce qui est domotique.

Il existe plusieurs versions de l'ESP8266. La version que nous avons en stock au HS est l'ESP-01 1).

Specs de l'ESP-01 :

  • 802.11 b/g/n
  • Wi-Fi Direct (P2P), soft-AP
  • Integrated TCP/IP protocol stack
  • Integrated TR switch, balun, LNA, power amplifier and matching network
  • Integrated PLLs, regulators, DCXO and power management units
  • +19.5dBm output power in 802.11b mode
  • Power down leakage current of <10uA
  • Integrated low power 32-bit CPU could be used as application processor
  • SDIO 1.1/2.0, SPI, UART
  • STBC, 1×1 MIMO, 2×1 MIMO
  • A-MPDU & A-MSDU aggregation & 0.4ms guard interval
  • Wake up and transmit packets in < 2ms
  • Standby power consumption of < 1.0mW (DTIM3)

Liste de tous les ESP8266 :

http://www.esp8266.com/wiki/doku.php?id=esp8266-module-family

Le firmware de base de l'ESP permet de communiquer via les commandes AT. Pour ce faire, on peut communiquer via les ports série de l'ESP depuis les ports série de l'Arduino.

La vidéo de U=RI est une excellente introduction pour communiquer une première fois avec le module : U=RI - Arduino Ep.16 - Installation du module Wifi ESP8266

Le résultat obtenu en console :

> AT+RST


OK
@f����Y�G�@��b�bc@�����
[Vendor:www.ai-thinker.com Version:0.9.2.4]

ready

> AT+CWMODE=3

OK

> AT+CWLAP

+CWLAP:(3,"LgHS",-47,"c6:25:06:**:**:**",1)
+CWLAP:(0,"PROXIMUS_FON",-84,"32:91:8f:**:**:**",1)
+CWLAP:(0,"PROXIMUS_AUTO_FON",-90,"0a:19:70:**:**:**",1)

OK

> AT+CWJAP="LgHS","****//le mdp du wifi//*****"

OK

> AT+CIFSR

192.168.4.1
192.168.179.49

OK

Maintenant qu'on a réussi à communiquer avec l'ESP, la prochaine étape est de flasher un nouveau firmware afin qu'il puisse être utilisé en standalone : plus besoin d'Arduino !

Il existe plusieurs manières de flasher le firmware : Nodemcu, micropython,… La méthode utilisée ici est sans doute la plus simple : utiliser l'environnement d'Arduino et son Board Manager.

Dans tous les cas, il faudra utiliser un programmeur FTDI. Il en existe sous forme de breakout board ou bien de câble usb. Attention, pour l'ESP8266 le programmeur doit être en 3.3v et non en 5v !

Installer avec Board Manager

Depuis la version 1.6.4, Arduino offre la possibilité d'installer des packages de plateformes tierces via le Board Manager.

  • Installer Arduino >1.6.4
  • Démarrer Arduino et aller dans les préférences
  • Dans “URL de gestionnaire de cartes supplémentaires”, ajouter http://arduino.esp8266.com/stable/package_esp8266com_index.json puis cliquez sur OK
  • Allez dans Outils > Gestionnaire de cartes et faites une recherche sur ESP.
  • Installez le package esp8266 by ESP8266 Community
  • Sélectionnez votre board dans Outils > Type de cartes (Generic ESP8266 Module)

Mode Standalone

Updates OTA (Over The Air)

Le flashage du firmware est un peu lent. Et puis le câble USB connecté à l'ordinateur c'est old school. Prochaine étape : Updates OTA !

L'étape suivante pourrait être par exemple de créer un webserver : Youtube - ESP8266 Hack #1: Web Enabled LED - WiFi Internet-of-Things IoT

Ou encore utiliser le chip comme client MQTT : - https://github.com/Imroy/pubsubclient