Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Modules NodeMCU ESP8266 & ESP32 !


Sujet :

Embarqué

  1. #1
    Expert éminent sénior
    Modules NodeMCU ESP8266 & ESP32 !
    Salut à tous.

    Je découvre le module NodeMCU ESP8266 :
    --> https://www.gotronic.fr/art-module-n...8266-27744.htm
    ainsi que le module NodeMCU ESP32 :
    --> https://www.gotronic.fr/art-module-n...sp32-28407.htm

    Je n'ai pas encore fait son acquisition, mais mon choix aurait tendance à se porter sur le NodeMCU ESP32.

    Pour tester ce module, je vais créer sur un breadboard trois tests :
    --> le classique clignotement de leds
    --> un relais
    --> capteur de température.

    1) pour les leds, il n'y a aucune difficulté.

    2) si je ne me suis pas trompé, le capteur de température sera un LM35DZ :
    --> https://www.gotronic.fr/art-lm35dz-10295.htm

    Si vous avez mieux à me proposer, je suis preneur.
    Cela peut être un complément, comme capteur d'humidité et/ou de pression.
    Il devra bien sûr se monter facilement sur un breadboard.

    3) le relais. J'ai une grosse difficulté car je n'arrive pas à trouver, chez Go Tronic, ce qu'il me faut.
    D'après ce que j'ai compris, les broches du ESP32 fonctionnent en 3,3Vcc.
    Le relais devra avoir des broches pour les introduire dans les trous du breadboard.
    Je suppose que je vais devoir, pour le branchement, le complèter avec un transistor, voire des résistances.
    Qu'est-ce que vous pouvez me conseiller à ce sujet ?

    Pour la programmation, je vais faire des scripts.

    a) je vais, pour ce faire, installer l'IDE ARDUINO et utiliser le langage LUA.
    Je vais créer un serveur WEB qui va se résumer à une simple page.
    Elle affichera :
    --> en temps réel la tempéraure,
    --> des boutons pour allumer ou étendre les leds
    --> un autre bouton pour piloter le relais.

    J'ai trouvé des tas d'exemples sur le net, et je pense ne pas avoir trop de difficulté à réaliser le script LUA.

    b) je désire dans mon second exemple (si c'est faisable), écrire un programme "C/C++" et téléverser son exécutable directement dans l'ESP32.
    Ce développement utilisera comme technique le socket.
    Autrement dit, je vais transformer l'ESP32 en serveur et coté raspberry (ou windows), interroger en mode client l'ESP32.

    La grosse difficulté est que je ne sais pas où trouver des informations que comment téléverser un exécutable écrit en "C/C++" ?
    De même, je ne sais pas aussi trouver les outils nécessaire au développement.

    Si quelqu'un a déjà fait cela, je suis preneur.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  2. #2
    Rédacteur

    Salut débutant ESP

    L'IDE c'est celui de l'Arduino, que j'ai commencé à utiliser en 2010!
    Un sketch de l'Arduino (j'en ai plus qu'un) passe sur l'ESP avec l'IDE avec les pins à corriger.

    Ensuite j'ai passé au RPi et plus tard les ESP sont arrivés (le 8266 et 32) ... j'en ai 6 je crois et suis un fun.
    Prends l'un ou l'autre: l'ESP32 a plus d'entrées analogiques (une seule sur le NodeMCU ESP8266).

    En deux mots, un ESP c'est un Arduino bon marché avec WiFi.

    Tu n'es pas dans le bon groupe, il faut aller direct sur celui de l'Arduino: https://www.developpez.net/forums/f2...arque/arduino/

    Je n'ai jamais fait de C/C++ sur les ESPs. Je ne vois pas l'utilité.
    Il y a aussi le MicroPython.

    J'ai quelques pages: http://www.boichat.ch/joomla/index.p...amp;Itemid=503

    J'ai bien aimé écrire: https://boichat.developpez.com/tutoriels/python/micropython-pour-nodemcu-ESP8266/

    A+

  3. #3
    Rédacteur

    Citation Envoyé par Artemus24 Voir le message

    La grosse difficulté est que je ne sais pas où trouver des informations que comment téléverser un exécutable écrit en "C/C++" ?
    De même, je ne sais pas aussi trouver les outils nécessaire au développement.
    C'est très loin, 10 ans peut-être, où je faisais plus de C/C++.
    Je me souviens d'avoir, je crois, écrit un sketch avec l'IDE de l'Arduino.
    Le sketch est transformé en code C qu'on peut récupérer, dans les répertoires de compilation, ajouter du code C à la main, et faire une compilation depuis là.
    Comment j'avais fait. Je ne sais plus! Et pourquoi? Sans doute juste pour jouer!
    Il faudrait chercher!

    Bref, ton premier job sera de jouer avec l'IDE de l'Arduino, d'intégrer les include.h de l'ESP8266 ou de l'ESP32, et ceci dans tes sketches (fichiers .ino) et d'ajouter des composants là-autour.
    C'est pas cher, achètes un de chaque.
    Mon tout premier ESP avait été un NodeMCU ESP8266 et je me souviens d'avoir testé une LED d'abord connectée à mon Arduino (que je n'avais plus touché depuis des mois) et ensuite à mon ESP.
    J'ai un NodeMCU ESP32 mais aussi un ESP32 d'Espressif.
    Il faut parfois regarder chez le constructeur (data sheets) car il y a parfois de petites différences.

    Oui, j'utilise aussi des LM35 (besoin d'une interface analogique pour le RPi).
    Si tu as déjà utilisé un DS18B20 sur un RPi, c'est utilisable: il faudrait y installer les librairies dans l'IDE de l'Arduino.
    Dans mon article sorti aujourd'hui (merci f-leb encore une fois), il y a un exemple avec le Dallas DS18B20 sur l'ESP8266 (Python Flask et SQLite pour le Raspberry Pi 3 ou 4 - exemples de communication avec des ESP32 ou ESP8266):les données de températures mesurées sur un ESP8266 sont récupérées par un serveur Flask (Python) d'un RPi et stockées dans une base de données SQLite.

    La référence suprême: https://randomnerdtutorials.com/

    Tu va voir: tu vas beaucoup t'amuser! Cela a été mon cas. Que du plaisir.
    Cordialement
    A+

  4. #4
    Expert éminent sénior
    Salut Boijea.

    Citation Envoyé par boijea
    En deux mots, un ESP c'est un Arduino bon marché avec WiFi.
    Pas du tout !

    Tu voulais peut-être dire que c'est un microcontrôleur.
    Et tous les microcontrôleurs ne sont pas des arduinos.
    --> https://www.gotronic.fr/art-carte-ar...-uno-12420.htm

    Je te rappelle que l'arduino (nom commercial) est basé sur un ATMega328 (microcontrôleur).
    Tandis que le module NodeMCU ESP32 (nom commercial) est basé sur un ESP32 (microcontrôleur).
    Oui, je sais, ils ne se sont pas trop foulés pour attribuer un nom comercial.
    --> https://www.gotronic.fr/art-module-n...sp32-28407.htm
    Et celui que je vais acheté chez Gotronic est un espressif.

    Citation Envoyé par boijea
    Tu n'es pas dans le bon groupe, il faut aller direct sur celui de l'Arduino
    Je croyais que le forum arduino était consacré exclusivement à l'arduino et non à ces clones.
    Mon sujet a été déplacé dans le forum des systèmes embarqués.

    Pour revenir au cœur de mes problèmes, qui sont surtout électroniques, j'ai lu tes deux liens.

    Pour le thermomètre, je constate que tu as utilisé un (anciennement Dallas et maintenant Maxim) DS18B20 :
    --> https://www.gotronic.fr/art-ds18b20-14094.htm
    Quelle est la différence avec un LM35DZ (voir le lien dans mon premier message) ?

    J'ai lu ton premier article consacré au thermomètre digital DS18B20.
    Déjà, je ne sais pas si tu as utilisé le TO92 ou la sonde ?
    Il serait bien de préciser les références exacte du matériel utilisé avec des photos par exemple.

    Ensuite, tu n'as rien donné comme illustration du montage sur la breadboard.
    En lisant un autre article, je constate qu'il est fait référence d'une résistance de 4.7k ohms alors que tu n'en parles même pas.
    --> https://www.carnetdumaker.net/articl...duino-genuino/

    Par la suite, tu t'es consacré à l'aspect programmation.
    Je suis d'accord avec la bibliothèque "<OneWire.h>".
    Mais d'où sort la bibliothèque "<DallasTemperature.h>" ?
    L'autre bibliothèque "SSD1306Wire.h" st consacré à l'écran oled.

    Ce ne sont pas des aspects de programmations qui m'intéresse car je saurais le faire tout seul quand j'aurai le matériel à ma disposition.
    C'est l'aspect électronique entre autre.
    Pourquoi choisir tel composant plutôt qu'un autre ?
    Comment assembler sur une breadboard les composants ?
    Comment calculer les valeurs des composants (par exemple les résistances) qui sont utilisés ?
    Peut-être que tu le sais, mais en te lisant, je suis dans le flou total.
    Si l'information est ailleurs, il serait bien d'indiquer où !

    L'autre article sur micropython ne m'intéresse pas du tout.
    Pourquoi utiliser un capteur de température LM35 dans cet article alors que tu as utilisé le capteur de température DS18B20 ?

    Tu ne donnes pas les caractéristiques du matériel utilisé, entre autre la led RGB.
    Et tu donnes 220 ohms comme valeur des trois résistances ???
    Comment peux-tu justifier cette valeurs pour les trois couleurs de ta led RGB ?

    Partont de cette led RGB de chez Gotronic où nous avons ses caractéristiques.
    --> https://www.gotronic.fr/art-led-rgb-...d5rvb-2103.htm

    Dans cette page de chez Gotronic, il est rappelé comme évaluer la résistance :
    --> https://www.gotronic.fr/cat-leds-5-mm-1293.htm

    La tension qui est délivré par l'ESP32 est du 3,3Vcc.
    Il faut savoir (car j'ai fait un recherche) que l'intensité maximale sur une broche du ESP32 est de 12mA.
    Tu ne tiens pas compte, non plus, de la chute de tension aux bornes de tes trois leds.

    L'intensité de 20mA est au maximum pour une led RGB.
    Or tu ne dois pas dépasser les 12ma. Personnellement, je prendrais plutôt du 5mA.

    1) Si on fait abstraction de la chute de tension (Vf), le calcul donne :
    --> 3.3 Vcc = R * 5mA
    --> R = 3,3 / 0,005
    --> R = 660 ohms.

    2) Si tu tiens compte de la chute de tension pour les leds verte et bleue, il y a un problème.
    Vf est de 3.2Vcc. Or la tension delivrée par l'ESP32 est de 3,3Vcc.

    On peut faire le calcul, mais cela n'a pas de sens :
    --> 3,3 - 3,2 = R * 0,005
    --> R = 0,1 / 0,005
    --> R = 20 ohms.

    3) pour la led rouge ==> Vf = 2Vcc.
    --> 3,3 - 2 = R * 0,005
    --> R = 1,3 / 0,005
    --> R = 260 ohms.

    En admettant que la led RGB soit la même que celle de chez Gotronic, je pense que la luminosité du vert et du bleu est plus faible que celle du rouge.

    A cause de cette difficulté, il vaut mieux ne pas utiliser une led RGB.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Responsable Arduino et Systèmes Embarqués

    Bonjour,

    Beaucoup de questions, je ne répondrais que partiellement (mais je pourais revenir plus tard...)

    Citation Envoyé par Artemus24 Voir le message
    2) si je ne me suis pas trompé, le capteur de température sera un LM35DZ :
    Pourquoi penses-tu te tromper ? Si c'est pour apprendre ou s'entraîner avec une mesure de température ambiante en intérieur, il fera le boulot.
    Mais tout dépend de l'environnement du montage, de la plage de température, de la précision souhaitée, du prix...
    Le LM35 est un capteur de température analogique : 10mV/°C, la tension délivrée est de 0,2V pour une température ambiante de 20°C.
    La résolution de l'ADC de l'ESP32 est bonne (12bits), inférieure à 1 mV. Pour une utilisation en intérieur (disons entre 10 et 30°C pour être large, soit une tension entre 0,1 et 0,3V), la plage 0 - 3,3V n'est pas très adaptée.
    Souci de l'analogique, sensibilité au bruit (une variation de 0,01V, et boum, une variation de 1°C déjà). De plus, l'ADC de l'ESP32 n'a pas une caractéristique réputée très linéaire...

    Avec quelques précautions (condo de filtrage, moyenne sur plusieurs valeurs, calibration), on devrait quand même avoir de bons résultats.

    Ma préférence irait plutôt vers un capteur de température numérique : ds18b20 ou dht11/22 pour ceux que je connais.
    Plus coûteux, mais le capteur intègre la mesure analogique, le traitement, la conversion A/N et la communication numérique.
    L'inconvénient : pour ces deux capteurs, un protocole un peu particulier qui nécessite une bibliothèque adaptée.


    Citation Envoyé par Artemus24 Voir le message
    3) le relais. J'ai une grosse difficulté car je n'arrive pas à trouver, chez Go Tronic, ce qu'il me faut.
    D'après ce que j'ai compris, les broches du ESP32 fonctionnent en 3,3Vcc.
    Le relais devra avoir des broches pour les introduire dans les trous du breadboard.
    Je suppose que je vais devoir, pour le branchement, le complèter avec un transistor, voire des résistances.
    Qu'est-ce que vous pouvez me conseiller à ce sujet ?
    Tu veux utiliser un relais ou un module relais ? Ce dernier intègre tout le circuit de commande, les protections. Il n'y a plus qu'à le relier directement à l'ESP (à adapter en 3,3V il est vrai si la commande du relais est un 5VDC).


    Citation Envoyé par Artemus24 Voir le message
    b) je désire dans mon second exemple (si c'est faisable), écrire un programme "C/C++" et téléverser son exécutable directement dans l'ESP32.
    Ce développement utilisera comme technique le socket.
    Autrement dit, je vais transformer l'ESP32 en serveur et coté raspberry (ou windows), interroger en mode client l'ESP32.

    La grosse difficulté est que je ne sais pas où trouver des informations que comment téléverser un exécutable écrit en "C/C++" ?
    De même, je ne sais pas aussi trouver les outils nécessaire au développement.
    Tu peux le programmer en "langage Arduino" dans l'EDI standard d'Arduino, mais je suppose que ce n'est pas ça que tu veux.
    Sinon tu peux installer toute la toolchain du framework officiel ESP-IDF : https://docs.espressif.com/projects/...nux-setup.html

  6. #6
    Responsable Arduino et Systèmes Embarqués

    Citation Envoyé par Artemus24 Voir le message
    Je croyais que le forum arduino était consacré exclusivement à l'arduino et non à ces clones.
    Mon sujet a été déplacé dans le forum des systèmes embarqués.
    Il n'y a pas de forum (pas encore) dédié aux ESP8266/ESP32.
    Comme on peut les programmer aussi dans l'EDI Arduino standard, ça porte à confusion et on retrouve des discussions sur l'ESP dans le forum Arduino. On est bien d'accord qu'un ESP n'est pas un Arduino. La confusion est encore plus grande quand on commence à trouver des ESP (comme périphérique WiFi ?) sur des cartes Arduino (je ne sais plus laquelle)

    Bon... Pas bien grave, les modérateurs déplacent gentiment les discussions

  7. #7
    Expert éminent sénior
    Salut f-leb.

    Citation Envoyé par f-leb
    Beaucoup de questions, je ne répondrais que partiellement (mais je pourrais revenir plus tard...)
    Il n'y a aucune obligation de répondre immédiatement, ni même de répondre tout simplement.
    En tout cas, merci de te prêter à cet exercice.

    Citation Envoyé par f-leb
    Pourquoi penses-tu te tromper ?
    Bonne question !

    Je possède le catalogue de 2018 de chez Gotronic et je le lis afin de m'informer sur la nature exacte des composants dont j'aurai besoin par la suite.
    Dans les kits de base, il est fait souvent référence à ce capteur de température, sauf que j'ignore totalement si c'est ce dont j'ai besoin :
    --> https://www.gotronic.fr/art-kit-de-b...t021-25859.htm
    D'ailleurs, ce n'est pas que ce composant qui me pose problème :
    --> 1 servomoteur (à quoi cela peut-il servir ?)
    --> 1 capteurs LDR (qu'est-ce que c'est ?)
    --> 2 buzzers (1 passif et 1 actif) (quel est la différence en 1 passif et 1 actif ?)
    --> 1 potentiomètre 10k ohms (il y a tellement de choix que je ne sais pas lequel prendre)
    --> 2 diodes 1N4007 (pour quel usage ?)
    --> 1 diode IR (je suppose qu'il faut l'utiliser par une télécommande infrarouge ?)

    Je rappelle que je suis un débutant de chez débutant et je ne comprends pas toujours le jargon utilisé.

    Citation Envoyé par f-leb
    Ma préférence irait plutôt vers un capteur de température numérique : ds18b20 ou dht11/22 pour ceux que je connais.
    Merci d'avoir confirmé ce choix. Il faut alors que je prenne le DS18B20 comme dans l'exemple de boijea !

    Citation Envoyé par f-leb
    Tu veux utiliser un relais ou un module relais ?
    Au départ de mes investigations, j'ai trouvé chez Gotronic les "interfaces à relais".
    C'est cher et cela ne correspond pas du tout à l'usage que je veux en faire.

    Ensuite, j'ai trouvé ce genre de relais chez Kubii :
    --> https://www.kubii.fr/composants-rasp...496008250.html
    le prix est plutôt intéressant, mais il fonctionne en 5Vcc.

    Je suis revenu chez Gotronic :
    --> https://www.gotronic.fr/cat-relais-614.htm
    et j'ai cherché un relais à 3,3Vcc et j'ai trouvé :
    --> https://www.gotronic.fr/art-relais-o...v1-3-23134.htm
    --> https://www.gotronic.fr/art-relais-f...11-3-24389.htm
    mais je ne sais pas comment l'adapter à un breadboard.

    Pour moi, cela devient très compliqué !

    Citation Envoyé par f-leb
    Bon... Pas bien grave, les modérateurs déplacent gentiment les discussions
    Quand il y a trop de subdivisions d'un forum, on s'y perd.
    Ce n'est pas de la mauvaise volonté mais la nomenclature du créateur de ce forum n'est pas nécessairement celle des utilisateurs.
    Pourquoi créer un forum arduino, au lieu d'un forum microcontrôleur ?

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  8. #8
    Responsable Arduino et Systèmes Embarqués

    Bonsoir,

    Citation Envoyé par Artemus24 Voir le message
    Merci d'avoir confirmé ce choix. Il faut alors que je prenne le DS18B20 comme dans l'exemple de boijea
    !
    Existe en version avec boîtier T092, mais aussi dans une version ou le composant est encapsulé dans un cylindre inox avec un câble suffisamment long pour envisager une utilisation en extérieur.

    Citation Envoyé par Artemus24 Voir le message
    Ensuite, j'ai trouvé ce genre de relais chez Kubii :
    --> https://www.kubii.fr/composants-rasp...496008250.html
    le prix est plutôt intéressant, mais il fonctionne en 5Vcc.
    L'alimentation de la bobine du relais est en 5V, elle peut se faire avec la broche 5V de l'ESP32 (la broche à côté du bouton RST).
    Mais ce genre de modules comprend un étage de commande avec octocoupleur, et d'après les divers tutos qu'on peut trouver sur Internet, il est probable que la commande soit compatible avec une sortie 3,3V d'un ESP ou d'un Raspberry Pi (difficile d'en être certain à 100% sans la doc).
    Avec ces modules, tu as quand même la sécurité (isolation des circuits de commande et puissance) sans aucun composant supplémentaire à câbler (diode, transistor, résistances...) puisque tout est intégré dans le circuit du module.


    Citation Envoyé par Artemus24 Voir le message
    Quand il y a trop de subdivisions d'un forum, on s'y perd.
    Ce n'est pas de la mauvaise volonté mais la nomenclature du créateur de ce forum n'est pas nécessairement celle des utilisateurs.
    Pourquoi créer un forum arduino, au lieu d'un forum microcontrôleur ?
    Vaste débat dans lequel je ne rentrerai pas ici