Hallo,
wenn ihr unbekannte Sensoren am WLANThermo verwenden wollt, bei denen keine der vorhandenen Einstellungen passt, benötigt ihr die Paramter für die sensor.conf.
Zuerst müsst ihr dafür eine Widerstand - Temperaturtabelle eures Sensors erstellen.
Also den Sensor möglichst dicht gekoppelt (Alufolie z.B.) mit einem funktionierenden Sensor in einem Topf kochen und dann langsam abkühlen lassen, dabei die Temperatur und Widerstandswerte aufschreiben (ich mache immer Fotos, und erstelle später die Tabelle):
Am Ende evtl. mit Eiswasser unter Raumtemperatur kühlen, ist aber nicht so wichtig.
Die Datei als CSV-Datei speichern, als Dateinamen etwas zum Sensor passendes, z.B. igrill2.csv
(Excel in Deutsch erstellt das richtige Format. Andernfalls als Feldtrenner ";" einstellen, Keine 1000er Trennung mit ".", da Komma und Punkt als Dezimatrennung behandelt werden.)
Anschließend kann man daraus die Paramter berechnen. Neben GNU Octave und Mathlab gibt es jetzt von mir noch ein Programm das direkt auf dem WLANThermo (bzw. dem Raspberry Pi) läuft.
Dann kopiert ihr die .csv Datei mit z.B. WinSCP auf den Raspberry.
Auf dem Raspberry startet ihr nun das Programm mit der Datei als Parameter.
z.B.
Im aktuellen Verzeichniss legt das Programm nun ein paar Dateien an (dauert ein wenig, gerade beim allerersten Start):
*.conf = Werte für sensor.conf, die Nummer müsst ihr noch anpassen, einmal in den eckigen Klammern( [0] ), und number = 0.
*_curve.png ist der Vergleich zwischen errechneter Kurve (Linie) und gemessenen Werten (Punkte), die Differenz als Kurve nochmal darunter.
*_curvefit.csv sind die Werte davon.
*_resolution.png zeigt wie groß die Auflösung über den Temperaturbereich ist.
*_report.csv sind die Werte der Simulation.
*_report.json sind die zusammengefassten Werte im JSON-Format, kann man sich aber auch mit einem Editor gut ansehen. highres_* gibt z.B. den Bereich an, in dem der Sensor > 10 Bit pro Grad liefert, also eine Auflösung von mehr als 0,1°C hat.
Irgendwann bekommt das Programm auch mal mehr Optionen, vielleicht.
Anhang anzeigen 1289574
wenn ihr unbekannte Sensoren am WLANThermo verwenden wollt, bei denen keine der vorhandenen Einstellungen passt, benötigt ihr die Paramter für die sensor.conf.
Zuerst müsst ihr dafür eine Widerstand - Temperaturtabelle eures Sensors erstellen.
Also den Sensor möglichst dicht gekoppelt (Alufolie z.B.) mit einem funktionierenden Sensor in einem Topf kochen und dann langsam abkühlen lassen, dabei die Temperatur und Widerstandswerte aufschreiben (ich mache immer Fotos, und erstelle später die Tabelle):
Am Ende evtl. mit Eiswasser unter Raumtemperatur kühlen, ist aber nicht so wichtig.
Die Datei als CSV-Datei speichern, als Dateinamen etwas zum Sensor passendes, z.B. igrill2.csv
(Excel in Deutsch erstellt das richtige Format. Andernfalls als Feldtrenner ";" einstellen, Keine 1000er Trennung mit ".", da Komma und Punkt als Dezimatrennung behandelt werden.)
Anschließend kann man daraus die Paramter berechnen. Neben GNU Octave und Mathlab gibt es jetzt von mir noch ein Programm das direkt auf dem WLANThermo (bzw. dem Raspberry Pi) läuft.
Code:
wget https://github.com/BjoernSch/WLANThermo_fit/raw/master/wlt_2_fit.py
chmod +x wlt_2_fit.py
sudo apt-get install python3 python3-scipy python3-matplotlib
Auf dem Raspberry startet ihr nun das Programm mit der Datei als Parameter.
z.B.
Code:
wlt_2_fit.py igrill2.csv
*.conf = Werte für sensor.conf, die Nummer müsst ihr noch anpassen, einmal in den eckigen Klammern( [0] ), und number = 0.
Code:
[0]
number = 0
name = igrill2
a = 3.3560240e-03
b = 2.5541386e-04
c = 3.7634862e-06
Rn = 100.0
*_curvefit.csv sind die Werte davon.
*_resolution.png zeigt wie groß die Auflösung über den Temperaturbereich ist.
*_report.csv sind die Werte der Simulation.
*_report.json sind die zusammengefassten Werte im JSON-Format, kann man sich aber auch mit einem Editor gut ansehen. highres_* gibt z.B. den Bereich an, in dem der Sensor > 10 Bit pro Grad liefert, also eine Auflösung von mehr als 0,1°C hat.
Code:
{
"a": 0.0033560239739545816,
"b": 0.0002554138629450343,
"c": 3.763486211541715e-06,
"err_a": 2.4052708765290704e-07,
"err_b": 2.869767822490326e-07,
"err_c": 1.272563468109222e-07,
"highres_area": 125,
"highres_max": 110,
"highres_min": -15,
"name": "igrill2",
"peak_res": 41.8,
"peak_res_temp": 40,
"rmess": 47,
"rn": 100.0
}
Anhang anzeigen 1289574