Sonde PT1000 avec Max31865 et un ESP32

bonjour,

j’ai fait un petit montage avec un Esp32 et une carte Max31865 et sonde PT1000 pour récupérer la température de mon ballon d’eau chaude. Je rencontre un problème car ma sonde me remonte l’info suivant dans les logs:

[W][max31865:123]: RTD High Threshold
[W][max31865:132]: RTD Resistance Registers fault bit set! (0xFFFF)
[D][sensor:125]: ‹ Temperature ECS ›: Sending state 988.83966 °C with 2 decimals of accuracy

Quelqu’un a t il déjà rencontré ce problème?
Merci de votre aide

Salut
tu n’as pas mis ton yaml esphome donc je suis pas certaine, mais vu le message, il semble que tu as défini une valeur RTD qui n’est pas adaptée.
Cette valeur sert au calibrage de ton capteur, donc ça explique ta valeur de température complètement bidon.

Combien as tu mis pour RTD ??? je parie que tu as mis la valeur d’exemple de la doc, c’est a dire 100ohms ??

  • reference_resistance (Required, float): Reference resistor on the PCB. Adafruit’s PT100 (#3328) uses 430 Ω, their PT1000 (#3648) uses 4300 Ω.
  • rtd_nominal_resistance (Required, float): Nominal resistance of the RTD at 0°C. PT100 is 100 Ω, PT1000 is 1000 Ω.

toi c’est une PT1000 donc RTD = 1000ohms et reference = 4300ohms

Salut

voici mon yml:

spi:
  clk_pin: GPIO18
  miso_pin: GPIO19
  mosi_pin: GPIO23
  

switch:
  - platform: restart
    name: "restart_ecs`Texte préformaté`"
    
sensor:
  - platform: max31865
    name: "Temperature ECS"
    cs_pin: GPIO5 
    update_interval: 10s
    id: ecs
    reference_resistance: 4300 Ω
    rtd_nominal_resistance: 1000 Ω
    rtd_wires: 2
    mains_filter: 50 Hz

j’ai pourtant bien les bonnes valeurs

oui effectivement.
Par contre tu as configuré rtd_wires à 2, il est indiqué dans la doc de bien souder les cavaliers sur la carte en correspondance. Tu l’as fait ???

J’ai pas d’autre idée :wink:

j’ai bien vérifié les soudures, elles sont bonnes
j’ai testé un autre max31865 sans soudure en faisant les ponds aux borniers, même résultats
j’ai testé avec une résistance de 330ohms:

[13:41:25][D][sensor:125]: 'Temperature ECS': Sending state 650.85883 °C with 2 decimals of accuracy
une de 220ohms:
[13:43:15][D][sensor:125]: 'Temperature ECS': Sending state 327.39276 °C with 2 decimals of accuracy
et une de 1kohms:

[13:44:45][W][max31865:123]: RTD High Threshold
[13:44:45][W][max31865:132]: RTD Resistance Registers fault bit set! (0xFFFF)
[13:44:45][D][sensor:125]: 'Temperature ECS': Sending state 988.83966 °C with 2 decimals of accuracy

avec la résistance de 1kohms j’aurais dû obtenir 0°
on dirait que le paramètre rtd_nominal_resistance n’est pas pris en compte
c’est vraiment étrange ce comportement

un truc tout bête que je viens de voir. Dans la doc il est marqué rtd_nominal_resistance (Required, float): ce qui veut dire que la valeur est un chiffre (avec virgule si besoin). Mais dans ton cas 1000 Ω doit être reconnu comme du texte donc essayes avec simplement 1000.
et fais pareil avec 4300

Salut

j’ai déjà essayé de changer ces valeurs en mettant 1000.00 ou 1000, le problème reste le même. Je vais tester une PT100 avec les modules max31865.
Soit les max sont défectueux, soit ne fonctionne pas avec les PT1000, au quel cas peut être faire un montage avec des résistances…

Bon je fais le test et reviens avec le résultat
Merci encore bricodx pour l’aide

Salut
bon le verdict est tombé :slight_smile: ca fonctionne avec une PT100, ce veut dire que les 2 modules Max31865 que j’ai ne sont pas compatible avec la sonde PT1000 :frowning: :rage:.

Voici les logs:
[14:22:43][D][sensor:125]: 'Temperature ECS': Sending state 22.96980 °C with 2 decimals of accuracy

je remets la conf:

spi:
  clk_pin: GPIO18
  miso_pin: GPIO19
  mosi_pin: GPIO23

sensor:
  - platform: max31865
    name: "Temperature ECS"
    cs_pin: GPIO5 
    update_interval: 10s
    id: ecs_ext
    reference_resistance: 430.0
    rtd_nominal_resistance: 100.0
    rtd_wires: 2
    mains_filter: 50 Hz

J’ai trouvé qlq1 qui avait le même problème que moi, et en fait il faut changer la résistance de Ref pour pouvoir utiliser une PT1000 avec ces modules, dans mon cas la Ref est à 430Ohms. Je vais devoir changer la Ref à 4300Ohms si je veux utiliser ces modules avec une PT1000.

Attention quand vous achetez les max31865.

Salut Stephtrids,

Une question me taraude, comment montes-tu la sonde ?

Salut
connecté sur RTD + et - les 2 du milieu

Je voulais dire « mécaniquement », ta sonde est « plongée » dans le l’eau du chauffe-eau ?

non j’ai un doigt sur mon ballon qui me permet de mettre soit un manomètre thermo ou une sonde

Ok merci pour l’info, je vais checker si jamais j’ai le même « doigt » :wink:

Heu si tu regardes mes messages, je t’avais bien dit de vérifier la valeur de la résistance de référence, c’était marqué dans la doc du max31865. :wink: :rofl:

Bon tu as juste perdu un peu de temps et maintenant ça fonctionne. C’est l’essentiel !!!

A+ Fred

là il faut changer la résistance, dessoudée et resoudée la bonne résistance ou acheter le bon Max31865 avec la REF soit 430 pour la PT100 ou 4300 pour PT1000.
Dans mon cas j’ai acheté PT1000 et 2 max31865 avec une ref de 430Ohms sans faire attention à la ref par méconnaissance.
Je pense qu’avec une ref de 4300 tu peux piloter une PT100 et 1000 en jouant sur reference_resistance et rtd_nominal_resistance, à l’inverse une Ref de 430 c’est uniquement une PT100.

Lorsque j’aurai un Max31865 avec une ref de 4300Ohms sous le coude je ferai ce test et ferai un retour.

après on apprend de ces erreurs :slight_smile:

1 « J'aime »

C’est clair !!! et des erreurs on en fait souvent :rofl:

Hello à tous !

j’aurais le même montage à réaliser, auriez-vous un lien pour la bonne réf de carte Max31865 pour une sonde PT1000 ?
Existe t-il un schéma pour ce montage ? je suis débutant en électronique , mais j’ai pas deux main gauche :slight_smile: :rofl:

Bonjour
Je te conseille d utiliser une PT100 avec le Max31865
Tu peux le trouver sur Amazon à moins de 10euros

DollaTek Module d’amplificateur de capteur thermocouple RTD température PT100 à PT1000 MAX31865