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).
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".
Aller ensuite dans "Outils => Type de carte => Gestionnaire de carte" et installer "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) :
Configurer le type de carte, la vitesse de communication et le numéro de port COM comme indiqué ci-dessous :
Remarque : selon la qualité du cordon USB utilisé, la vitesse d’Upload peut être revue à la baisse.
Ouvrir le programme d’exemple "Blink" :
Téléverser le programme, vérifier le bon fonctionnement :
Installer le shield "relais" sur la D1 mini (Attention au sens !) :
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 :
Taper cette adresse IP dans la barre d’adresse d’un navigateur et tester le bon fonctionnement :
Diagramme d’activité :
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 :
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" :
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) :
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.
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.
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..."
Sélectionner le Fichier "WEMOS_SHT3x_Arduino_Library-master.zip" et cliquer sur "Ouvrir".
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.
Ouvrir le programme de test "SHT30_Shield" :
Tester.
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.
Article connexe : Premiers pas avec l'ESP8266 (ESP-01)