NTC Temperatursensor am wired 12/14 IO-Modul

Problemlösungen und Hinweise von allgemeinem Interesse zur Haussteuerung mit HomeMatic

Moderator: Co-Administratoren

Benutzeravatar
funkleuchtturm
Beiträge: 2368
Registriert: 13.06.2011, 16:42
Hat sich bedankt: 23 Mal
Danksagung erhalten: 357 Mal
Kontaktdaten:

NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von funkleuchtturm » 22.02.2013, 13:42

Temperatursensoren für eine Hausautomation kann man ja gar nicht genug haben. Die Diskussionen in diesem Thread
http://homematic-forum.de/forum/viewtop ... turmessung
zeigen, daß preisgünstige sog. 1-wired Sensoren ideal wären, aber leider die Integration mit Homematic-Modulen zumindest bei der heutigen Entwicklungsgeschwindigkeit von ELV in nächster Zeit nicht zu erwarten ist.

Das Wired 12/14 IO-Modul hat mit 6 analogen Eingängen gute Möglichkeiten, analoge Temperatursensoren auszuwerten. Das Problem ist nur, dass geeignete preiswerte Sensoren für den Eingangspannungsbereich 0 bis +10V nicht erhältlich sind bzw. nur in Verbindung mit einer geeigneten und dementsprechend teuren Anpasselektronik funktionieren. Insbesondere bei der Regelung von Heizungen werden fast ausschließlich NTC-Widerstände als Temperatursensoren eingesetzt. Der Nachteil einer nichtlinearen Widerstandcharakteristik fällt dabei kaum ins Gewicht, weil die Steuerungen mit geeigneten Algorithmen die Temperaturen aus dem Widerstandswert einfach berechnen können. Eigentlich könnten wir in der Homematic auch eine Berechnung mittels Skript durchführen, das Problem ist nur, dass die Widerstandscharakteristik exponential bzw. logaritmisch ist und solche mathematische Funktionen in der Skript-Sprache m.W. leider nicht verfügbar ist. Also kam nur eine Berechnung mit den vier Grundrechenarten in Frage.
Für die Steuerung einzelner Heizungskomponenten (Umwälzpumpen etc. ) benötigte ich mehrere Temperatursensoren mit möglichst weitem Temperaturbereich, weshalb ich die nachfolgend beschriebene Lösung entwickelt habe:
Verwendet wird ein preiswerter NTC und ein zusätzlicher Vorwiderstand. Das ist alles! Das nachfolgende Bild zeigt die Schaltung.
Folie1.JPG
Vom +24V-Anschluss wird einfach der Vorwiderstand (100KOhm) auf den analogen Eingang des 12/14 IO-Moduls geschaltet und zwischen dem Eingang und Masse der NTC-Widerstand zugeschaltet. Unter der Annahme , daß der interne A/D-Wandler sehr hochohmig ist, ergibt sich aus dem Schaltplan ein Eingangswiderstand des analogen Einganges von insgesamt 62,5KOhm. Dieser bildet mit dem NTC und dem Vorwiderstand Rv einen Spannungsteiler. Damit entsteht in Abhängigkeit von der Temperatur am analogen Eingang ein Signal von etwa 0 bis 10V. Die Nichtlinearität der analogen Eingangsspannung in Abhängigkeit von der Temperatur hängt vom verwendeten NTC-Widerstand ab und ist im entsprechendenden Datenblatt als Tabelle genau definiert.
Ich habe einen 10KOhm NTC von Reichelt für 0,36€ verwendet, wie er so ähnlich in vielen Heizungen eingesetzt wird.
http://www.reichelt.de/Sensoren/HYG-NTC ... SEARCH=NTC
Das Datenblatt mit der Widerstandskennlinie gibt´s da auch unter "Datenblätter und Downloads".
Die gekrümmte Kennlinie habe ich nun abschnittsweise durch Geradenstücke ersetzt. Im für mich besonders wichtigen Bereich nahe Raumtemperatur und wegen der dort stärkeren Krümmung der Kennlinie wurden hier mehr Geradenstücke zur Linearisierung eingesetzt als in den Randbereichen. Mit einer Excel-Tabelle wurden die einzelnen Kennwerte der Geradenstücke (Steigung m und T-Abschnitt n ) aus der Werteliste des NTC berechnet. Diese Werte werden in einem einfachen Skript verwendet, um die Temperaturwerte aus der Eingangsspannung Ut zu bestimmen.
Damit das Ganz nicht zu kompliziert wird hier mein "Kochrezept":

1. Auswahl eines geeigneten NTC-Widerstandes möglichst im Bereich um 10KOhm oder am besten den oben vorgeschlagenen Widerstand nehmen.

2. Vorwiderstand 100KOhm anschließen lt. Schaltplan. Achtung, da die 24V.Spannung als Referenzspannung dient, sollte sie auch möglichst genau 24V sein. Überprüfen!

3. Mit der NTC-Werteliste und dem nachfolgendem Excel-Berechnungsprogramm die Parameter der Geradengleichungen berechnen.
Excel_Temp.jpg
Linearisierun_NTC.xlsx
(13.82 KiB) 611-mal heruntergeladen


4. Systemvariable für die Temperatur definieren, z.B. "NTC_Temp" , Variablentyp "Zahl", Maßeinheit "Celsius"

5. WebUI-Programm erstellen, wobei der Messwert z.B. alle 3 Minuten berechnet wird. (Zeitabstände möglichst groß, um di CCU nicht zu sehr zu belasten!)
NTC_1.jpg
6. Folgendes Skript zur Umrechnung der analogen Eingangsspannung verwenden:

Code: Alles auswählen

!Berechnung Temperatur aus NTC Widerstandswert 10KOhm

!Wert vom analogen Eingang holen                      
real Ut = dom.GetObject("BidCos-Wired.IEQ0525027:26.VALUE").Value();

!lgeeignete linearisierte Kennlinie aussuchen und Temperatur berechnen
real Temp = -999;      !NTC hat Kurzschluss
if (Ut >10.0)  {Temp = 126.310 - (0.859*Ut);}
if (Ut>77.2)  {Temp = 92.426 - (0.420*Ut);} 
if (Ut>112.9)  {Temp = 76.264 - (0.277*Ut);} 
if (Ut >167.1)  {Temp =65.700 - (0.214*Ut);} 
if (Ut >190.5)  {Temp =60.915 - (0.189*Ut);} 
if (Ut >217.0)  {Temp =56.340 - (0.167*Ut);} 
if (Ut >246.8)  {Temp = 51.926 - (0.150*Ut);} 
if (Ut >280.3)  {Temp = 46.342 - (0.130*Ut);} 
if (Ut >357.4)  {Temp = 39.291 - (0.110*Ut);} 
if (Ut >900)  {Temp = 999;} !kein NTC angeschlossen

!Temperatur auf Systemvariable speichern
dom.GetObject("NTC_Temp").State(Temp);
dom.GetObject("Kennlinie").State(kennlinie);
7. NTC-Sensor geeignet "verpacken" z.B. so:
Folie3.JPG
Abschließend noch einige Anmerkungen zur Genauigkeit und Auflösung:
Die Auflösung in den einzelnen Arbeitsbereichen ist unterschiedlich. Wie man in dem Excel-Berechnungsprogramm in der Spalte "Auflösung/oC" sieht, nimmt die Auflösung zu den hohen Temperaturen ab ( weil beim NTC dort die relative Widerstandänderung immer kleiner wird). Insgesamt ist aber für meine Heizungsanwendungen die Auflösung im Temperaturbereich von -15oC bis 100oC völlig ausreichend.
Die Genauigkeit ist schwieriger abschätzbar. Sie hängt davon ab, wie genau der NTC die Datenblattangaben einhält. Auch ist wichtig, dass die Referenzspannung 24V möglichst genau eingehalten wird und daß natürlich die anderen Widerstände möglichst genau sind.

Anmerken möchte ich noch, daß diese Methode natürlich auch bei anderen nichtlinearen Sensoren ( z.B. Fotowiderstand, Hall-Element, etc. )geeignet ist, das Signal zu linearisieren und auszulesen. Da ist noch viel Platz für eigene Projekte!

Viel Spass beim Nachbau!
Zuletzt geändert von funkleuchtturm am 22.02.2013, 15:49, insgesamt 1-mal geändert.
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von paul53 » 22.02.2013, 14:10

Gute Lösung, wenn die 24 V-Spannung konstant ist.
Die Linearisierung ließe sich auch elegant mit dem CUxD Transform Device realisieren, das immerhin bis zu 99 Stützpunkte der Kennlinie unterstützt.
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

kallo
Beiträge: 66
Registriert: 05.02.2011, 18:02

Re: AW: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von kallo » 22.02.2013, 14:51

Super genial. Ich bin Laie auf diesem Gebiet, aber mit dem Kochrezept wirds bestimmt was werden....

Gesendet von meinem GT-I9001 mit Tapatalk 2

paul53
Beiträge: 2554
Registriert: 26.04.2012, 20:42
Wohnort: Berlin
Danksagung erhalten: 15 Mal

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von paul53 » 22.02.2013, 16:23

Mit einem 20-kOhm-Präzisions-NTC http://www.conrad.de/ce/de/product/5023 ... art-Epoxyd erhält man eine höhere Genauigkeit und Auflösung in dem wichtigen Temperaturbereich 20 - 25 °C.
Zusammen mit einem Vorwiderstand von 91 kOhm (anstelle 100 kOhm) beträgt dann die Auflösung in dem angegebenen Bereich 0,1 K:
HM_NTC20_Kennlinie.xls
(15.5 KiB) 629-mal heruntergeladen
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)

Benutzeravatar
funkleuchtturm
Beiträge: 2368
Registriert: 13.06.2011, 16:42
Hat sich bedankt: 23 Mal
Danksagung erhalten: 357 Mal
Kontaktdaten:

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von funkleuchtturm » 22.02.2013, 16:37

Mit der Excel-Tabelle kann man gut den Sensor nach den individuellen Wünschen dimensionieren. Aber bezüglich der Spannungsteiler-Auslegung bitten darauf achten, dass auch bei Kabelbruch zum NTC die Spannung des Analogeingangs nicht nennenswert über 10V steigt. Das könnte ggf. der Analogeingang sonst "übelnehmen".
Bezüglich der Genauigkeitssteigerung kann man entweder Präzisionswiderstände kaufen (wie Paul53 gezeigt hat ) oder unter Verwendung von preiswerten NTCs den angezeigten Temperaturwert mit einem in Reihe zum Vorwiderstand Rv geschalteten Trimmpoti abgleichen.
Das Skript ist übrigens so ausgelegt, dass bei Kabelbruch oder Kurzschluss des NTC entweder 999 oder -999 angezeigt wird.
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker

pruse
Beiträge: 223
Registriert: 03.02.2012, 22:41

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von pruse » 09.03.2013, 12:18

Hallo funkleuchtturm,
wie sollte man die Messung aufbauen damit bei einem Kabelbruch
die Spannung nicht über 10V steigt.

Gruß Jens
LXCCU im Standby,Yahm auf Raspberry Pi3, 3xHomeduino, 1xHM-Sen-LI-O, 1xHM-WDS10-TH-O, 1xHM-PBI-4-FM, 4xHM-LC-Bl1-FM, 3xHM-LC-Sw1-FM, 2xHM-WDS40-TH-I,
2x HM-Sen-MDIR-O, 6xHMW-IO-12-Sw14-DR, 1xHM-RC-4-2, 1xHM-LC-Sw4-PCB, 1xHM-ES-PMSw1-Pl, 1xHM-WDS30-OT2-SM,
1xHM-LC-Bl1PBU-FM, 1xHM-WDS30-T-O, 1xHM-TC-IT-WM-W-EU, 1xHM-Sen-MDIR-WM55, 1xHM-LC-Bl1PBU-FM

Benutzeravatar
funkleuchtturm
Beiträge: 2368
Registriert: 13.06.2011, 16:42
Hat sich bedankt: 23 Mal
Danksagung erhalten: 357 Mal
Kontaktdaten:

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von funkleuchtturm » 09.03.2013, 13:07

pruse hat geschrieben:wie sollte man die Messung aufbauen damit bei einem Kabelbruch
die Spannung nicht über 10V steigt.
Dieses Thema hat man grundsätzlich, weil die Wired-Module mit 24V betrieben werden und die Analogeingange nur bis von 0 bis 10V arbeiten.
Wegen der eingebauten Vorwiderstände im 12/14 IO-Modul "verkraftet" der Analogeingang vermutlich auch im Fehlerfall 24V. Ich bin aber nicht sicher! Vielleicht haben Andere im Forum schon entsprechende Erfahrungen gemacht.

Zur Sicherheit und Spannungsbegrenzung kann man einfach eine Zenerdiode z.B. 10V oder 12V zwischen Analogeingang und Masse schalten.
(Die Kathode der Zenerdiode (Ring-Kennzeichnung) an den Analogeingang!).
Aber wenn man den Shunt-Widerstand mit den beiden Dioden direkt am Modul anschaltet (so wie im gezeigten Schaltplan), dann führt ein Drahtbruch zum NTC nur zum harmlosen Fall, dass die Eingangsspannung am Modul zu Null wird. Dies könnte man auswerten und eine entsprechende Fehlermeldung ausgeben.

Eine andere Lösung ist, den/die NTC mit einer kleineren Gleichspannung (z.B. 12V) zu versorgen.
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker

pruse
Beiträge: 223
Registriert: 03.02.2012, 22:41

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von pruse » 20.03.2013, 21:39

Hallo,
danke für die Hilfe haben jetzt vier Temperaturfühler ohne Probleme im Betrieb, jetzt überlege ich
einen Fotowiderstand als Dämmerungssensor anzuschließen nun habe ich noch einige Fragen.
1.Welcher Fotowiderstand Conrad,Reichelt
2.Welcher Vorwiederstand
3.Gibt es für den Fotowiderstand auch eine Excel-Tabelle
Gruß Jens
LXCCU im Standby,Yahm auf Raspberry Pi3, 3xHomeduino, 1xHM-Sen-LI-O, 1xHM-WDS10-TH-O, 1xHM-PBI-4-FM, 4xHM-LC-Bl1-FM, 3xHM-LC-Sw1-FM, 2xHM-WDS40-TH-I,
2x HM-Sen-MDIR-O, 6xHMW-IO-12-Sw14-DR, 1xHM-RC-4-2, 1xHM-LC-Sw4-PCB, 1xHM-ES-PMSw1-Pl, 1xHM-WDS30-OT2-SM,
1xHM-LC-Bl1PBU-FM, 1xHM-WDS30-T-O, 1xHM-TC-IT-WM-W-EU, 1xHM-Sen-MDIR-WM55, 1xHM-LC-Bl1PBU-FM

Benutzeravatar
funkleuchtturm
Beiträge: 2368
Registriert: 13.06.2011, 16:42
Hat sich bedankt: 23 Mal
Danksagung erhalten: 357 Mal
Kontaktdaten:

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von funkleuchtturm » 20.03.2013, 23:02

pruse hat geschrieben:Hallo,
danke für die Hilfe haben jetzt vier Temperaturfühler ohne Probleme im Betrieb, jetzt überlege ich
einen Fotowiderstand als Dämmerungssensor anzuschließen nun habe ich noch einige Fragen.
1.Welcher Fotowiderstand Conrad,Reichelt
2.Welcher Vorwiederstand
3.Gibt es für den Fotowiderstand auch eine Excel-Tabelle
Gruß Jens
Hallo Jens,
natürlich kann man einen Fotowiderstand wunderbar als Dämmerungssensor einsetzen. Aber die Auslegung hängt sehr davon ab, in welchem Bereich der Sensor zur Messung eingesetzt werden soll. Beim Tageslicht hat man beispielsweise eine extreme Dynamik:
- Heller Sommertag 100. 000Lx
- bedeckter Sommertag 20.000Lx
- bedeckter Wintertag 3.500Lx
-Straßenbeleuchtung 10Lx (Detail siehe Quelle: http://de.wikipedia.org/wiki/Lux_%28Einheit%29
Wenn man also zwischen einem hellen Sommertag und einem bedeckten Sommertag unterscheiden (z.B. schalten) will, dann muß der Sensor anders ausgelegt werden, als bei Unterscheidungen im Dämmerungsbereich.
Ich gehe mal davon aus, daß Du im Dämmerungsbereich vorrangig messen willst. Dann bewegen wir uns in einem Messbereich zwischen 10 und 300Lx. Ein geeigneter Sensor wäre beispielsweise http://www.conrad.de/ce/de/product/1454 ... seart-5-mm.
Bei Betrieb als Spannungsteiler an 12V würde ich den Vorwiderstand so auslegen, daß er etwa genauso groß ist wie der Fotowiderstand im betreffenden Messbereich.
Bei Verwendung einer 12V-Versorgung muß der Vorwiderstand so ausgelegt werden, daß selbst bei Dunkelheit die Eingangsspannung nicht mehr als etwa 10V beträgt. Sicherheitshalber kann man eine 10V-Zenerdiode parallel zum Analogeingang schalten.
Eine entprechende Excel-Tabelle , wobei statt der Temperatur die Helligkeit in Lux in Abhängigkeit vom Widerstand dargestellt wird, könnte man erstellen, aber was nützt Dir die absolute Lux-Zahl?
Es sei denn, Du wolltest einen richtigen Belichtungsmesser bauen ??
Wichtig ist bei solch einem Sensor die richtige "Verpackung". Nicht nur regendicht sollte die sein, sondern auch UV-stabil und abgeschirmt von direktem Sonnenlicht.
Ich würde ein auf den nördlichen Himmel ausgerichtetes Röhrchen nehmen, in das der Fotowiderstand eingeklebt wird. Darüber am besten ein Glas als Wetterschutz.
Viel Spaß bei der Bastelei!
Viele Gruesse
Eugen
________________________________________________
SmartHome-Eintopf mit feinem Homeduino-Gemüse
... und für Feinschmecker gibt´s den WIFFI, den WEATHERMAN-2, den PULSECOUNTER und den AIRSNIFFER
mit vielen Kochrezepten für den ambitionierten Homematiker

jvs
Beiträge: 67
Registriert: 07.09.2012, 16:08

Re: NTC Temperatursensor am wired 12/14 IO-Modul

Beitrag von jvs » 06.06.2013, 16:08

oder mit PT-100 so auch einfach zu realiseren?

http://www.aliexpress.com/store/product ... 98639.html

danke

Antworten

Zurück zu „HomeMatic Tipps & Tricks - keine Fragen!“