Si vous pensez que j'insiste beaucoup sur les modules ESP8266/ESP32… je suppose que je suis coupable. Aussi incroyable que cela paraisse, ces microcontrôleurs représentent un excellent point de départ pour quiconque souhaite se mouiller les pieds dans les eaux du DIY, du code Arduino et d'autres langages compatibles. Il existe de nombreuses options pour programmer un ESP32, mais aujourd'hui nous avons décidé de revenir sur la chaîne d'atomic14, qui nous enseigne le minimum nécessaire en matière de composants…
J'imagine que quelqu'un doit penser : «Lisandro, cela n'a aucun sens». Pourquoi suivre ce chemin alors qu'un module ESP32 avec son propre régulateur de tension, des boutons de reset, des broches soudées et un port micro USB inclus vaut moins de 10 euros sur Amazon ? La réponse n'est autre que «apprentissage». Oui, un module ESP32 prêt à l'emploi nous mènera aisément à bon port, mais un jour vous devrez l'extraire d'un autre produit, ou votre adaptateur USB-série tombera en panne sans préavis. Connaître le brochage et les fonctions internes de tout module ESP / Arduino / ATtiny / STM32 est toujours une bonne idée, et la dernière vidéo d'atomic14 va dans cette direction.
Programmer un module ESP32 avec des composants minimaux
La première chose à mentionner concernant ce tutoriel est qu'il ne fonctionne qu'avec les modèles ESP32-S2 et ESP32-S3. La raison est simple : ce sont les seuls membres de la famille ESP qui disposent du support USB-OTG (tous les autres nécessitent un adaptateur). En même temps, il ne faut pas perdre de vue que l'ESP32 fonctionne en 3,3 V, et toute tentative de le connecter directement à 5 V l'illuminera comme un arbre de Noël… avant de le détruire. Alors, de quoi avons-nous exactement besoin ?
- Une source de 3,3 V (batterie, adaptateur, à vous de choisir), connectée à la broche correspondante (3v3 = +) et à l'une des broches GND (-)
- La broche Enable, connectée aux 3,3 V pour la mettre à l'état haut (high)
- IO19 est «Data -» du port USB, tandis que IO20 est «Data +»
- IO0 doit être connecté à GND la première fois que l'on programme l'ESP32. Il serait judicieux d'utiliser un bouton-poussoir ici.
- La LED sur IO2 et sa résistance sont optionnelles, mais très utiles pour vérifier que tout fonctionne.
- Et bien sûr, tout pilote (driver) pertinent pour Windows (si vous l'utilisez), accompagné d'un IDE compatible (Arduino IDE, PlatformIO, etc.)
Pour terminer, j'aimerais ajouter un détail à peine mentionné dans la vidéo d'atomic14 : de nombreux utilisateurs signalent des problèmes de connectivité sur certains modules ESP32, avec le message «Une erreur fatale s'est produite : échec de la connexion à l'ESP32». Le youtubeur VoltLog suggère que cela est dû à une erreur provoquée par le saut du signal Enable, qui modifie la condition de IO0. La solution est d'ajouter un condensateur de 1 microfarad entre la broche Enable et GND. Cela rend Enable un peu plus lent et évite que l'erreur ne se déclenche.