Accueil / esp8266 / Wemos D1 mini : carte ESP8266 polyvalente à 5€

Wemos D1 mini : carte ESP8266 polyvalente à 5€

La Wemos D1 Mini est une carte basée sur le module ESP8266 ESP-12E développée par la société du Wemos CC. Vous pouvez vous la procurer entre 2,90€ et 5€ sur aliexpress  ou Banggood. Comme pour toutes les cartes Arduino, vous trouverez également de nombreux clones qui fonctionne parfaitement.

Nouveautés Wemos à découvrir : D1 Mini Pro, Wemos XI, Shield SHT30

Cette petite carte est vraiment très pratique à programmer et à utiliser. La programmation pourra se faire directement depuis l’IDE Arduino ou en Lua (à l’aide d’ESPlorer déjà présenté dans cet article) en la branchant à l’ordinateur à l’aide d’un câble USB. Sur Mac OS X, elle est reconnue immédiatement sur le port /dev/cu.wchusbserialfaxxxx. Si vous rencontrez des problèmes, il est toutefois possible d’installer manuellement le drivers CH340. Vous pouvez le récupérer ici. Pour Windows, vous trouverez également le drivers CH340 ici en cas de besoin.

Wemos (et d’autres fabricants) a également développé des shields d’apprentissages / prototypage qui viennent se brancher sur la carte (les borniers à souder sont livrés avec la carte. A vous de choisir celui qu’il vous faut au moment de la soudure).

esp8266 Wemos D1 mini Carte ESP8266 Wemos D1 Mini

Entre 2,90€ et 4,90€ en Asie (livraison entre 3 à 5 semaines). Environ 8€ depuis l’Europe.

wemos d1 mini shield batterie lipo Chargeur pour batterie LiPo avec connecteur micro USB.

environ 2,20€

wemos d1 mini relai shield Relai 1 sortie

environ 3,2€

wemos d1 mini one button shield 1-Button, bouton connecté

environ 1,95€

wemos d1 mini dht11 shield Température / humidité à l’aide d’un DHT11 (consulter l’article sur ce capteur)

environ 2,70€

Librairie Adafruit : https://github.com/adafruit/DHT-sensor-library

wemos d1 mini dht22 shield Température / humidité à l’aide d’un DHT22 (consulter l’article sur ce capteur)

environ 6,40€

Librairie Adafruit : https://github.com/adafruit/DHT-sensor-library

wemos d1 mini oled shield Ecran OLED. Guide complet sur les librairies pour utiliser un écran OLED.

environ 4,40€

wemos d1 mini microsd shield Lecteur de carte micro SD (idéal pour fabriquer un mini enregistreur de données)

environ 2,60€

wemos d1 mini proto shield Platine de prototypage

environ 0,70€

wemos d1 mini dual base Base double. Permet d’installer une Wemos sur un emplacement (et de superposer un shields). Un 2nd emplacement permet d’installer un 2nd shields.

Environ 0,95€

wemos d1 mini motor shield i2c Driver I2C pour piloter 2 moteurs (15 VDC max.)

Environ 4,60€

Caractéristiques de la carte (toute la documentation technique)

Micro-contrôleur ESP-8266EX
WiFi 802.11 b/g/n
Tension de fonctionnement 3.3V
Digital I/O Pins 11
Entrée analogique 1 (3.2V max.)
Fréquence 80MHz/160MHz
Flash 4M bytes
Longueur 34.2mm
Largeur 25.6mm
Poids 10g
Port USB micro USB
Puissance Max. 5V via le port USB ou le Pin 5V sur la carte
Reset Un bouton de Reset qui ré-initialise 5V, 3.3V et GND

Et le repérage des Pins

Pin sur la carte Fonction Correspondance ESP-8266
TX TXD TXD
RX RXD RXD
A0 Analog input, max 3.3V input A0
D0 IO GPIO16
D1 IO, SCL GPIO5
D2 IO, SDA GPIO4
D3 IO, 10k Pull-up GPIO0
D4 IO, 10k Pull-up, BUILTIN_LED GPIO2
D5 IO, SCK GPIO14
D6 IO, MISO GPIO12
D7 IO, MOSI GPIO13
D8 IO, 10k Pull-down, SS GPIO15
G GND GND
5V 5V
3V3 3.3V 3.3V
RST Reset RST
Correspondance Pins GPIO WeMos D1 mini
Correspondance des Pins de la Wemos D1 Mini

Attention, comme tous les modules ESP8266, ne dépassez pas une tension de 3.3V sur les IO.

Toutes les broches supportent les interruptions, le PWM, la communication I2C et One-Wire sauf la broche D0.

Attention. Ne dépassez pas 3.3 Volts pour alimenter la carte sur la broche 3V sont peine de détruire la carte

Utiliser la Wemos D1 mini avec l’IDE Arduino

La Wemos D1 Mini s’utilise comme toutes les cartes ESP8266. Commencez par configurer l’IDE Arduino. Ouvrez les Préférences et ajoutez le dépôt vers la librairie esp8266.

http://arduino.esp8266.com/stable/package_esp8266com_index.json

 

IDE Arduino 1.6.8 esp8266 package

Allez dans le gestionnaire de carte et cherchez esp8266, puis cliquez sur installer.

IDE Arduino 1.6.x ajouter carte esp8266

Dans la liste des cartes, choisissez WeMos D1 R2 & Mini dans la liste ESP8266 Modules.

Pour ma part j’ai du opter pour une vitesse d’upload de 115200 bauds. Si vous rencontrez des problèmes, voici quelques pistes :

  • Faites un Reset,
  • Débranchez puis rebranchez la carte,
  • Retirez la carte du montage (surtout à la première utilisation).

Cette carte est livrée avec un série d’exemples que vous pouvez télécharger sur github ici. Placez le répertoire dans votre dossier Arduino et relancez l’IDE pour actualiser la liste des exemples. Une section est dédiée aux shields :

  • 1 Button : bouton connecté
  • DHT pro : pour le DHT22
  • DHT : pour le DHT11
  • Micro SD : lecteur de carte SD
  • Relay : commande de relai 10A – 230V (courant alternatif) ou 10A – 30V (courant continu)
  • WS2812B : pilote pour bandeau de LED RVB

wemos d1 mini exemples github

 

Concernant le repérage des broches dans le code Arduino, on peut utiliser la référence de la broche indiquée sur la carte directement dans le programmes Arduino (par exemple D2 à la place de 4). Si vous souhaitez que votre programme puisse fonctionner indifféremment sur un Arduino ou un ESP, le mieux est de continuer à utiliser les références Arduino.

Cet article sur le même thème peut aussi vous intéresser

Comment utiliser les interruptions

Par rapport à un Arduino Uno qui ne possède que 2 interruptions, on peut brancher une interruption sur toutes les broches de Wemos D1 Mini, à l’exception de la broche D0 qui est réservée au sleep mode.

Avec l’IDE Arduino, utilisez comme d’habitude les fonctions attachInterrupt et detachInterrupt.

Pour attacher une interruption : attachInterrupt (interruption, fonction, mode)

  • interruption : Indiquer la broche sur laquelle est branchée l’interruption, par exemple 4 pour la broche D4 de la Wemos.
  • fonction : La fonction appelée lorsque l’interruption est déclenchée
  • mode :
    • LOW : l’interruption se déclenche lorsque la broche est au niveau BAS
    • CHANGE : l’interruption se déclenche lorsque la broche change d’état BAS/HAUT
    • RISING : l’interruption se déclenche lorsque la broche passe de l’état BAS vers HAUT (front montant)
    • FALLING : l’interruption se déclenche lorsque la broche passe de l’état HAUT vers l’état BAS (front descendant)

Détacher une interruption : detachInterrupt(broche ou numéro de l’interruption).

Programmer la Wemos D1 Mini en Lua

Pour ceux qui préfèrent le Lua et NodeMCU, vous pouvez programmer la Wemos dans ce langage. Je vous conseil d’utiliser ESPlorer, un programme écrit en Java que je vous ai déjà présenté dans cet article. Pour réinstaller le firmware d’origine, suivez cet article.

Développer sans programmation avec ESP Easy

Enfin, la WeMos se prête très bien à l’utilisation du firmware ESP Easy. ESP Easy permet de faire des mesures, commander des actionneurs, communiquer avec un serveur domotique ou un service en ligne très simplement. Pour tout savoir sur ESP Easy, suivez ce guide complet.

 

D’autres articles pour aller plus loin avec la WeMos D1 Mini

 

Mises à jour :

  • 2/06/2016 : comment utiliser les interruptions dans le code Arduino
  • 03/09/2016 : nouveaux shields : chargeur de batterie LiPo, base double
  • Ioukos

    Bonjour,

    Merci pour vos tutos ! j’ai une petite question, J’ai un Wemos d1. J’ai généré un firmware avec https://nodemcu-build.com/ en juillet et ça marche très bien.

    Par contre j’en ai regeneré en Aout et quand je le flash et que je redémarre le Wemos : la LED bleue clignotte en continu, et je ne peux rien faire du Wemos.

    J’ai reflashé avec esptool.py le esp_init_data_default.bin du dernier SDK mais ça ne change rien…

    du coup, je me dis qu’il faut peut-être que je fasse :
    ====================
    Appuyez et maintenez appuyé le bouton GPIO0. La Led s’allume à pleine puissance
    Appuyez sur le bouton Reset
    Relachez le Reset
    Relâchez le bouton GPIO. La led éclaire à demi. L’ESP8266 est en « bootload mode »
    =======================

    Mais je ne sais pas ce que vous appellé le bouton GPIO0 ? est-ce qu’il faut juste mettre la PIN GPIO0 à GND ?

    je vous remercie d’avance.

    • Bonjour loukos. Avez-vous essayé de débrancher la Wemos de l’ordinateur avant de relancer le flashage ? Quelque fois, le flashage (ou le téléversement d’un programme Arduino) peut échouer si la carte est reliée à son circuit. Je ne connais pas la cause exacte, mais en tout cas en retirant la carte du circuit, généralement tout re-fonctionne. Par contre pour la Wemos, inutile de toucher au GPIO0 comme sur l’ESP01. Voilà, j’espère que tout ira bien mais je ne m’inquiète pas trop, pour rédiger les articles, j’ai fait beaucoup de tests, sans jamais rien casser. Bon courage.

      • Ioukos

        Bonjour Projets DIY,

        Après une semaine bien pourrie à m’arracher les cheveux, j’ai trouvé la solution :

        j’utilise esptool.py et il faut bien utiliser les paramètres : -fm dio -fs 32m

        – et comme https://nodemcu-build.com/ utilise le SDK 1.5.4.1 il faut s’assurer d’envoyer le esp_init_data_default.bin correspondant.

        – et comme vous me l’indiquiez, pas de manip’ à faire pour passer en bootload mode.

        Merci, bonne journée. On peut enfin passer à la suite !

        • Bonne nouvelle. Merci d’avoir partagé l’info, ça devrait servir à beaucoup d’autres. À très bientôt !