mercredi 3 octobre 2018

Les cartes Wemos D1 et Wemos D1 Mini (ESP8266)

Les cartes Wemos sont des cartes de prototypage qui comportent un module ESP8266 (le modèle ESP-12F, pour être précis), mais également toute l'électronique nécessaire pour l'alimentation du microcontrôleur et sa programmation par USB.

J'admets que ma découverte des cartes Wemos est quelque peu tardive: puisque je ne me débrouillais pas trop mal avec mon vieux module ESP-12, je n'avais jamais vraiment accordé d'attention à ces cartes.

Plus précisément, je n'avais pas remarqué à quel point leur prix était devenu bas.  Sur eBay, on trouve actuellement des Wemos D1 Mini pour environ 2,50 euros et des Wemos D1 pour moins de 4 euros, alors qu'un module ESP-12F (beaucoup moins pratique) coûte à lui seul 2 euros.

Utilisation plus simple

Le principal intérêt de ces cartes, c'est qu'elles sont plus simples à utiliser qu'un simple module ESP8266.

Pour la programmation d'un module ESP8266, nous avons besoin d'un convertisseur USB-TTL fonctionnant à un niveau logique de 3,3 V. En plus d'effectuer les connections nécessaires pour l'alimentation du module et la communication avec l'ordinateur, il faut penser à brancher la broche GPIO 0 à la masse, et les broches RST et CH_PD à 3,3 V.

Rien de tout ça n'est utile avec Wemos: vous branchez la carte à un port USB de l'ordinateur, et vous êtes prêts à expérimenter.

De plus, les Wemos ont été conçus pour que l'unique entrée analogique puisse supporter une tension maximale de 3,3 V, ce qui est généralement plus pratique que la limite de 1 V du module ESP-8266.  (Les entrées numériques, elles, ne supportent que 3,3 V: ne les soumettez jamais à une tension de 5 V!)

Je me suis procuré deux modèles de cartes Wemos: le Wemos D1 (révision 1) et le Wemos D1 Mini.

Wemos D1 (révision 1)

Le modèle D1 a les dimensions exactes d'une carte Arduino Uno. On peut donc y insérer un shield conçu pour une carte Arduino conventionnelle (ce qui n'est toutefois pas une garantie que le shield fonctionnera correctement car le Wemos D1 ne dispose pas de toutes les entrées/sorties d'un Arduino Uno).

En effet, l'ESP8266 ne comporte qu'une seule entrée analogique (comparativement à 6 pour l'Arduino Uno), et 11 entrées/sorties numériques utilisables (comparativement à 14 pour l'Arduino Uno).  Pour cette raison, les broches qui correspondent habituellement aux entrées analogiques A1, A2, A3, A4 et A5 sont inactives sur le Wemos D1.  De l'autre côté de la carte, certaines broches sont dupliquées: D5 et D13, par exemple, sont toutes les deux connectées à la broche GPIO14 de l'ESP8266, alors que D6 et D12 sont toutes les deux connectées à GPIO12 et que D7 et D11 sont connectées à GPIO13.

Je suppose que vous voyez le problème que ça peut potentiellement engendrer: si vous utilisez la broche D7 pour, par exemple, contrôler une LED, vous ne pouvez pas utiliser la broche D11 pour une autre fonction, puisqu'elle sera toujours dans le même état logique que la broche D7.



Pour programmer le Wemos D1 avec l'IDE Arduino, vous devez d'abord avoir installé les extensions nécessaires à la programmation de l'ESP8266, et sélectionné "WeMos D1 R1" comme type de carte.



Dans votre programme, vous pouvez, selon votre préférence, utiliser les numéros de broches tel qu'ils sont identifiés au recto de la carte (D2, D3, D4, etc) ou les numéros de GPIO de l'ESP8266 (GPIO02, GPIO16, etc. Ces numéros sont indiqués au verso de la carte Wemos D1).

Pour utiliser le numéro indiqué au recto de la carte, vous devez impérativement utiliser la lettre "D".  Par exemple, la broche D5 sera mise au niveau logique haut avec cette syntaxe:

digitalWrite(D5,HIGH);

Puisque D5 et D13 sont branchées à la même broche de l'ESP8266, vous obtiendrez le même résultat avec:

digitalWrite(D13,HIGH);

Par contre, si vous n'utilisez par la lettre "D", vous faites alors référence au numéro de GPIO de l'ESP8266.  La commande suivante mettra au niveau logique haut la broche GPIO5, qui correspond à la broche D3 de la carte:

digitalWrite(5,HIGH);

La photographie située plus haut sur cette page indique les différentes numérotations qui peuvent être utilisées pour chaque broche de la carte (les broches dont le numéro est en rouge sont des copies de broches déjà identifiées par un numéro en noir).

(Notez que la numérotation des broches du Wemos D1 revision 2 n'est pas la même!)

Wemos D1 Mini

Le modèle D1 Mini, comme son nom l'indique est beaucoup plus petit: il est suffisamment étroit pour être inséré dans une breadboard avec une rangée de trous libre de chaque côté. De plus, il existe sur le marché une très grande variété de petit shields spécialement conçus pour cette petite carte.

Avant de pouvoir utiliser le Wemos D1 Mini, vous devez souder vous-mêmes les connecteurs. Le mien est arrivé avec un choix de 3 connecteurs: mâles, femelles, où mâle et femelle simultanément (les même connecteurs que pour un shield Arduino).



Pour programmer le Wemos D1 Mini avec l'IDE Arduino, vous devez d'abord avoir installé les extensions nécessaires à la programmation de l'ESP8266, et sélectionné "LOLIN(WEMOS) D1 R2 and mini" comme type de carte.




Pour contrôler une broche du Wemos D1 Mini, on a le choix entre utiliser le numéro qui figure sur la carte, ou le numéro de GPIO de l'ESP8266 auquel est branchée cette broche.

Par exemple, la broche "D0" de Wemos D1 Mini est reliée au GPIO16 de l'ESP8266.  On peut mettre cette broche au niveau logique haut en utilisant une des deux commandes suivantes:

digitalWrite(D0,HIGH);

digitalWrite(16,HIGH);

La photographie ci-dessous indique les différentes numérotations qui peuvent être utilisées pour chaque broche de la carte.




Yves Pelletier   (TwitterFacebook)


2 commentaires:

  1. Salut,
    Merci pour ce tuto...

    Je voulais te demander où on pouvait acheter la D1 mini ?

    J'ai trouvé cela : https://fr.aliexpress.com/item/1005001604805832.html?spm=a2g0o.detail.1000014.21.4ef475aeHb26dj&gps-id=pcDetailBottomMoreOtherSeller&scm=1007.33416.213724.0&scm_id=1007.33416.213724.0&scm-url=1007.33416.213724.0&pvid=590df213-6102-49b5-b064-67e8a6e38a8e&_t=gps-id:pcDetailBottomMoreOtherSeller,scm-url:1007.33416.213724.0,pvid:590df213-6102-49b5-b064-67e8a6e38a8e,tpp_buckets:668%230%23131923%2334_668%23888%233325%2317_23416%230%23213724%230_23416%234721%2321967%23316_23416%234722%2321972%233_668%232846%238108%231977_668%235811%2327182%2354_668%232717%237558%23154_668%231000022185%231000066059%230_668%233422%2315392%23963_4452%230%23226710%230_4452%233474%2316498%23601_4452%234862%2324463%23883_4452%233098%239599%23755_4452%235106%2323440%23955_4452%233564%2316062%23254

    Cela revient à environ 2euros la carte... Mais je ne suis pas sûr que ce soit une Wemos...

    Merci.

    RépondreSupprimer
  2. article tres utile, merci
    avec boardeps8266 v3.0.1 je n'ai pas/plus la carte "WeMos D1 R1", elle est dénomée LOLIN(WeMos)D1 R1

    RépondreSupprimer