• Du musst dich registrieren, bevor du Beiträge verfassen kannst. Klicke auf Jetzt registrieren!, um den Registrierungsprozess zu starten. Registrierte User surfen werbefrei, können Suchen durchführen und sehen die volle Darstellung des Forums mit vielen anderen Unterforen!!!

WLAN-Thermometer selbst bauen mit Raspberry Pi

Na ist doch Hobby.

Und Hobby definiert sich als größt möglicher Aufwand für geringst möglichen Nutzen. :hammer:

Grüße Marco
 
MAVERICK Fühler

Hallo,

Vielen Dank für eure Mühe und die Doku, es ist einfach genial was ihr hier leistet! :wiegeil:

Ich habe den Thermometer nun aufgebaut und versuche gerade vernünftige Messwerte mit meinem Maverick ET732 Fühlern zu bekommen...

Der Kommentar in der /usr/sbin/wlt_2_comp.py Zeile 91
# Kennlienienkonstante Sensor MAVERICK UNBRAUCHBAR!!
ist leider nicht vielversprechenden.

Gibt es eine Möglichkeit die MAVERICK Fühler in Zukunft zu verwenden, da die Hochtemperaturbeständig sind wären die ideal und da einige den RediCheck sowieso haben...

Weiters wäre eine Temperaturregelung mit einem Lüfter super, ich würde hier mittels des SERVOBLASTER Moduls einen GPIO zu einem PWM Signalgenerator umwandeln und daran einen Modellbau Fahrtenregler anschließen, Paralell kann ja auch noch ein Servo angeschlossen werden dann kann damit auch die Luftzufuhr zusätzlich mit einer Klappe gedrosselt werden also auch der Kaminzug begrenzt werden.

Weiters gäbe es einen Flammen Detektor welcher beim Betrieb mit Holz sicher hilfreich wäre.

LG

Joe
 
MAVERICK Fühler

Hallo Armin,

kann es sein das neben dem Eintrag in der /etc/WLANThermo/WLANThermo.conf noch etwas anderes für die MAVERICK Fühler gemacht werden muss (Verkabelung?)

LG

Joe
 
Eigentlich nicht,

Das einzige, worauf du achten musst ist, dass die Masse auf dem Außenmantel liegt und nicht die Messpannung. Sonst gibt es (noch) blödsinnigere Ergebnisse, wenn sich zwei Fühler berühren.

Hast Du nach neuestem Bauplan gebaut? Am Anfang hatte ich einen Fehler bei den Spannungsteilern am A/D-Wandler drin gehabt. Das hier ist der aktuelle Plan:

http://www.a-thinnes.de/wlanthermometer/schaltung/WLAN_Thermo_Schaltplan.jpg

Welche Probleme hast Du?

Grüßle und Tschöh!

Armin
 
Hallo Armin,

aktuell habe ich drei GG und einen GR MAVERICK ET 732 Fühler angeschlossen und habe die Schaltung nach deinem letzten Plan aufgebaut (0.4).
Auch habe ich soeben die 47k Messwiederstände durch 200k ersetzt und auch den wert von 47 auf 200 in der /etc/WLANThermo/WLANThermo.conf geändert.

Trotzdem gibt es bei Raumtemperatur Messwerte von über 170 Grad..

Hier die aktuellen Messwerte:
attachment.php


Und hier der Aufbaue der Schaltung:
attachment.php


Vielleicht ist es in der nächsten Version auch möglich die Anzahl der Messfühler über die Config einzustellen damit nicht überall (Programm, log, Webseite) acht verwendet werden.

Vielen Herzlichen Dank im Voraus für deine Hilfe!

LG

Joe

PS: ist es beabsichtigt das die Alarmwerte zwar über die datei control/set_alarm.php gesetzt werden können diese aber nicht in der set_alarm.php angezeigt werden da die datei temperaturen.csv nur beschrieben aber beim aufbau der Seite nicht gelesen und nur Standard werte geladen werden? --> Darf ich die php Seite ändern und dir den code zukommen lassen?

IMAG1097.jpg


IMAG1099.jpg
 

Anhänge

  • IMAG1097.jpg
    IMAG1097.jpg
    75,1 KB · Aufrufe: 2.459
  • IMAG1099.jpg
    IMAG1099.jpg
    126,3 KB · Aufrufe: 2.500
Hallo Armin,

hab den Fehler gefunden... Ich habe im Plan die zweite Anspeisung vom AD Wandler vergessen... :rtfm:

Nun habe ich plausible Werte die zwar bei Raumtemperatur zu niedrig sind aber das ist bei einem MAVERICK Fühler bekannt (aus dem Manual von dir konnte ich entnehmen das die MAVERICK Fühler unter 50 Grad Abweichungen bis zu 5 Grad haben).

Auch habe ich inzwischen die set_alarm.php umgebaut und dafür einen zusätzlichen Parameter in der /etc/WLANThermo/WLANThermo.conf hinzugefügt.

[Anzahl]
Sensoren = 4

Soll ich den Code hier posten?

Vielen Dank!

Joe
 
@Joe

Super! Da bin ich aber froh!

Code gerne posten oder mir per Mail schicken: wlanthermo ät a-thinnes.de.

Trotzdem bin ich bei den hochohmigen Mavericks immer noch skeptisch! Du könntest den Längswiderstand probehalber auf 1MOhm erhöhen. Allerdings befürchte ich, dass dann die Mimik so hochohmig wird, dass dur Störspannungen einkoppelst.

Die Ikeas gehen übrigens nominell bis 220°.

Grüßle und Tschöh!

Armin
 
Hallo Armin,

ich möchte mir übers Wochenende auch nochmal den ganzen GUI anschauen und ihn auf ein JavaScript Framework mit Touch Unterstützung umstellen.

Anbei meine veränderte set_alarm.php http://www.grillsportverein.de/forum/attachment.php?attachmentid=483008&stc=1&d=1362729638 welche aber folgende Erweiterung in der /etc/WLANThermo/WLANThermo.conf benötigt.

Code:
[Anzahl]
Sensoren = 4

Schön wäre es wenn du in deinem Python Service auch diese Information nutzen würdest und nur für die Anzahl der Sensoren die Messwerte auslesen würdest die hier angegeben ist.

Joe
 

Anhänge

Hallo Armin,

so der neue GUI läuft bei mir...

attachment.php


attachment.php


attachment.php


dieser braucht folgende Änderungen:

in der wlt_2_comp.py sind einige Zeilen hinzugekommen gekenzeichnet durch
#JOE START
Mein Code
#JOE ENDE
Hier wäre aber noch folgendes zu tun:

1.) Die Anzahl der Sensoren aus der config auslesen und dynamisch in alle schleifen zu übernehmen
2.) Die Dateinamen aus der [Files] Sektion aus der Config auslesen und auch hier überall verwenden

in der config WLANThermo.conf sind folgende werte hinzugekommen

[Anzahl]
Sensoren = 4

[Files]
data = /var/www/data.txt
alarm = /var/www/temperaturen.csv
namen = /var/www/namen.txt

Anbei meine Funktionierende Version

LG

Joe

img1.jpg


img2.jpg


img3.jpg
 

Anhänge

  • WLANThermo.zip
    WLANThermo.zip
    40,5 KB · Aufrufe: 251
  • img3.jpg
    img3.jpg
    64,6 KB · Aufrufe: 2.332
  • img2.jpg
    img2.jpg
    73,1 KB · Aufrufe: 2.365
  • img1.jpg
    img1.jpg
    67,2 KB · Aufrufe: 2.389
Hallo Joe,

Deine Version funktioniert - soweit klar.

Der Einbau der Sensoranzahl in der WLAN-Conf ist grundsätzlich kein Problem und auch easy zu realisieren. Das ist eine Zeile mehr beim Einlesen der Confwerte
Code:
channels_used = Config.getint('Anzahl','Sensoren')

Und dann im Quelltext suchen nach "in range (8):" und ersetzen durch " in range (channels_used):"

Das funktioniert allerdings nicht beim Display-Anteil. Hier muss es bei 8-Kanal-Abfrage bleiben. Um die Kanalzahl dynamisch zu halten, muss ich das komplett umschreiben.

Deine Version wird beim Anschluss eines Displays definitv mit einem Laufzeitfehler abbrechen, da die Variable Displaytemp in Deiner Version nur 4 Tupel enthält, beim schreiben des Displays aber auf 8 Tupel zugegriffen wird!


Florian (Phantomias2006) hat auch eine coole, neue GUI geschrieben, die auf PHP aufsetzt und einige Schwächen der statischen Webseite und meines PHP-Anteils behebt.
Eure beiden Lösungen haben letztlich das gleiche "Problem" (also eigentlich habe ich das Problem): Wir brauchen eine definierte Übergabeschnittstelle für die aktuellen Messwerte, damit jeder sein MMI (GUI) so programmieren kann, wie er möchte:

Du verwendest die Datei data.txt. Eine Zeile die mit einem "!" beginnt und dann alle Werte, jeweils getrennt mit "|" hintereinander schreibt. Kein Zeilenumbruch am Ende.

Für Florian haben wir eine Datei temp.inc.php der Form

Code:
<?php

$temp_0 = "22.16";
$temp_1 = "ERROR";
$temp_2 = "ERROR";
$temp_3 = "ERROR";
$temp_4 = "ERROR";
$temp_5 = "ERROR";
$temp_6 = "ERROR";
$temp_7 = "21";

$time_stamp = "19:41:02";
?>

Es gibt jetzt drei Möglichkeiten:

1 Forken und zwei verschiedene Versionen weiterentwickeln
2 wir einigen uns auf ein MMI
3 wir definieren gemeinsam eine Schnittstellendatei, mit der jeder leben kann.

Mein Favourite ist natürlich Version 3.

Vorschlag hierfür: Da ihr beide auf PHP aufsetzt, wäre ein php-include wie von Florian doch nicht verkehrt. Die könnte man dann ergänzen um die neue maximale Kanalanzahl.


Das könnte dann so aussehen:
Code:
<?php

$temp_0 = "22.16";
$temp_1 = "ERROR";
$temp_2 = "ERROR";
$temp_3 = "ERROR";
$temp_4 = "ERROR";
$temp_5 = "ERROR";
$temp_6 = "ERROR";
$temp_7 = "21";

$time_stamp = "19:41:02";
$channels_used = "8"
?>


Bitte um Vorschläge! ;-)

Grüßle und Tschöh!

Armin
 
Hallo Armin, hallo Joe.

Ich wäre für die variablen Schnittstelle.
Vorteil liegt auf der Hand. jeder kann die Variablen verwenden die er braucht und es können beliebig viele darin stehen.
Das mit den Sensoren habe ich noch nicht ganz Verstanden?!
Meine Aktuelle Version zeigt nur die Kanäle an wo auch ein Fühler angesteckt ist.
Also alle anderen werden ausgeblendet. Vorteil hierfür ist dass ich nicht die Sensoren nach der reihe nach anstecken muss. Ich kann Sensor eingang 1-5-7 nutzen und es werden nur diese angezeigt. Wenn ich sie mit einer Variable beschrenke kann ich trotzdem nur 1-2-3-4 anstecken....

Eventuell sollte ich mich mit Joe mal kurzschließen.Habe mir deine Version zwar noch nicht angeschaut aber wenn du, so wie es aussieht, Java kannst würde dass mein Java defizit wettmachen.Weil mir das eine oder andere noch im Kopf herum schwirrt was ohne Java nicht realisierbar ist :anstoßen:
Lg
 
Hallo Armin, Phantomias,

Danke für die Rückmeldung und Ja ich würde gerne etwas Koordinierter mit an eurem Projekt arbeiten.

Ich denke eine Schnittstelle wäre perfekt ich muss keinen eigenen GUI haben nur hat mir die Statische Seite überhaupt nicht gefallen...
Ob die Daten als einzeiliger String oder Zeilenweise abgelegt werden ist eigentlich egal, zeilenweise ist es nur schneller eingelesen...

Es wäre super Armin wenn du das Display auch Dynamisch mit werten befüllen könntest da ich denke das viele nicht alle acht Fühler benötigen werden.

Phantomias hast du schon mal an einen Graphen gedacht? Wie sollen wir den umsetzten? Rein JavaScript oder der Python dienst erstellt alle 5 Sek eine Graphik und diese wird nur angezeigt?

Ich möchte eine Lüftersteuerung einbauen dazu werde ich mich am WE etwas mit dem Servoblaster Modul spielen um einen Modellbau Fahrtenregler + Servo für meinen Joe 16" zu Steuern. Servo deshalb weil der Kamin vom Joe nicht schlecht zieht und ich sonst die Temp. nicht so weit runter regeln kann wie ich es für ein PP brauche.
Das Modul brauche ich auch für meinen backup rpi --> ein Modellbau Servo verbindet eine per USB - SATA angebundene 3TB HDD und mountet diese wenn das Backup Programm anläuft automatisch, auch der Strom vom HDD Netzteil wird mit einem GPIO getrennt. So sollten die Daten auch vor einem indirekten Blitzschlag geschützt und über einen button am Webgui jederzeit gemountet werden können. Als Filesystem habe ich BTRFS probiert das ist mit der Möglichkeit Snapshots zu erstellen perfekt dafür geeignet...

Wenn das dann geht werde ich mich an einen Holz nachlege Roboter arm machen ;-) (Scherz)

Also dann schönes WE :anstoßen:

Joe
 
Hi Joe,

Ja an graphen habe ich gedacht. Habe mich diesbezüglich etwas eingelesen und sollte mit java lösbar sein. Zumal wir damit auch Armin entlasten würden... 2identische graphen einer gefüllt und einer leer der dann überblendet wird prozentuell :-)
Nur muss ich da noch etwas java lernen, habe zwar schon fertige scripts gefunden aber konnte mich noch nicht vollständig in das script einlesen/abändern damit ich das steuern kann...
Am besten ist du schickst mir per PN mal deine Mail Adresse und ich schick dir meine WebGui und wir reden uns dann zusammen ;-)
Miteinander sollten ein tolles WebGui realisierbar sein...
Lg
 
AW: WLAN-Thermometer selbst bauen mit Raspberry Pi

Like!
Wegen Graphen könnt ihr euch mal GNU-Plot anschauen. Meine ersten Kurven habe ich damit gemacht.

Grüßle und Tschöh!


Armin
(Mobil)
 
Hallo Phantomias,

mit Java meinst du hoffentlich JavaScript und nicht den Moloch der den PI sonst in die knie zwingt ;-)

Gnuplot schaut nicht schlecht aus aber ich denke wir sollten nicht noch eine andere Sprache verwenden, es reichen die die wir haben allemal ;-)...

Da Python vom RPI sehr gut unterstütz wird und auch moderner ist würde ich gerne bei einer der schon verwendeten Sprachen bleiben.

Python
+ gute Unterstützung
+ sehr viele fertige libarys / Funktionen
+ resourcenbelastung am PI gering
+ keine Browser Funktionen nötig

PHP
+ gute Unterstützung
+ sehr viele fertige libarys / Funktionen
+ resourcenbelastung am PI mäßig
+ keine Browser Funktionen nötig

JavaScript
+ gute Unterstützung
+ sehr viele fertige libarys / Funktionen
+ resourcenbelastung am PI minimal
- Programmierung zum Teil sehr gewöhnungsbedürftig
- nicht in allen Browsern lauffähig

Das ist meine Persönliche Meinung und bitte steinigt mich nicht dafür.

Was haltet ihr von sowas?
How to Create a Graph in Python
Wenn der Python service alle 5 - 10 Sekunden einen neuen graphen erstellen würde...

@Armin hast du erfahrung mit Temperaturregelung? Also den Regelkreis der den Ventilator ansteuern würde?

LG

Joe
 
Zuletzt bearbeitet:
Hallo Phantomias,

ich denke das mangels Platz auf den meisten Smartphones diese Graphen nicht anzeigbar wären vor allem wenn es 8 Fühler sind.
Schöner wäre eine CSS formartierte Digital Temperaturanzeige...

Bei Graphen denke ich eher an einen Trend damit ich beim nächsten PP die Kerntemperatur jedes Stück Fleisch und die des Garraumes den Verlauf ansehen kann.

Auch ich werde mir demnächst die I***A Fantast Fühler holen, die gibt es bei uns um EUR 6,99

Gibt es schon einen Standard was Daten Schnittstelle angeht?

Code:
<?php

$temp_0 = "22.16";
$temp_1 = "ERROR";
$temp_2 = "ERROR";
$temp_3 = "ERROR";
$temp_4 = "ERROR";
$temp_5 = "ERROR";
$temp_6 = "ERROR";
$temp_7 = "21";

$time_stamp = "19:41:02";
?>

Ist nicht so gut da hier jeder Wert in eine eigene Variable geschrieben wird, besser wäre ein Array da es damit einfacher ist die Anzahl der Sensoren zu zählen bzw. den GUI dynamisch zu gestalten.

Deshalb habe ich in meiner Version einfach einen String mit dem Python Service in eine Datei geschrieben der einfach in php / JavaScript in ein Array übernommen werden kann welches in einer Schleife ausgegeben wird.

Code:
|0!14|1!23|2!45|3!34

Java Script
Code:
//String in ein Array aufteilen
var x = string.split("|"); 
//Der erste wert
alert(x[0]);
//Schleife
for (i = 0; i < x.length;i++){
  alert(x[i]);
}
PHP
Code:
//String in ein Array aufteilen
$x = explode("|",$string);
//Der erste wert
echo $x[0]
//Schleife
for ($i = 0; $i < count($x);$i++){
  echo $x[$i];
}

LG

Joe
 
Zuletzt bearbeitet:
Also hier mal meine Bilder vom Nachbau
Ich habe auf die LED's etc derzeit verzichtet ;-)
attachment.php


attachment.php


attachment.php


attachment.php


Foto 1.JPG


Foto 2.JPG


Foto 3.JPG


Foto 4.JPG
 

Anhänge

  • Foto 1.JPG
    Foto 1.JPG
    147,8 KB · Aufrufe: 2.583
  • Foto 2.JPG
    Foto 2.JPG
    145,4 KB · Aufrufe: 2.539
  • Foto 3.JPG
    Foto 3.JPG
    155,7 KB · Aufrufe: 2.536
  • Foto 4.JPG
    Foto 4.JPG
    152,5 KB · Aufrufe: 2.548
@Florian

Iiiiiiiihhhhhh das sieht aber eklig aufgeräumt aus!!! :D

Geilomeilo! Was ist das für ein Piggy-Pack!?

Super Arbeit!

Grüßle und Tschöh!

Armin
 
Zurück
Oben Unten