Sonde de température à 2 fils et optocouplage

C'est encore moi :sweat_smile:
Bonjour à tous

Sur ESP32, j'ai réussi à illuminer une LED (sisi) avec un optocoupleur.
La LED est sur l'optocoupleur en sortie avec le 3.3v de l'ESP32. L'opto est sur le pin14.

Ce que je souhaite, c'est faire varier l'entrée de l'optocoupleur en fonction de la température lue sur la sonde (ici c'est une sonde deux fils, on dirait un simple câble) sur le pin34. A l'origine, cette sonde marche sur du 5v. Je ne suis donc pas très sûr de moi en la mettant sur le 5v de l'ESP32 et en lisant ce qui en ressort en ADC sur le pin34.
Vous me suivez?

Prudemment, j'ai essayé en 3v3 et j'ai 4095 qui s'affiche en boucle. J'ai essayé sur le 5v, pareil. Ca ne varie pas... Pourtant le pin34 est bien adapté à la lecture d'ADC...
Alors, du coup, qu'est-ce qui ne marche pas???

(j'ai commandé une breadboard et des Dupont, ça sera plus pratique et plus propre, patience)

from machine import Pin, ADC, PWM
from time import sleep_ms

led = PWM(Pin(14), 5000) #LED is on pin 14
temp = ADC(Pin(34)) #temp sensor is on 34

while True:
    temp_value = temp.read() #read temp sensor value
    print(temp_value)
    
    led.duty(i) #fade led
    sleep_ms(200) #ZZZzzzz a bit

Ça fait un moment que tu traînes sur le forum, tu sais que l'on est pas des devins, il faudrait quand même un peu plus de détail sur la sonde en question

Je n'en trouve pas en photo.
C'est la sonde qui est d'origine sur mon poêle à granulés
Elle fonctionne avec deux fils seulement. Sur le poêle, elle se branche sur une prise 5v (testée au multimètre). Elle ressemble juste à un câble noir, il n'y a rien de visible au bout. je n'ai pas de réf à donner (qui soit compréhensible pour moi)
Au multimètre, à 20kohm elle renvoie 3.87 à 20°c
On la voit sur la photo jointe.
Voici ce qui est écrit dessus (attention c'est long)
#4622/#0378 FT. OLYMPIC WIRE & CABLE E208158-01 22AWG 2C 105°C (UL) ITC SUN RES OR PLTC OR CL3 FT-4 OR C(UL) CIC PVC 300V 90°C WEY/DRY FT1 FT4 -40°C SR "ROS II" MADE IN USA

Tu as raison mais je m'attendais à une réponse du genre "c'est une RM2620TX13, ça s'utilise comme ceci et pas comme ça" :smile:

Est-ce que je ne dois pas ajouter une résistance comme sur ce schéma?
Si la sonde affiche 3.87 à 20kOhm, cette résistance devrait donc être de 10000kOhm?

Cela me fait penser à une thermistance.

Le poêle à l'arrêt :grinning:
Avec un multimètre mesure la résistance de la sonde.

Si tu es autour de 25 ° tu devrais trouver une valeur proche de 1 k ou 10 k ou 20k.. enfin une valeur ronde.

Au multimètre, à 20kohm elle renvoie 3.87 à 20°c et 6.69 à 8°c
En toute franchise je ne sais pas très bien à quoi cela correspond.

Mon idée était de relever une valeur sur un pin à travers cette sonde et, par PWM, renvoyer la même par optocouplage. Ca m'évitait de faire des étalonnages... Sauf qu'analogread n'existe pas en µpython sur ESP

Je ne m'avoue pas vaincu mais on m'a fait comprendre qu'il commence à faire froid ici :roll_eyes: et comme dit le proverbe, poêle à l'arrêt ne chauffe point...

AnalogRead ne fait que configurer la pin dans la sous fonction mesure analogique.
Il n’y a rien de mystérieux : c’est une histoire d’ecriture et de lecture de registres.
Il doit bien exister un equivalent en python.

Oui, j'utilise ADC
Cette mystérieuse sonde me doit quelques heures de sommeil, faut que je trouve comment ça fonctionne... sinon je suis condamné à la remettre sur le poêle en signe d'échec :grin:

C'est une thermistance CTN, j'ai piqué un montage sur le net, merci l'ami

Tu n'a pas trop le choix de calibrer ta thermistance, si tu n'a pas sa courbe de résistance en fonction de la température.

Le plus simple serait de la remplacer par une sonde étalonnée, je ne sais pas si on peut trouver facilement des sondes à un fil de data sur la plage de température de ton poêle.
en cherchant sur le forum j'ai trouvé ce post

1 Like

Les thermistances sont assez normalisées, on devrait pouvoir s'en sortir sans étalonnage tant que l'on ne veut pas le 1/10 de degré.

J'ai recherché de la doc Vishay qui est un fabricant de composant passif très sérieux.

J'ai trouvé ce document :

Si je prend la première courbe je trouve :
A 8 °C la valeur de la thermistance fait 2,192 fois la valeur à 25 °C
A 20 °C la valeur de la thermistance fait 1,249 fois la valeur à 25 °C

Tu dis avoir mesuré :
6,69 k à 8 °C ce qui ferait une thermistance à 25 °C de 6,69/2,192 = 3 k
3,87 k à 20 °C ce qui ferait une thermistance à 25 °C de 3,87/1,249 = 3 k

Je pense pouvoir dire sans (trop) me tromper que la valeur de la thermistance à 25 °C est de 3 kOhms.

Je suis dessus depuis ce matin. J'arrive à lire une valeur sur la thermistance.
L'idée c'était de l'envoyer sur un optocoupleur en PWM en espérant que de l'autre côté le poêle lise la même valeur que celle lue sur la thermistance.

Ca ne marche pas du tout car en fonction de la résistance utilisée pour lire la thermistance, les valeurs changent. Ca signifie qu'il me faudrait savoir quelle résistance est utilisée dans le poêle pour lire les valeurs de la thermistance. Du coup... bah c'est pas possible.
Je vais donc, demain parce que là j'ai mal à ma fierté, étalonner les valeurs de la thermistance et, plutôt que d'envoyer ça sur un optocoupleur, faire un tout-ou-rien avec un relai bistable, ou une valeur haute et une valeur basse sur l'optocoupleur.
EN faisant ça, ce que j'espère, c'est que le poêle pense qu'il fait par exemple 10°c ou 30°c.
Ainsi, fonction de la température que l'ESP32 lira, il commandera le poêle en "chauffe" ou "ne chauffe pas".
J'aimerais tellement démonter ce poêle...

Pour être précis quant à mon idée de départ, je me disais que, comme l'ADC va de 0 à 4500, pour une valeur de 2250 (soit 50%) il m'aurait suffi d'envoyer en PWM une valeur de 1024/2=512. Du coup, à l'autre bout de l'optocoupleur, on aurait aussi eu 2250. C'est certainement aussi ridicule que naïf.

J'essaie de comprendre ton post. Ca fait comme quand tu as la solution sous les yeux mais que tu ne la vois pas ^^ :face_with_monocle:

Soyons clair.
Tu parles de la résistance en série avec la thermistance ou tu parles du calibre du multimètre.

Premier cas :
La thermistance est mise en série avec une résistance fixe.
L'ensemble forme un pont résistif.
Si tu as 3 fils qui sortent du poêle, tu as les deux fils d'alimentation et le fil du point milieu.
Tu as trois possibilités en mesurant deux fils par deux fils :

  1. la thermistance seule
  2. la résistance fixe
  3. l'ensemble des deux résistances en série.

Deuxième cas :
Fonctionnement d'un multimètre en mode ohmmètre.
Le multimètre ne sait que mesurer des tensions, rien d'autre.
En mode ampèremètre, il mesure la tension aux bornes d'un shunt.
Em mode ohmmètre, c'est un peu plus compliqué.
Dans le multimètre, il y a plusieurs sources de courant constant, on les commute en changeant de calibre.
L'ohmmètre ne fait que mesurer la tension qui se développe dans la "résistance" en mesure.

Difficulté avec les thermistances :
Dans toute résistance parcourue par un courant, il y a échauffement par effet Joule W =RI2*t

Avec une thermistance, si le courant envoyé par le multimètre est trop grand, il y a auto-échauffement et variation de valeur.

Fait plusieurs mesures avec différents calibres en commençant par le calibre le plus élevé.

Tu l'a bien démonté quelque pars ta sonde à deux fils?
Il est bien branché sur un PCB de ton poêle?

Oui, je l'ai prise sur le poêle. Deux fiches sortent du poêle, je n'ai pas accès au PCB, tout est riveté.
Je n'ai donc que ces deux fiches pour piloter le poêle.
Je viens de faire un test digne de la NASA en faisant passer la thermistance dans un carton par un petit trou et un thermomètre à viande de la même manière? En chauffant avec un sèche cheveux l'intérieur du carton, j'arrive à 27.7 degré pour lire 3k sur le multimètre.

Les thermistances ne sont pas à 0,1 % à 25 °C.
Le thermomètre à viande il est étalonné ou il done la température de cuisson à la louche ?
Si la différence est constante selon la température il suffit d'en tenir compte dans le programme.
Laisse la fenètre ouverte toute la nuit, refait tes mesures demain matin et compare les eccarts.

PS : enlève la coche résolu.
On se fait engueuler par le forum chaque fois que l'on te répond.
Merci.

1 Like


Je parlais de cette résistance R

Note: la thermistance n'a que deux fils, si je veux mesure une valeur ADC, j'ai besoin d'ajouter (semble-t-il) une résistance R pour y parvenir. C'est à cause de ça que je m'emmêle parce que le poêle a sûrement besoin lui aussi d'une résistance lui aussi, mais de combien? Ce que je mesure est lié à R, ne sachant pas quelle est cette résistance dans le poêle, je ne peux pas savoir ce que je dois 'simuler'.


Pour la sobriété énergétique, on doit pouvoir faire mieux ^^
Une webcam qui prend toutes les deux minutes en photo un thermomètre et le multimètre qui mesure la thermistance. On chauffe la salle de bains puis on ouvrira la fenêtre...