Temperatur in .txt auf Webserver

  • Hallo,
    Ich frage meinen DS18b20 Temperatursensor nach folgendem Tutorial abgefragt:
    [Tutorial] 1Wire Temperaturmessung mit Datenerfassung und Visualisierung

    Allerdings möchte ich jetzt nur die aktuelle Temperatur (als Zahlenwert) auf meinen Webserver unter /var/www/temperatur.txt abspeichern.
    Ich komme aber nicht darauf was ich an meinem Skript ändern muss. Denn egal was ich lösche, immer geht dann das komplette Skript nicht.

    Hier nochmal mein aktuelles Skript:

    Ich hoffe ihr habt mein Problem verstanden und ihr könnt mir helfen

    grüße
    eSmurf

  • === EDIT ===
    hat wohl irgendetwas nicht geklappt mit dem Editieren, hm.

    => siehe mein Post weiter unten - huch, zu spät ...
    === edit ende ===

    Viel Glück

    so long
    Perlchamp

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

    Einmal editiert, zuletzt von Perlchamp (28. Mai 2014 um 01:03)

  • Hmm komisch, nach einem Neustart geht es jetzt soweit.
    Der Temperaturwert wird auch in die entsprechende .txt geschrieben.
    Nur Soll jetzt noch jedesmal der vorherige Inhalt überschrieben werden... das Habe ich noch nicht hinbekommen.

    hier jetzt das skript, direkt vom Pi kopiert:

  • hallo eSmurf,
    GANZ WICHTIG (!):

    1. welche Fehlermeldungen bekommst du ?
    2. dein Skript sollte GENAU so aussehen, wie du es auf deinem Rechner hast ! (Einrückungen, etc.)
    3. deine Schaltung (Schaltplan - am besten ein Bild (Fritzing) dazustellen ...

    zu 2.
    Momentan kann ich dir auf den ersten Blick sagen, dass es so, wie es im Code-Block hier erscheint nicht funktionieren kann, und es sollte mind. 2 Fehlermeldungen geben ...
    Der Sensor sollte registriert und die Schnittestelle aktiviert werden
    LXTerminal:

    Code
    sudo modprobe wire
    sudo modprobe w1-gpio
    sudo modprobe w1-therm


    unter '/sys/bus/w1/devices' gibt es für jeden angeschlossenen digitalen Temperatursensor ein eigenes Verzeichnis. Der Verzeichnisname ist die Kennung des Sensors.
    Ich glaube bei einem DS18B20 beginnt der Verzeichnisname mit '28-'.
    In dieem Verzeichnis gibt es eine Textdatei namens w1_slave.
    Wenn du diese Datei öffnest, solltest du 2 Zeilen sehen, z.B.

    Code
    6F 01 4b 46 7f ff 01 10 67 : crc-67 YES
    6F 01 4b 46 7f ff 01 10 67 t=22937


    die erste Zeile beginnt mit den übertragenen Rohdaten. Sie enthalten ein Prüfbyte, um sicherzustellen, dass sie nicht durch eine Störung verfälscht worden sind. Am Ende der ersten Zeile steht das Ergebnis der Prüfung.(YES = alles in Ordnung)
    die zweite Zeile beginnt ebenfalls mit den Rohdaten und am Ende dieser Zeile steht die Temperatur in tausendstel Grad.

    hier einmal ein ungetestetes Skript (Ausführung benötigt root-Rechte => sudo idle3)
    Skript:


    zu 3.
    Pin 1 des DS18B20 mit der Masse verbinden (GND, Pin6 des GPIO)
    Pin 2 des DS18B20 mit 1-Wire verbinden (Pin7 des GPIO)
    Pin 3 des DS18B20 mit 3v3 (Pin1 des GPIO)
    Zwischen Pin 2 und Pin 3 des DS18B20 einen 4,7kOhm Widerstand schalten
    Im Datenblatt steht zwar, dass der DS18B20 auch ohne eigene Stromversorgung auskommt, aber das funktioniert mit dem Interface des Pi nicht.


    Viel Glück

    so long
    Perlchamp

    --- wer lesen kann, ist klar im Vorteil ---

    --- man sollte keine Dummheit zweimal begehen, die Auswahl ist schließlich groß genug ---

    --- der Fortschritt der Menschheit ist das Werk der Unzufriedenen ---

    --- Freude entsteht aus Mangel an Information ---

    --- Scheiße ist, wenn der Furz etwas wiegt ---

    Einmal editiert, zuletzt von Perlchamp (28. Mai 2014 um 01:04)


  • Naja ganz zuspät ist es doch nicht. Denn mein Crontab funktioniert nicht.
    er hat zwar folgenden inhalt:

    Er führt den cron alle zwei Stunden aus.

    Nein, die erste Spalte beziffert die Minute

    Wichtig zu wissen wäre allerdings in welcher crontab das eingetragen wurde - warum siehe -> https://www.forum-raspberrypi.de/Thread-tutorial-crontab-cron-jobs
    (forumsuche nach: crontab)

  • Das ding hier: /
    Nennt sich Slash.
    Ein Backslash wäre rückwärts also in die andere Richtung: \


    Ich sehe aber auch nicht was bezüglich der Slashes bei ihm falsch sein sollte :huh:
    Lies bitte auch du mal das von mir verlinkten Tutorial bezüglich crontab durch :)

  • Wenn du "crontab -e" mit vorangestelltem sudo ausführst, wird es in die crontab des root Benutzers eingetragen.. Alle Befehle die mit sudo ausgeführt werden, werden als root ausgeführt.

    Ich vermute mal sehr sehr stark das dein normaler 0815 Benutzer (vermutlich pi) kein Zugriff auf die /sys/devices/w1_bus_master1/ bzw /sys/bus/w1/devices/ Dateien/Verzeichnisse hat und du es eben zuvor in der Benutzercrontab von 'pi' drin hattest...

    In solchen Problemfällen kann man aber auch gucken was CRON macht (das is der crontab Dienst) und zwar im Logfile /var/log/syslog . Da müsste dann ja jede 2. Minute eine Ausführung deines crontab Eintrags auftauchen und genau dadrunter steht dann ggf eine Fehlermeldung

    Aber 2x den selben Eintrag brauchst du nicht - der eine geht halt der andere nicht... Und wie bereits gesagt wird es zuvor vermutlich daran gelegen haben das du den Crontabeintrag nicht über root laufen hattest

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!