ESP8266 et Arduino, connexion, brochage
Salut les geektimes . Le thème ESP8266, comme l' IoT (Internet des objets) , gagne de plus en plus en popularité, et Arduino prend déjà l'initiative en ajoutant ces modules Wi-Fi à la liste des cartes prises en charge.Mais comment le connecter à Arduino? Et est-il possible de se passer de l'arduino? Aujourd'hui, c'est exactement ce qui sera discuté dans cet article.Pour l'avenir, je dirai qu'il y aura un deuxième article, déjà plus pratique, sur le thème du flashage et de la programmation du module ESP8266 dans l'environnement de développement Arduino IDE . Mais, tout d'abord.
Cette vidéo reproduit entièrement le matériel présenté dans l'article.Pour le moment, il existe de nombreuses variétés de ce module, en voici quelques-unes:
Mais le brochage ESP01, ESP03, ESP12:
* Cette image peut être visualisée de bonne qualité sur off. Site Web pighixxx.com .Personnellement, j'aime le plus la version ESP07. Au moins pour le fait qu'il existe un écran métallique (il protège le microcircuit des interférences externes, assurant ainsi un fonctionnement plus stable), sa propre antenne céramique, un connecteur pour une antenne externe. Il s'avère qu'en y connectant une antenne externe, comme un biquadrat , vous pouvez obtenir une bonne portée. De plus, il existe de nombreux ports d'entrée / sortie, appelés GPIO (General Purpose Input Output - ports d'entrée-sortie à usage général), par analogie avec les broches Arduino.Revenons à nos modules Wi-Fi béliers et Arduino. Dans cet article, je vais envisager de connecter l'ESP8266 (modèle ESP01) à l'Arduino Nano V3.Mais, ces informations seront pertinentes pour la plupart des modules ESP8266 et diverses cartes Arduino, par exemple, l'Arduino UNO le plus populaire.Quelques mots sur les jambes ESP01:
Vcc et GND (dans l'image ci-dessus sont 8 et 1) - la puissance , selon la documentation , de 3 à 3,6 V et GND, peut être appliquée à la jambe Vcc ,- terrain (moins l'offre). J'ai vu comment une personne a connecté ce module à deux piles AA (la tension d'alimentation dans ce cas était d'environ 2,7 V) et le module était fonctionnel. Mais encore, les développeurs ont indiqué la plage de tension dans laquelle le module devrait être garanti de fonctionner, si vous en utilisez un autre, vos problèmes.Attention! Ce module est basé sur une logique 3,3 V, et Arduino est principalement une logique 5 V. 5 Ils peuvent facilement désactiver l'ESP8266, il doit donc être alimenté séparément de l'arduino ."Il y a une jambe sur mon arduino où il est écrit 3,3 V, pourquoi ne pas l'utiliser?"Vous pensez probablement. Le fait est que l'ESP8266 est un module assez gourmand, et dans les pics, il peut consommer des courants jusqu'à 200 mA, et presque aucun arduino par défaut ne peut produire un tel courant, sauf l'exception Arduino Due , dans laquelle le courant à travers la ligne 3,3 V peut atteindre 800 mA avec une marge qui est suffisant, dans d' autres cas, suggère d'utiliser un stabilisant supplémentaire 3,3 V, par exemple AMS1117 3.3 . Un tel arbre à la fois en Chine et ici.
Leg RST 6 - est destiné à être «repassé» pour redémarrer le module, en lui fournissant brièvement un niveau logique bas, le module redémarrera. Bien que j'aie négligé cela dans la vidéo, je vous conseille toujours de «presser» cette jambe avec une résistance de 10 kOhm à la puissance plusafin d'obtenir une meilleure stabilité dans le module, sinon j'ai redémarré à la moindre interférence.Patte CP_PD 4 (ou en d'autres termes EN ) - sert, encore une fois, au transfert "en fer" du module en mode d'économie d'énergie, dans lequel il consomme un très petit courant. Eh bien, encore une fois - il ne sera pas superflu de «serrer» cette jambe avec une résistance de 10 kOhm au plus de Pitalov. Dans la vidéo, j'ai bêtement court-circuité cette jambe à Vcc, car il n'y avait pas une telle résistance à portée de main.Pieds RXD0 7 TXD0 2 - UART matériel, qui est utilisé pour flasher, mais personne n'interdit d'utiliser ces ports comme GPIO (GPIO3 et GPIO1, respectivement). Pour une raison quelconque, GPIO3 dans l'image n'est pas étiqueté, mais il est dans la fiche technique:
Soit dit en passant, la LED «Connect» est connectée à la jambe TXD0 2, et elle s'allume à un niveau logique bas sur GPIO1, ou lorsque le module envoie quelque chose via UART.GPIO0 5 - peut être non seulement un port d'entrée / sortie, mais aussi mettre le module en mode de programmation. Cela se fait en connectant ce port à un niveau logique bas ("enfoncé" à GND) et en appliquant une alimentation au module. Dans la vidéo, je le fais avec le bouton habituel. Après le clignotement, n'oubliez pas de retirer le cavalier / appuyez sur le bouton (il n'est pas nécessaire de maintenir le bouton pendant le clignotement, le module passe en mode programmation lorsqu'il est allumé, et y reste jusqu'au redémarrage).GPIO2 3 - port d'E / S.Et un autre point important, chaque module Wi-Fi GPIO peut fournir en toute sécurité un courant jusqu'à 6 mApour ne pas le brûler, assurez-vous de mettre les résistances en série avec les ports d'entrée / sortie sur ... N'oubliez pas la loi d'Ohm R = U / I = 3,3 V / 0,006 A = 550 Ohms, soit 560 Ohms . Ou négligez-le, puis demandez-vous pourquoi cela ne fonctionne pas.Dans ESP01, tous les GPIO prennent en charge PWM, vous pouvez donc connecter un pilote de moteur à nos quatre GPIO, c'est-à-dire GPIO0-3, ala L293 / L298 et piloter avec deux moteurs, par exemple des bateaux, ou faire disparaître le Wi-Fi RVB. Oui, oui, ce module a beaucoup à bord, et pour les projets simples, le violonisteArduino n'est pas nécessaire, uniquement pour le flashage. Et si vous utilisez ESP07, il existe généralement des ports presque comme Uno, ce qui permet de se passer de Arduino en toute confiance. Certes, il y a un moment désagréable, ESP01 n'a pas du tout de ports analogiques, mais ESP07 n'en a qu'un, ADC est appelé. Bien sûr, cela exacerbe le travail avec les capteurs analogiques. Dans ce cas, un multiplexeur analogique Arduino pour vous aider.Tout semble s'expliquer par le brochage, et voici le schéma de connexion de l'ESP8266 à l'Arduino Nano:
Voir le cavalier sur les pieds Arduino Nano RST et GND? Cela est nécessaire pour que l'arduinka n'interfère pas avec le firmware du module, dans le cas de la connexion de l'ESP8266 en utilisant Arduino, c'est une condition préalable.De plus, si vous vous connectez à Arduino - le module RX devrait aller au RX Arduino, TX - TX. Cela est dû au fait que le microcircuit du convertisseur est déjà connecté aux jambes de l'arduino dans un ordre croisé.Un diviseur résistif composé de résistances de 1 kOhm et de 2 kOhm (peut être constitué de deux résistances de 1 kOhm en série en les connectant) le long de la ligne RX du module est également important. Parce que arduino est une logique 5 V et un module 3.3. Il s'avère qu'un convertisseur de niveau primitif. Il doit l'être, car les jambes du module RXD TXD ne sont pas tolérantes à 5 V.
Eh bien, vous pouvez vous passer de l'arduino en connectant l'ESP8266 via un convertisseur USB-UART standard. Dans le cas de la connexion à Arduino, nous utilisons en fait un convertisseur d'interface usb et uart standard, sans passer par le cerveau. Alors pourquoi dépenser de l'argent encore une fois, si vous pouvez vous passer de l'arduino? Seulement dans ce cas, nous connectons le module RXD au convertisseur TXD, TXD - RXD.Si vous êtes paresseux de vous soucier de la connexion, de jouer avec les résistances et les stabilisateurs - il existe des solutions NodeMcu prêtes à l'emploi:
tout est beaucoup plus simple ici, j'ai collé le câble dans l'ordinateur, installé les pilotes et programmé, n'oubliez pas d'utiliser le cavalier / bouton sur GPIO0 pour mettre le module en mode firmware.Eh bien, c'est probablement tout avec la théorie, l'article s'est avéré être assez gros, et la partie pratique, ala programmation du firmware et des modules, je publierai un peu plus tard.J'ai, sur ma chaîne YouTube , ouvert toute une playlist dédiée à mes vidéos sur ce module Wi-Fi. Les plans ont construit une machine à écrire, ou un bateau, sur le contrôle Wi-Fi, où au lieu de la télécommande sera une puce ordinaire. Mais jusqu'à présent, je ne suis pas venu à cela, donc ce ne sont que des plans pour l'avenir.Suite de cet article.Fiches techniques sur:ASM1117 3.3 B ;ESP8266EX (microcontrôleur qui se trouve dans le module) ;Autres liens:communauté russophone sur ESP8266 ;Schémas dessinés dans le programme Fritzing ;Pourquoi beaucoup n'aiment pas Arduino ;Toutes mes publications sur les geektimes .Par Sergey Sharekin, alias M. Podelkin. Source: https://habr.com/ru/post/fr390593/
All Articles