Hallo zusammen,
ich habe folgendes Problem.
Ich möchte ein Tempwert-Diagramm über phpmyadmin auf einer Webseite darstellen.
Als Sensor habe ich hier den DS18B20.
Bin hier strikt nach dem Video von The-ITTV vor gegangen.
Das Problem wird natürlich schon mal sein dass das Video von 2015 ist.
Habe soweit alles gemacht wie im Video beschrieben.
Mein Problem ist das er wenn ich auf die Webseite zugreifen möchte eine leere weiße Seite erscheint.
Folegende Meldung erscheint wenn ich in Chrome die Konsole öffne.
Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Ich weiß hier momentan nicht mehr weiter.
Bin leider blutiger Anfänger.
Hat jemand so etwas schon einmal gemacht ?
Und hat eventuell eine Anleitung welche aktueller ist ?
Vermute das hier irgendwelche PHP Versionen nicht stimmen oder so.
Vielen Dank im Vorraus.
Tempwerte.php
<?php
/*
* Gibt fuer den aktuellen Tag fuer jede Stunde einen druchschnittlichen Temperaturwert als CSV aus.
*/
function daytemp(){
$mysqlhost="localhost";
$mysqluser="Wetter";
$mysqlpwd="raspberry";
$mysqldb="Wetter";
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Could not connect to DB!");
mysql_select_db($mysqldb, $connection) or die("Could not select DB!");
$timestampHeuteNullUhr = mktime( 0, 0, 0 );
$timestampHeute23_59 = $timestampHeuteNullUhr + (60 * 60 * 24);
$stundenCounter = $timestampHeuteNullUhr;
$ergebnisArray = array();
while ($stundenCounter < $timestampHeute23_59){
$stundenCounterPlusEineStunde = $stundenCounter + (60 * 60);
$sql_query = "Select temperature from tbl_Wetter where timestamp >= $stundenCounter and timestamp <= $stundenCounterPlusEineStunde;";
$result = mysql_query($sql_query);
// Stundenwerte aufsummieren
$temperaturStundenweiseAusummiert = 0.0;
$anzahlStundenWerte = 0;
while ($row = mysql_fetch_array($result, MYSQL_BOTH)) {
$temperaturStundenweiseAusummiert = $temperaturStundenweiseAusummiert + $row["temperature"];
$anzahlStundenWerte = $anzahlStundenWerte + 1;
}
if ($anzahlStundenWerte != 0){
$ergebnisArray[] = sprintf("%2.2f", $temperaturStundenweiseAusummiert / $anzahlStundenWerte);
}
$stundenCounter = $stundenCounter + (60 * 60);
}
for ($i = 0; $i < sizeof($ergebnisArray); $i++){
echo "{$ergebnisArray[$i]}, ";
}
}
?>
Display More
<!doctype html>
<?php
include 'Tempwerte.php';
?>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>Temp</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<script>
$(function () {
var chart;
$(document).ready(function() {
chart = new Highcharts.Chart({
chart: {
renderTo: 'chart_tag',
type: 'line',
marginRight: 130,
marginBottom: 25
},
title: {
text: 'Tagestemperaturverlauf',
x: -20 //center
},
xAxis: {
title: {
text: 'Uhrzeit'
},
categories: ['1', '2', '3', '4', '5', '6',
'7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18',
'19', '20', '21', '22', '23', '24']
},
yAxis: {
title: {
text: 'Temperatur ( °C )'
},
plotLines: [{
value: 0,
width: 1,
color: '#808080'
}]
},
tooltip: {
formatter: function() {
return '<b>'+ this.series.name +'</b><br/>'+
this.x +': '+ this.y +'°C';
}
},
legend: {
layout: 'vertical',
align: 'right',
verticalAlign: 'top',
x: -10,
y: 100,
borderWidth: 0
},
series: [{
name: 'Temperatur',
data: [<?php daytemp(); ?>]
}]
});
});
});
</script>
</head>
<body>
<!-- Highstock -->
<script src="http://code.highcharts.com/stock/highstock.js"></script>
<script src="http://code.highcharts.com/stock/modules/exporting.js"></script>
<!-- Highcharts -->
<script src="http://code.highcharts.com/highcharts.js"></script>
<h1>Temperatur</h1>
<div id="chart_tag" style="height: 450px; min-width: 600px"></div>
<br/>
<!-- <div id="chart_historisch" style="height: 500px; min-width: 600px"></div> -->
</body>
Display More
<?php
/*
* Gesetze des erstellten Benutzers eintrgen
*
*/
$mysqlhost="localhost";
$mysqluser="Wetter";
$mysqlpwd="raspberry";
$mysqldb="Wetter";
//Hier muss der Sensor Name eingeragen werden !
$temperatureSensorPath = "/sys/bus/w1/devices/28-0121131ed335/w1_slave";
// --- Lese Daten aus ---
$tempSensorRawData = implode('', file($temperatureSensorPath));
//Unnötige dinge, vor der Temperatur werden verworfen
$tempSensorTemperature = substr($tempSensorRawData, strpos($tempSensorRawData, "t=") + 2);
//Kommastelle wird verschoben
$temperature = sprintf("%2.2f", $tempSensorTemperature / 1000);
$timestamp = time();
// --- Schreibe Daten in die Datenbank ---
$connection=mysql_connect($mysqlhost, $mysqluser, $mysqlpwd) or die ("Could not connect to DB!");
mysql_select_db($mysqldb, $connection) or die("Could not select DB!");
// Das ist der Quary zu erstellen der Daten in der Datenbank
$sql_query = "INSERT INTO tbl_Wetter VALUES ($timestamp, $temperature);";
//Führe Quary aus.
mysql_query($sql_query);
?>
Display More