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.
PHP
<?php
error_reporting( E_ALL );
Print "<h1>DS18X Sensoren - - Namen lesen und Werte hohlen...</h1>";
$SysPath = "/sys/bus/w1/devices/w1_bus_master1/";
print "Pfad: ".$SysPath."<br><br>";
if (FILE_EXISTS($SysPath."w1_master_name"))
{
$SensorCount = implode('',file($SysPath.'w1_master_slave_count'));
$SensorNamen = file($SysPath.'w1_master_slaves');
print "Es wurde(n) ".$SensorCount." Sensor/en gefunden.<br>";
for ($i = 0; $i < $SensorCount;$i++)
{
print "<br>Bezeichnung: ".$SensorNamen[$i]."<br>";
$FullPath = $SysPath.$SensorNamen[$i]."/w1_slave"; # Pfad zusammensetzen
$FullPath = str_replace(array("\r\n", "\r", "\n"), '', $FullPath); # Die Zeilenumbrüche entfernen
$tempSensorRawData = implode('', file($FullPath));
$tempSensorTemperature = substr($tempSensorRawData, strpos($tempSensorRawData, "t=") + 2);
$temperature = sprintf("%2.3f", $tempSensorTemperature / 1000);
Print "Messwert: ".$temperature."<br>";
}
}
else {
Print "Fehler: Die 1-Wire Module sind nicht geladen!";
}
?>
Alles anzeigen
Verbesserungen erwünscht!