Formations à l'informatique et à l'électronique

Auteur : SD
Créé le : 20-03-2019

Premiers pas avec Arduino D1 Mini (ESP8266)

Présentation

Arduino D1 Mini (ESP8266) Shields Bouton et Relais

Ce TP permet de créer un bouton connecté WiFi à partir de deux cartes Arduino D1 mini (ESP8266). L'émetteur utilise un shield 1-bouton et le récepteur un shield relais. Dans la deuxième partie, on ajoute un shield de mesure de température afin de programmer le fonctionnement d'un thermostat.

La carte Arduino D1 Mini est basée sur le module ESP8266 ESP-12E. Elle permet de réaliser des objets connectés grâce à sa connectivité Wi-Fi.

Comme pour la carte Arduino UNO il existe des shields destinés à la carte D1 Mini (ci-contre shields relais et bouton poussoir).

La "carte mère" est composée de deux parties principales : le microcontrôleur et le module de communication USB qui permet de programmer le microcontrôleur depuis un PC (pas besoin de programmateur). Le port micro USB permet également d'alimenter la carte (à condition que la consommation ne dépasse pas ce que peut fournir un port USB).

Arduino D1 Mini (ESP8266)

Sommaire

Configuration de l'EDI

Ouvrir l’EDI Arduino. Aller dans "Fichier => Préférences" :

Dans "URL de gestionnaire de cartes supplémentaires", entrer :

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

Cliquer sur "OK".

EDI Arduino Préférences ESP8266 D1 Mini URL

Aller ensuite dans "Outils => Type de carte => Gestionnaire de carte" et installer "esp8266" :

EDI Arduino Gestionnaire de Carte D1 Mini (ESP8266)

Télécharger les exemples de la D1 mini :

https://github.com/wemos/D1_mini_Examples/archive/master.zip

Décompresser l’archive dans le dossier : "documents/Arduino

Redémarrer l'EDI Arduino.

Connecter la carte D1 Mini à l’ordinateur avec un câble micro USB. Vérifier la bonne installation des drivers et repérer le numéro de port COM associé à la carte D1 mini (ici COM3) :

Gestionnaire Périphérique Driver CH340 D1 Mini ESP8266

Configurer le type de carte, la vitesse de communication et le numéro de port COM comme indiqué ci-dessous :

EDI Arduino Config port COM

Remarque : selon la qualité du cordon USB utilisé, la vitesse d’Upload peut être revue à la baisse.

Premier programme : Le traditionnel BLINK !

Ouvrir le programme d’exemple "Blink" :

EDI Arduino ouvrir Exemple Blink D1 mini ESP8266

Téléverser le programme, vérifier le bon fonctionnement :

EDI Arduino Téléverser D1 mini ESP8266

Deuxième programme : serveur WEB

Installer le shield "relais" sur la D1 mini (Attention au sens !) :

Arduino D1 Mini ESP8266 Et Shield Relais

Ouvrir le programme fourni : "ServerWebRelais.ino".

Modifier, si nécessaire, les lignes 6 et 7 (SSID et clé de votre point d'accès WiFi).

Le téléverser et ouvrir le moniteur série (CTRL + SHIFT + M), le configurer à 115 200 bauds. Appuyer sur le reset de la D1 Mini et relever l’adresse IP obtenue par la carte :

EDI Arduino Moniteur Série adresse IP de l'ESP8266

Taper cette adresse IP dans la barre d’adresse d’un navigateur et tester le bon fonctionnement :

Page Web Arduino D1 Mini ESP8266 Dans le Navigateur

Fonctionnement du programme

Diagramme d’activité :

Diagramme d'activité Serveur WEB Arduino D1 Mini

Modification du programme

Créer une nouvelle fonction qui inversera l’état du relais et renverra une page Web en mode texte (utiliser le paramètre "text/plain" à la place de "text/html") contenant seulement "0" ou "1" selon l’état du relais. Cette fonction sera appelée lorsque le chemin de l’URL sera : "/togglegpio".

Tester le bon fonctionnement dans un navigateur :

Page Web Arduino D1 Mini ESP8266 Navigateur

Une deuxième carte

Arduino D1 Mini ESP8266 Et Shield 1-Bouton

Nous allons utiliser une deuxième carte équipée d’un shield "1 bouton". Le but final étant que l’appuie sur le bouton permette de faire commuter le relais d’un état à l’autre.

Le bouton est connecté sur l’entrée D3 de la mini D1 et est actif au niveau bas.

Ouvrir l’exemple "SimplePush" :

EDI Arduino Exemple

Tester.

Modifier l’exemple de telle sorte que la carte équipée du shield bouton se connecte au même point d’accès Wi-Fi que celle équipée du shield relais.

Tester (vérifier le bon fonctionnement avec la console) :

EDI Arduino Console D1 Mini WiFi Connected

A partir de l’exemple d’envoie de trame http donné ci-dessous, modifier le programme de telle sorte que le relais de la première carte commute à chaque appuie sur le bouton.

Exemple d’envoie d’une trame HTTP GET :

WiFiClient client;

// Etablisement de la connection au serveur
if (client.connect("172.19.128.203", 80)) {

// Envoi la requete au serveur
client.print(String("GET /togglegpio HTTP/1.1\r\n") +
"Host: 172.19.128.203\r\n" +
"Connection: close\r\n\r\n");
}

Tester.

Ajout du shield SHT30 (Capteur température et humidité)

Le shield SHT30 est un capteur de température et d’humidité qui fonctionne en I2C.

Brochage de l’I2C :

Remplacer le shield "1 bouton" par le shield SHT30.

Installation de la bibliothèque

Télécharger l’archive : "WEMOS_SHT3x_Arduino_Library-master.zip" :

https://github.com/wemos/WEMOS_SHT3x_Arduino_Library/archive/master.zip

Une fois le fichier téléchargé, ouvrir l’environnement de développement Arduino.

Dans le menu "Croquis", cliquer sur "Inclure une bibliothèque", puis sur "Ajouter la bibliothèque .ZIP..."

EDI Arduino Ajouter Bibliothèque SHT3x

Sélectionner le Fichier "WEMOS_SHT3x_Arduino_Library-master.zip" et cliquer sur "Ouvrir".

EDI Arduino Ajouter Bibliothèque SHT3x

Les librairies installées de cette manière sont stockées dans :

%USERPROFILE%\Documents\Arduino\libraries

Remarque :

%USERPROFILE% est une variable d’environnement. Elle représente le chemin vers le dossier personnel de l’utilisateur courant (profile utilisateur). Sur un poste Windows 7/8/10 ce dossier est en général : "C:\Users\NomDeL_Utilisateur"

Il est possible de visualiser toutes les variables d’environnement d’un poste en tapant la commande set dans un invite de commandes.

Test d’un programme d’exemple

Ouvrir le programme de test "SHT30_Shield" :

EDI Arduino Ouvrir Exemple SHT30 Shield

Tester.

Exécution Console Exemple SHT30 Shield

Intégrer ce code au code du bouton élaboré au paragraphe 5 de manière à activer le relais si la température est inférieure à un certain seuil et le désactiver si ce seuil est atteint (mettre une hystérésis de 0,5°C).

Tester.

Pour aller plus loin

Références

Articles connexes


Vous avez apprécié cet article ? Partagez le !

Article connexe : Premiers pas avec l'ESP8266 (ESP-01)