DS18B20 Temperaturfühler lesen - Kontrollscript

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hallo,

    beim experimentieren war ich es irgendwann satt immer die ganzen Pfade für die Sensoren in das Terminal ein zu Tippen und habe mir dieses kleine
    Script gebastetelt. Es tut nichts anderes als die DS18X Sensoren zu zählen und auszulesen. So habe ich immer einen
    Überblick ob alle arbeiten und auch die Werte schön und simpel im Browser.
    Da die Pfade immer gleich sind sollte es bei jedem auch direkt funktionieren. (Webserver, PHP und die Sensoren vorrausgesetzt)
    Kann auch genutzt werden um zu testen ob die Sensoren angeschlossen sind und funktionieren.


    Vieleicht kann es noch jemand gebrauchen.


    Verbesserungen erwünscht!

  • Wenn du mir erlaubst, dazu würde ich gern einen Verbesserungsvorlag machen :fies:

    Du verwendest zum Beispiel $SensorCount = implode('',file($SysPath.'w1_master_slave_count')); und auch an anderer Stelle noch mal implode('',file(....)); , was ich etwas strange finde :daumendreh2:

    Ich hatte sowas seinerzeit wie folgt umgesetzt:
    [code=php]
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>1 wire</title>
    </head>
    <body>
    <?php
    // (c) meigrafd 09.2015
    // Temperaturlogging + webserver Problem cronjob
    if (!file_exists("/sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count")) {
    echo "<b>ERROR: w1 Kernel Module not loaded?<br/>modprobe w1-gpio pullup=1<br/>modprobe w1-therm<br/></b>\n";
    } else if (file_get_contents("/sys/bus/w1/devices/w1_bus_master1/w1_master_slave_count") === 0) {
    echo "<b>ERROR: No 1-wire Sensors connected?</b>\n";
    } else {
    $w1_slaves = file("/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves");
    foreach ($w1_slaves AS $slave) {
    $lines = file("/sys/bus/w1/devices/".$slave."/w1_slave");
    if (preg_match("/t=(.*)/", $lines[1], $match)) {
    echo $slave.": ".$match[1]."<br/>\n";
    }
    }
    }
    ?>
    </body>
    </html>
    [/php]

    Da nutze ich file_get_contents(); um w1_master_slave_count auszulesen, was meiner Meinung nach nicht "durch den rücken ins Auge"-mäßig wie bei dir wäre :D

    Aber wie immer gibt es mehrere Wege um ans gleiche Ziel zu kommen :thumbs1:

  • Nein, um dingsbums willen :)

    Das war ja nur so als Idee ,Wille und Spaß dran gebaut worden. Als es funktionierte hat habe ich nicht weiter gebastelt.
    Da der Code so kurz ist und funzt war mir die Optimierung egal.

    Viele Wege führen nach ROM:)

    Ich habe programmierung nicht als Beruf sondern als Hobby.

    Einmal editiert, zuletzt von MyNickname (26. November 2015 um 23:07)

  • Hallo MyNickname,


    Ich habe programmierung nicht als Beruf sondern als Hobby.

    dessen sollte man sich wieder bewusst werden - bevor man über den Code anderer herfällt! :thumbs1:

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.

    Einmal editiert, zuletzt von Andreas (26. November 2015 um 23:14)

  • Mein Beruf hat auch nichts mit PC's o.ä. zu tun, nicht mal Ansatzweise ;) Alles was ich diesbezüglich weiß/kann hab ich mir durch Hobby's selber beigebracht.

    Es war auch keine Kritik, nur ein Vorschlag. Erklärung zwischen file(); und file_get_contents(); findet man btw in dem Link vom Script.

Jetzt mitmachen!

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