Browse code

Funktioniert jetzt mit PHP7 und MYSQLi

dewomser authored on30/01/2017 06:39:12
Showing1 changed files

1 1
new file mode 100644
... ...
@@ -0,0 +1,116 @@
1
+<?php
2
+// Dieses Script funktioniert mit PHP7 und MYSQLi
3
+// Ein Arduino mit Stromzähler, der als Webserver
4
+// dient wird abgefragt um eine PNG-Grafik Stromverbrauch zu erzeugen. 
5
+
6
+//Variablen
7
+$ro = 0;
8
+//mysql-daten
9
+$host = "localhost";
10
+$user = "foo";
11
+$passwort = "foo_pw";
12
+$datenbank = "foo";
13
+$tabelle = "watt";
14
+
15
+//Datei vom Arduino mit Stromzähler wird ausgelesen
16
+$watt_lesen = file_get_contents("http://welt.untergang.de:81/");
17
+ 
18
+$link = mysqli_connect($host, $user, $passwort, $datenbank);
19
+//if (!$link) {
20
+//    die('Verbindung schlug fehl: ' . mysql_error());
21
+//}
22
+// echo 'Erfolgreich verbunden';
23
+
24
+ //das Wort Watt wird entfernt
25
+ $watt_ohne_bz = strcspn($watt_lesen,"Watt");
26
+ //echo $watt_ohne_bz;
27
+ $watt_wert = substr($watt_lesen,0,$watt_ohne_bz);
28
+
29
+$handle = fopen ("/var/www/gagagag/watt.inc","w");
30
+fwrite ($handle, $watt_wert." Watt");
31
+fclose ($handle);
32
+
33
+ // Wert in Tabelle einfügen (ID,Wert,Datum)
34
+ $query = "INSERT INTO `watt` VALUES (0,$watt_wert, NOW())";
35
+ $link->query($query);
36
+ // Diagramm wird erstellt 
37
+ $result = mysqli_query($link, "SELECT id,watt,zeit FROM watt ORDER BY `zeit` DESC LIMIT 0, 10");
38
+// $result = mysqli_query("SELECT id,watt,zeit FROM watt ORDER BY `zeit` DESC LIMIT 0, 10");
39
+
40
+ while ($row = $result ->fetch_array( MYSQLI_ASSOC))
41
+ // $row = $result->fetch_array(MYSQLI_ASSOC);
42
+  {
43
+  $datenr[$ro] = ($row["watt"]);
44
+  $zeitro[$ro] = ($row["zeit"]);
45
+  
46
+  $ro++;
47
+  }
48
+ //$datenr: Reihenfolge wird vertauscht wegen Darstellung in Tabelle
49
+ //$daten ist das array was für das Diagramm benutzt wird.
50
+ $daten = array_reverse($datenr);
51
+ $zeiten = array_reverse($zeitro);
52
+mysqli_free_result($result);
53
+mysqli_close($link);
54
+
55
+// orginal Diagramm Werte
56
+//$daten=array(10,125,100,238,200,175,100,200,250,225,125);
57
+//print_r($daten);
58
+
59
+// PNG-Grafik nur dann definieren wenn dieses PHP-Script ein Bild ist. 
60
+//header("Content-type: image/png");
61
+
62
+// Breite/Höhe des Diagramm
63
+$imgBreite=250;
64
+$imgHoehe=250;
65
+$font="/var/www/html/gagagag/arial.ttf";
66
+
67
+// Image-Objekt erzeugen und Farben definieren
68
+$bild = imagecreatetruecolor($imgHoehe, $imgBreite);
69
+// $bild=imagecreate($imgHoehe, $imgBreite);
70
+$farbeWeiss=imagecolorallocate($bild, 255, 255, 255);
71
+$farbeGrau=imagecolorallocate($bild, 192, 192, 192);
72
+$farbeBlau=imagecolorallocate($bild, 0, 150, 255);
73
+$farbeHellblau=imagecolorallocate($bild, 0, 200, 255);
74
+$black=imagecolorallocate($bild, 0, 0, 0);
75
+
76
+// Rand für die Grafik erzeugen
77
+imagefilledrectangle($bild, 0, 0, $imgHoehe, $imgBreite, $farbeWeiss);
78
+
79
+imageline($bild, 0, 0, 0, 250, $farbeGrau);
80
+imageline($bild, 0, 0, 250, 0, $farbeGrau);
81
+imageline($bild, 249, 0, 249, 249, $farbeGrau);
82
+imageline($bild, 0, 249, 249, 249, $farbeGrau);
83
+
84
+// Raster erzeugen
85
+
86
+imageTTFText($bild, 10, 90, 25, 120, $black,$font,$zeiten[0]);
87
+
88
+for ($i=1; $i<count($daten); $i++){
89
+    imageline($bild, $i*25, 0, $i*25, 250, $farbeGrau);
90
+    imageTTFText($bild, 10, 90,($i+1)*25, 120, $black,$font,$zeiten[$i]);
91
+    imageline($bild, 0, $i*25, 250, $i*25, $farbeGrau);
92
+}
93
+
94
+// Liniendiagramm erzeugen
95
+//for ($i=0; $i<count($daten); $i++){
96
+//imageline($bild, $i*25, (250-$daten[$i]),
97
+//    ($i+1)*25, (250-$daten[$i+1]), $farbeBlau);
98
+//}
99
+
100
+// Säulendiagramme erzeugen
101
+for ($i=0; $i<count($daten); $i++){
102
+    imagefilledrectangle($bild, $i*25, (250-$daten[$i]),
103
+    ($i+1)*25, 250, $farbeBlau);
104
+    imagefilledrectangle($bild, ($i*25)+1,
105
+    (250-$daten[$i])+1,
106
+    (($i+1)*25)-5, 248, $farbeHellblau);
107
+}
108
+
109
+// Diagramm ausgeben und Grafik
110
+// aus dem Speicher entfernen
111
+
112
+imagepng($bild, '/var/www/html/gagagag/stromtabelle.png');
113
+//Bild nicht anzeigen
114
+
115
+imagedestroy($bild);
116
+?>