Day 22: Climate Guard
The door of day 21 reveals again a sensor, which we will use to measure the humidity level present. With the following circuit we will build a comprehensive indoor climate monitor.
Our experiment today uses three sensors: the temperature sensor (NTC), the light sensor (photo transistor) and the humidity sensor. Altogether they deliver a real good impression of the current climate situation in a room. Let’s start the program of today.
The program measures all of the values e very 30 seconds and sends them via MQTT, and you will receive something like this:
{“cmd”:”get_hum_state”,”Light”:3903,”Temp”:368,”HUMIDITY”:45}
Copy the flow of today into your Node-RED environment, but remember that you need to adjust your personal topic and disable previous flows. Then on the GUI page you can view the measured values. A function node will also today convert the temperature values accordingly so that you are able to read them. The two potentiometers are used to achieve a more precise calibration, because today you can adjust temperature and ambient brightness values.
But we also have an additional feature. Every five minutes, the program saves the currently measured values into a file. This is called climadata.txt and you will find it usually in the directory where Node-RED runs. In my case, this was:
C:\Users\[USERNAME]
[USERNAME] is your Windows user name. But you could also customize the file path in the node. Data is stored in CSV (comma separated values) format, whereby all values are separated by a comma. It is thus very easy to import the data into Excel and evaluate the spreadsheet. The evaluation of the longterm measurement is very easy.
Habe alles noch einmal von vorne begonnen. Mit der Hilfe der Kommentare und einiger Stunden googeln hat alles geklappt.Ich bin 64 Jahre alt und hatte bis vor diesem Kalender keine Ahnung von dieser Materie. War mein ganzes Berufsleben Metaller. Wie gesagt, wenn man sich Zeit nimmt geht das.
Der Helligkeitssensor funktioniert bei mir genau andersrum: Wenn ich meine Lampe anschalte wird der Wert niedriger und wenn ich sie ausschalte höher. Kann ich da was dagegen tun?
Wie soll man das aufbauen? Wie auf dem Bild geht das nicht, da die Potis in echt viel größer sind.
Du musst das nicht 1 zu 1 so aufbauen wie gezeigt das geht auch gar nivht. Hauptsache die verbindungen stimmen alle!
Okay, habs selbst gelöst: Den Aufbau unten so gut wie es geht nachbauen und bei den Kabeln im oberen Bereich genau an den Plan halten.
Wer hat den Code geschrieben?
Die Umrechnung von ° zu Kelvin ist FALSCH.
ALle leute die das lesen!!!
Ihr müsst die Berechnung 273,15-Temp ändern in Temp – 273,15!!
!!
Aber dann wird der im Dashboard angezeigte Wert kleiner, wenn es Wärmer wird. Kann man das noch irgendwie verhindern?
Da hat sich noch ein Fehler eingeschlichen.
So ist es richtig
Temp = 298.15 / (1 + Math.log(Temp) * 298.15/3420) – 273.15;
oder
Temp = 298.15 / (1 – Math.log(1 / Temp) * 298.15/3420) – 273.15;
Meine Berechnung sieht so aus:
Zuerst wird aus dem ADC-Wert der Widerstand Berechnet. Da es sich um einen NTC mit 10 kOhm bei 25°C handelt und der Vorwiderstand auch 10 kOhm ist, ist die Berechung recht einfach.
var RawADC = msg.payload;
var Temp = (RawADC /(4096 – RawADC)); // Erst mal das Widerstandsverhältnis
// Die Allgemeine Formel ist: Rt = Rv * ADC-Wert /(4096 – ADC_Wert)
// Und dann noch Temp = Rt/R25; Einfügen
Temp = 298.15 / (1 – Math.log(Temp) * 298.15/3420) – 273.15;
// Der wert 3420 ist so ein Mittelwert, der meistens passt.
Temp = Math.round(Temp*10);
Temp = Temp/ 10;
msg.payload = Temp;
return msg;
Hallo, bei mir geht trotz mehrmaligen Überprüfung der Schaltung mal wieder garnichts,wie bei manchen Tagen !
Ich habe den Flow nochmal neu angelegt, und jetzt funktioniert es endlich
Hallo,
ich muss mich mal hier für fk. ins Zeug legen ;).
Ich denke ‘jeder’ hat 2x 10kOhm Trimmer/Potentiometer drin.
Wer mit Fritzing schon gearbeitet hat wird feststellen das es nur eine Grafik für den Trimmer gibt!
Egal ob 10 oder 100 Ohm, kOhm oder MOhm gewählt werden, man wird nur das Bildchen mit den 104 darauf sehen.
Alles klar.
Beim ir steht bei Brightness immer 0.
Ich kann die Temperatur trotz änderung nicht richtig kallibrieren.
Bei mir hat auch alles funktioniert. Ich habe kalibriert und noch Longtime-Charts mit Reset-Buttons hinzugefügt. Die Klimadaten werden wie bei paulaner mit einem Timestamp in die Datei geschrieben.
Geil der Trend.
Will ich auch haben.
Danke
Hallo Bernd,
kannst du den Flow einstellen und die gemachten Einstellung?
Ich hab es noch nicht gemeiselt mit dem Reset des Charts.
Ok. ich habe nicht 3 Gruppen wie du.
Danke
Bild
War gestern nicht mehr online, aber wie ich sehe, hast Du es selbst hinbekommen. Ja, mann muss ein leeres Array an den Chart senden. Ich habe 3 neue Gruppen angelegt und da jeweils alles reingepackt.
Hallo Bernd!
würdest du deinen Code auch posten?
Ich bin nicht zufrieden mit dem, was ich hinbekomme.
Hallo,
noch ein bischen Erklärung zum ADC, Anleihen bei Eric Bartmann, danke.
Hallo,
Du bist der Dritter der sich geäußert hat, das 2x 103 (10k) Trimmer im Kalender sind.OK..
Muß man halt was anpassen, für ‘sture’ Nachbauer’ ist es nichts.
Zitat:
Dies erklärt möglicherweise die Vorzeichendiskussion: Temp-273 oder umgekehrt.
Die Formel im Originalnode ist zwar physikalisch nicht intuitiv, aber für den Aufbau richtig.
Wieso sollte die Formel nicht ‘intuitiv’ sein?
Alles andere hab ich doch erklärt.
Hallo allerseits,
Zur Frage der Temperaturmessung:
In meinem Kalender war ein 10k Poti (genauer: 2 davon).
Das reicht nicht aus, um das Thermometer zu kalibrieren.
Mit einem 100k Poti geht es. Gemessen habe ich 68k nach Kalibrierung.
In der Skizze der Anleitung steht 104; das bedeutet 10 * 10**4, also 100k.
Dies erklärt möglicherweise die Vorzeichendiskussion: Temp-273 oder umgekehrt.
Die Formel im Originalnode ist zwar physikalisch nicht intuitiv, aber für den Aufbau richtig.
Wenn man das Vorzeichen wechselt, kann man zwar das Thermometer kalibrieren (auf z.B. 20 C), dann geht es aber bei Wärmezufuhr abwärts.
Grüße und weiterhin einen schönen Advent!
Hallo,
ich denke dieses Node bringt in die Auswertung etwas Klarkeit.
Beim schreiben der Werte wird das aktuelle Datum und die Zeit mit gespeichert.
Bitte verrate mir noch was du in den neuen Node “now aktuelles Datum” genau eingetragen hast.
Vielen Dank
Martin Klein
https://forum.iobroker.net/viewtopic.php?t=653
1. Beitrag, 1. Spoiler
Genau daher
Vielen Dank Bernd für den Hinweis !
Alles Perfekt !
Viele Grüße
Martin Klein
Wie gewohnt ist die Bateilbeschreibung etwas spartanisch: “ein neuer Sensor, der die aktuelle Luftfeuchtigkeit messen kann” – das Ding hat doch einen Namen und für alle, die damit nach dem Advent weiterbasteln wollen, wäre der interessant.
Rund wird die Sache dann, wenn wir auch den Quellcode sehen können, mit dem der ESP den Sensor anspricht. Die Sourcen sind ja bis jetzt ein gut gehütetes Geheimnis, die bekommen wir am 24. bestimmt geschenkt…
ja da steh ich voll hinter dir.
Da gibt esfür die verschiedenen Anwendungen ebensoviele Fühler.
Ein paar Daten tuen Not.
Feuchtebereich von bis?
in welchem Bereich?
Welcher Art?
mal ein Beispiel:
Kategorie: Feuchte-Sensor
Typ: SHS A3
Anschluss: Print
Messbereich (min.): 0 % rF
Messbereich (max.): 100 % rF
Messbereich: 0 – 100 % rF
Min. Temperatur: 0 °C
Max. Temperatur: +60 °C
Temperaturbereich: 0 bis +60 °C
Breite: 10 mm
Marke: B+B Thermo-Technik
Hallo,
ich habe die anderen Begleithefte zu diversen Bausätzen durchgeschaut bis 2015, es wird auch da nur vom ‘Feuchtesensor’ gesprochen.
Auch bei vorhandenen ‘Einkaufs-/Inhaltslisten ist der Fühler nicht mal aufgeführt.
Jo, wäre schön, wenn die Bauteile genauer beschrieben wären. Sollte man von einem “CONRAD”-Kalender eigtl auch erwarten. Verstehe auch nicht, warum so ein billger(?) Feuchte-Sensor verwendet wird, der so schlecht misst, wie ein DHT11. Dabei kostet ein DHT22/AM2302 auch nicht die Welt u. misst deutlich besser. Und die Weiterverwendung ist auch einfacher, da es dazu zig Anleitungen gibt.
Weiß jemand, ob es sich bei dem Feuchte-Sensor um den HCZ-J3 (od. HCZ-H8) handelt?
Falls es immer noch nicht bekannt ist: Der seltsame Sensor ist ein “H25K5A”, den ich bei Google schnell gefunden hatte. Aber wie man ihn anwendet wird im Datenblatt nicht verraten. Da steht nur etwas von “… bei 1kHz”.
Einen Wiederstand kann ich isoliert nicht messen, also muss es etwas mit Dynamik / Frequenz zu tun haben.
Im Datenblatt wird ein Thermistor mit 50 kOhm empfohlen, im Kalender war einer mit 10 kOhm.
Hallo,
wer das File auswerten will, sollte den Haken setzen, sonst wird der nächste Wert ‘hinten dran geklatscht’.
Zitat:
Somit können Sie die Daten auch einfach in eine Excel-Tabelle einfügen und dort auswerten. Die Auswertung der Langzeitmessung wird dadurch kinderleicht.
erst dadurch!
und dem Datum/Zeiteintrag
Bild, kalibriert mit einem anderen Meßgerät und Offsets programmiert.
also Temp = Temp-273.15; ist richtig
Such einfach mal nach dem selben Aufbau den gibt es zu Hauf mit Arduino und co. Nur das der Arduino eine kleinere Auflösung bei der Spannungsmessung hat.
Alle nehmen
Temp = Temp-273.15;
nicht anders herum
var RawADC = msg.payload;
var Temp = Math.log(10000.0 * ((4095.0 / RawADC )));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp )) * Temp );
Temp = 273.15-Temp; // Convert Kelvin to Celcius
// Temp = (Temp * 9.0)/ 4.7 + 32.0; // Convert Celcius to Fahrenheit
Temp = Math.round(Temp*10);
Temp = Temp/ 10;
msg.payload = Temp;
return msg;
Hi,
Bei mir kommen immer komische Werte raus, könnte es sein das die Umrechnung zwischen Kelvin und Celsius nicht ganz richtig läuft?
Müsste es nicht
Temp = Temp-273.15;
heissen?
Celsius = Kelvin – 273.15 ?
Grüße
Moritz
steht doch da!!!
Temp = 273.15-Temp; // Convert Kelvin to Celcius
vorher werden die ‘Stufen’ eines ADC’s 4096 (12bit) verrechnet.