WLAN sur l'Arduino - connectez l'ESP8266-01 à l'Arduino et contrôlez NodeMCU Amica à distance avec votre smartphone
L'Arduino est l'une des cartes de développement les plus connues. Malheureusement, les modèles standard n'ont pas de puce Wi-Fi installée. Cette astuce pratique vous montre comment connecter un module WLAN ESP8266-01 à l'Arduino et comment vous pouvez contrôler à distance le NodeMCU Amica avec votre smartphone.
Contrôlez NodeMCU Amica avec votre smartphone
Le NodeMCU Amica possède une variété de broches, ainsi qu'une puce Wi-Fi ESP8266 intégrée et une prise microUSB. Par conséquent, il est logique d'utiliser davantage l'appareil en tant qu'appareil autonome. Comment connecter une carte ESP8266 "classique" à l'Arduino est décrite plus loin dans l'article.
- Pour pouvoir programmer des puces ESP, vous devez d'abord télécharger et installer les pilotes pour toutes les puces CP210er de Silicon Labs. Heureusement, cela se produit relativement rapidement.
- Ouvrez ensuite l'IDE Arduino et allez dans Paramètres. Ajoutez l'URL "//arduino.esp8266.com/stable/package_esp8266com_index.json" (sans les guillemets) aux URL d'administrateur de carte supplémentaires. Démarrez ensuite l'administrateur de la carte, entrez "ESP8266" et installez le package.
- Allez également dans le gestionnaire de bibliothèque, entrez "Blynk" et installez la dernière version. Tous les composants nécessaires sont maintenant installés.
- Vous avez besoin de l'application Blynk pour contrôler le NodeMCU avec votre smartphone. Si ce n'est pas déjà fait, créez un nouveau compte ici ou connectez-vous avec un existant. Créez ensuite un nouveau projet et sélectionnez le NodeMCU comme carte.
- Avec les exemples de codes dans l'IDE Arduino, vous devriez également trouver un code pour Blynk (→ "Boards_WiFi") sur le NodeMCU. Entrez simplement le jeton Blynk de votre projet ici, qui vous a été automatiquement envoyé par e-mail. Saisissez également votre SSID et votre mot de passe.
- Pour charger le code sur la carte, vous devez bien sûr le sélectionner dans l'onglet "Outils". Dans notre cas, "NodeMCU 1.0 (Module ESP12E)" a dû être sélectionné, la fréquence 80 MHz, la taille de la mémoire "4M (3M SPIFFS)" et le débit en bauds 115200. Cependant, veuillez noter que les informations peuvent différer selon le modèle.
- Vous pouvez ensuite simplement charger le code sur la carte et le contrôler avec l'application Blynk. Ici, vous pouvez facilement créer différents widgets et, par exemple, contrôler une LED avec un bouton.
Connectez le WiFi sur l'Arduino - ESP8266-01 à l'Arduino
Ensuite, nous voulons connecter et utiliser le module ESP8266-01 avec l'Arduino.
- Si vous tournez la carte pour qu'elle pointe vers le bas avec l'antenne dorée, vous pouvez trouver la broche VCC en haut à gauche, qui doit bien sûr être réglée sur HIGH. À droite se trouve la broche RST, que vous n'avez généralement pas besoin d'utiliser. La broche CH_PD à côté doit également être de nouveau réglée sur HIGH. En haut à droite, nous avons la broche TXD qui émet les signaux et en bas à gauche, nous avons une broche RXD qui reçoit les signaux, bien sûr. Nous avons également GPIO0 et GPIO2, ainsi que la broche de terre classique, qui se trouve en bas à droite.
- Afin de pouvoir utiliser le module sur l'Arduino, il est logique d'utiliser SoftwareSerial, puisque HardwareSerial est principalement utilisé pour la communication entre l'Arduino et le PC. Dans notre cas, cependant, le module utilise 115200 comme débit en bauds, ce qui signifie que la communication entre l'ESP et l'Arduino via SoftwareSerial n'est pas possible.
- Pour modifier le débit en bauds, de nombreux utilisateurs se contentent de flasher un nouveau firmware qui fournit un débit en bauds différent. Cependant, cela n'est pas absolument nécessaire car le débit en bauds peut également être modifié à l'aide d'une commande. Cette commande est "AT + UART_DEF". D'autres commandes telles que "AT + IPR" ou "AT + CIOBAUD" peuvent également être trouvées sur Internet, mais ce n'est pas conseillé, car "AT + IPR" en particulier peut également planter le module.
- Pour envoyer la commande au module, il est recommandé de le connecter au PC avec un adaptateur USB, qui est généralement fourni gratuitement ou peut être trouvé sur Internet pour environ un euro. Si vous n'avez pas d'adaptateur USB, vous pouvez soit en commander un en ligne, ce qui est fortement recommandé, soit utiliser un adaptateur FTDI universel, qui est assez complexe et ne fonctionne souvent pas correctement. Alternativement, il existe une autre variante qui sera expliquée plus loin.
- Si vous avez connecté le module avec l'adaptateur au PC, vous pouvez envoyer la commande "AT + UART_DEF = 9600, 8, 1, 0, 0" avec le débit en bauds 115200 et CR + LF. Vous pouvez ensuite reconnecter le module et envoyer des commandes à la vitesse de transmission 9600.
- Ensuite, vous devez programmer l'Arduino. Le code est relativement simple. Nous définissons d'abord une chaîne vide avec la commande »String s =" ";«, importons SoftwareSerial (»#include«) et créons un nouvel objet SoftwareSerial (»SoftwareSerial Serial_ESP (2, 3);«). Dans la méthode de configuration, la connexion à l'ESP (»Serial_ESP.begin (9600);«) et la connexion au PC (»Serial.begin (9600);«) sont démarrées. Si l'ESP envoie un signal, celui-ci est ajouté à la chaîne et la chaîne est ensuite sortie dans le moniteur série (»while (Serial_ESP.available ()> 0) {s + = (char) Serial_ESP.read ();} if (s ! = "") {Serial.println (s); s = "";} «). Inversement, les signaux envoyés par le moniteur série, c'est-à-dire le PC, sont également transmis à l'ESP ("while (Serial.available ()> 0) {Serial_ESP.write (Serial.read ());}"). Cependant, il est très important que le tout soit converti en un caractère, car l'ESP renvoie des nombres. Vous pouvez également retrouver le code dans la galerie de photos à la fin de l'article.
- Une fois que vous avez chargé le code sur l'Arduino, vous devez connecter l'ESP. Attention! L'ESP utilise 3, 3 volts au lieu de 5V. 5V casse complètement cela. Cependant, comme l'Arduino fonctionne avec une logique 5V, la tension doit être ajustée en conséquence.
- En théorie, vous pouvez utiliser un diviseur de tension avec des résistances, mais dans la pratique, le tout est assez imprécis et peut facilement être perturbé. Par conséquent, vous devez commuter un convertisseur de niveau logique entre l'Arduino et l'ESP.
- Connectez la broche 5V de l'Arduino à la HV, c'est-à-dire la broche haute tension sur le convertisseur, et la broche LV du convertisseur à la broche VCC de l'ESP. Connectez également la broche LV en parallèle à la broche CH_PD de l'ESP afin que la puce soit également allumée. De plus, afin d'obtenir suffisamment de courant, vous devez connecter la broche 3, 3 V de l'Arduino à la broche LV du convertisseur, donc par conséquent au VCC et CH_PD de l'ESP. Connectez maintenant la broche TX de SoftwareSerial - dans notre cas, la broche 3 sur l'Arduino - avec HV 1, 2, 3 ou 4 et la broche LV opposée avec la broche RXD sur l'ESP. Répétez cette étape pour la broche RX de l'Arduino également.
- Enfin, vous devez connecter la terre. Pour ce faire, connectez la terre de l'Arduino à la terre du côté HV du convertisseur. Connectez ensuite la terre côté BT à la terre de l'ESP. Enfin, vous devez connecter la terre HT et la terre BT.
- Maintenant, vous pouvez facilement envoyer des commandes AT avec votre PC à l'ESP via l'Arduino. Vous pouvez facilement connecter l'Arduino à votre WiFi, créer un serveur Web et bien plus encore. Ajoutez simplement les commandes AT respectives au code Arduino (dans la méthode de configuration) qui doivent être envoyées à l'ESP, que vous pouvez également trouver dans le "Jeu d'instructions AT".
- Si vous n'avez pas d'adaptateur USB prêt, vous pouvez également envoyer la commande pour modifier le débit en bauds via HardwareSerial en utilisant le même circuit, en utilisant les broches TX et RX de l'Arduino, c'est-à-dire 0 et 1. Cependant, n'oubliez pas d'ajuster le débit en bauds dans le code en conséquence.
Dans le prochain conseil pratique, nous vous donnerons une introduction au langage de programmation Java.