Neues Modul: SPI_MAX31865 für PT100/PT1000 Temperatursensoren

Begonnen von Adimarantis, 20 Januar 2021, 23:00:28

Vorheriges Thema - Nächstes Thema

Adimarantis

Hallo,

besteht Interesse an folgendem Modul? Bei meinem Versuch PT1000 Sensoren verfügbar zu machen, bin ich ursprünglich den Weg über einen A/D Wandler gegangen (ADS1115) - wofür ich hier bereits ein Modul zur Verfügung gestellt habe. Es gibt aber auch einen speziell darauf ausgelegten Chip/Modul: den MAX31865
Dieser wird per SPI angesprochen. Mein Modul implementiert dies über die Standard Raspberry Schnittstelle und die select PINs CE0 und CE1. Damit ist das aktuell auf zwei Sensoren beschränkt. Im Raspberry muss über "raspi-config" die SPI aktiviert werden (wodurch die beiden GPIOs nicht mehr anderweitig nutzbar sind).

Initialisiert wird über
define <devicename> SPI_MAX31865
Die zu verwendende GPIO dann über das Attribut "device" auf 0 oder 1 setzen und über attribut "PT" wählen ob es ein PT1000 oder PT100 ist.

Ist erst sehr rudimentär implementiert, für die Kernfunktionalität (eine Temperatur bekommen) funktioniert es aber bereits gut.

Viel Spass beim Testen. Freue mich über Feedback.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Forstling

Erster Download.

Wie berreits wo anders geschrieben Das Modul habe ich schon vor 2 Jahren gesucht ich werde wohl doch mal Pearl lernen müssen.

Der erste Eindruck des Moduls ist Gut.

Mich stört allerdings das man auf 2 Sensoren begrenzt ist
Ich verwende derzeit 5 dieser Bausteine daher bietet Das Modul derzeit für mich zu wenig.

Mein Phythonscript nutz dazu 5 GPIOs die aber auch irgendwann mal zu Ende sein werden.
Ich kenn mich nicht zu gut mit der SPI-Schnittstelle aus aber da es Möglich ist den CS Pin auf (fast) alle GPIOs zu legen könnte das vieleicht auch mit den IOs eines MCP23017 funktionieren damit hätte man auf einmal ernorm viele Möglichkeiten.

Nur so ein Gedankenspiel. Wenn das Modul außer mir keiner nutzt währe hier weitere Arbeit sinnlos.

Adimarantis

Ich nutze für SPI die Standard Kernel Funktionalität, die eben auf zwei GPIOs ausgelegt ist.
Wenn ich mich recht erinnere ist der ganze Trick, dass eben nur ein SPI slave per GPIO auf aktiv geschaltet ist, wenn man abfragt. Das liesse sich theoretisch sicher auch einbauen (dein Python Script macht das ja auch).
Ich denke daher, dass es auch kein Problem sein sollte dafür einen Port-Expander zu verwenden. Ist halt nur etwas aufwändiger anzusteuern, da hier noch üblicherweise noch I2C ins Spiel kommt. Könnte man in FHEM sicher recht elegant lösen.

Aber wie du schon sagst. Derzeit ist da nicht viel Nachfrage. Vielleicht packt mich da ja mal die "Bastelwut", aber das passiert eher wieder im Winter. Derzeit hab ich genug andere Projekte :)

Gruß,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , 58_RPI_1Wire, (50_SPI_MAX31865)

Forstling

Ich habe 2 Tage lang einen Max31865 gegen den ADS1115 AD Wandler laufen lassen und kann nur sagen das die Teile schon recht genau laufen.
Nach einem Tag habe ich mal die Sensoren getauscht nur um Auszuschließen das ich einen schlechten Sensor erwicht habe.
Und ja ich hab einen miesen Sensor erwischt. das fällt aber nur bei dem MAX auf.

Kurz gesagt AD-Wandler ist ist Monitoringzwecke OK
MAX 31865 kann für Regelungen genutzt werden.

Also doch mein Script für 5 Sensoren weiter laufen lassen.

Zumindest bis im Winter wieder bastelstunde ist.

Fakenius

#4
Wenn der RPI nicht in der Nähe steht gibt es eine preisgünstige Lösung (z.B.) mittels WeMos D1 mini über WLAN:

der Max31865 wird in der kommenden Version von ESPEasy direkt unterstützt und sendet die Temperaturen u.a. per MQTT.

Wenn's ganz dringend ist: https://td-er.nl/ESPEasy/static/

EDIT: alle von mir erstandenen Max31865 waren exklusiv für PT100-Fühler ausgelegt obwohl PT100/PT1000 angegeben war. Man erkennt das am Referenzwiderstand (430 Ohm für PT100). Zur Verwendung mit PT1000-Fühlern muss dieser entsprechend durch einen 4.3 kOhm-Widerstand ersetzt werden. Es muss ja kein SMD sein, ein "normaler Viertelwatt" passt auch.
FS20, Homematic (DebMatic), Zigbee (deCONZ), LaCrosse, selbstgebaute Sensoren und Aktoren via MQTT
 (CUL, HB-RF-USB-2, Jeelink, SIGNALDuino, ConBee III)