ESP8266 12E ET LM35DZ

Bonjour à tous,

Je me permets de vous contacter car j'ai des difficultés à comprendre ce qui se passe.

Le titre donne déjà une idée : je veux prendre la température avec une sonde LM35DZ avec un ESP8266.

Alors, j'ai bien vu que normalement on doit alimenter me LM35 avec au moins 4v. Alors oui.... j'ai ça avec la borne vin. J'ai mesuré, et il y a 4,58v.

Je fais le montage que l'on trouve partout sur le forum (une patte sur le +, une sur le gnd, et celle du milieu vers la borne A0) et je compile le code.... résultat 80°C ! Ouf, pas bon....

Je prends la tension sur la borne A0 et j'ai 0,26v. Je regarde le thermomètre dans la pièce 25,6°. Donc le voltage est bon. (Oui je sais, il fait chaud dans mon bureau, le soleil le réchauffe toute l'après midi).

Je regarde ce que donne la valeur sur la borne A0 dans mon code et la réponse est 90.

Donc rien à voir avec le fameux calcul de la tension fournie * 100 /1023 * valeur de la borne.

Je fais une règle de 3 et je trouve que cette valeur ne doit pas être 0.4477 mais 0.2718358 (j'ai pris la température de mon thermomètre et non le voltage car je n'avais pas assez de décimale)

Lorsque j'introduis cette valeur.... plus de problème, la température est rigoureusement identique au thermomètre placé à coté.

Tout va bien dans le meilleur des mondes ?

Bien non car je ne comprends pas !

D'où vient cette valeur de 90 pour une tension de 0,26v au port A0 ?

En poussant le vis, j'alimente le ESP8266 avec la borne 3,3V et..... j'obtiens le même résultat. Pour une sonde qui ne pouvait pas fonctionner sous les 4v. Elle fonctionne quand même bien. Soit, c'est pas l'idéal.... mais une autre question fait sont apparition : Pourquoi doit t'on multiplier la valeur obtenue A0 par le voltage.... alors que typiquement la tension arrivant à cette borne ne dépend pas de la tension du transistor mais de la température * 10mv ?

Il y t'il quelqu'un pour éclairer ma lanterne ?

D'avance merci.

Bonsoir,

Dire ESP8266 est un renseignement insuffisant.

L'ESP8266 en mesure analogique n'accepte que 1V et des poussières (je n'ai pas la datasheet sous la main).

Certains fabricants de carte à base d'ESP8266 ont intégré un pont diviseur pour pouvoir mesurer jusqu'à Vcc par analogie avec les cartes basées sur des micros avr.

Quelle carte as-tu ?
Il y a-t-il un pont de résistance sur l'entrée analogique ?

Bonsoir et merci de me répondre.

La réponse est dans le titre mais j'ai oublié de le redonner dans le texte. C'est un ESP-12E.

Pour la deuxième question, j'ai pas placé de résistance.

ça aide pour comprendre mon problème ?

Bonne soirée,
Vulmix

Pour être plus précis, voici ce que j'ai acheté ; https://www.amazon.com/Makerfocus-ESP8266-ESP-12E-Internet-Development/dp/B01IK9GEQG

Bonsoir

ceci n'est pas "un ESP-12" !!
c'est une carte NodeMCU qui comprend un ESP-12(module avec le capot métallique) et des composants supplémentaires ... dont un pont diviseur qui divise la tension par 3 avant de l'appliquer à l'entrée analogique de la puce ESP8266 dans le module ESP-12
ADC nodemcu.png

Il faut donc tenir compte de ce pont diviseur dans le calcul

ADC nodemcu.png

Ok autant pour moi !!

MERCI !!!

Cela peut donc effectivement expliquer la valeur de 90 au port AO. Sauf que cela ne fait pas 1/3 de la valeur.... mais bon.

Cependant, je ne comprends toujours pas pourquoi dans les programmes on utilise cette fameuse formule :
tension fournie * 100 /1023 * valeur de la borne, puisque la borne A0 ne retourne une tension lié à la température et non à la tension fournie. (et cette formule se retrouve sur Arduino et c° pas uniquement sur ce composant)

pour informatiion voici un exemple de connection d'un LM35 à une carte Wemos D1 Mini, qui , comme la carte NodeMCU possède un pont diviseur 1/3 entre l'entrée A0 de la carte et l'entrée analogique du module radio contenant l'ESP8266

la valeur 3300 est à ajuster en fonction des particularités de la carte (tolérance sur le tension de référence de l'ESP8266 et tomlérances sur les résistances du pont diviseur)

Ok je commence à comprendre... Le 3300 ici lié à la tension d'alimentation du esp8266 et non du LM35 !
Si la carte avait été alimenté en 5V on utilise 5000...

Et voilà ! moins bête que ce matin :slight_smile:

Un grand merci !!

Non, pas tout à fait

L’'ADC d’un ESP8266 utilise une référence de tension interne d’environ 1000mV (et non la tension d’alimentation) et ensuite il faut multiplier par 3,3 (pont diviseur) 1000*3,3 donne 3300

(On retombe sur 3300 parce que le pont diviseur (220k/100k) a été choisi de manière a amener la pleine échelle a peu près niveau de la tension d’alimentation)