Mal den alten kram ausgegraben.....
Cetax:
Hier der Sketch, mit dem ich einen Wert aus einer MySQL lese.
In diesem Sketch verwende ich noch float, was man aber lieber in unsigned long ändern sollte.
/*
#####################################################
# Einen Wert aus einer MySQL DB lesen #
#####################################################
*/
#include <SPI.h> // library für die Serielle Kommunikation
#include <Ethernet.h> // library für Ethernet kommunikation
byte mac[] = { 0x00, 0xAB, 0xCB, 0xCD, 0xDE, 0x02 }; // MAC-Adresse der Arduino
IPAddress ip(192,168,178,140); // IP-Adresse des Arduino
IPAddress server(192,168,178,111); // IP-Adresse des Servers
EthernetClient client; // initialisiere Ethernet-Bibliothek
char host[] = "192.168.178.111"; // Domain
char url[] = "/Arduino/Gas/read.php"; // Pfad zur PHP-Datei
float GZStand; // Wert aus DB als Variablentyp float
char* returnvalue = 0; // Variable mit max 10 zeichen
char buffer[10];
void setup() {
Serial.begin(9600); // Serielle Konsole initialisieren
Serial.print(F("Setup LAN ... "));
delay(1000);
Ethernet.begin(mac, ip); // IP Konfiguration setzen
Serial.println(F("ok"));
}
void loop() {
delay(1000);
char* zaehlerstand = daten_laden(); // http-request senden und in variable speichern
Serial.print(F("\n\nAntwort : "));
Serial.println(buffer);
GZStand = atof(buffer)/100; // durch 100 teilen, weil in der read.php multipliziert wird (*100)
Serial.println(GZStand);
delay(10000); // 10 sekunden warten
}
char* daten_laden() //achtung wir liefern ein char* (c-String zurück)
{
int index = 0; // zaehlindex auf 0 setzen
client.connect(server, 8000); // connect to server
Serial.print(F("Verbinde ... "));
delay(1000);
if (client.connected()) {
Serial.println(F("ok"));
client.print("GET ");
client.print(url);
client.println(" HTTP/1.1");
client.print("Host: ");
client.print(host);
client.println();
client.println();
delay(30);
} else {
Serial.println(F("Keine Verbindung..."));
client.flush();
client.stop();
client.connect(server, 8000); // connect to server
Serial.print(F("Neu Verbinden ... "));
delay(1000);
}
//Lese solange Bytes aus der Verbindung und wirf sie weg bis ein $ gefunden wird.
while (client.available() && client.read() != '
An dieser stelle nochmal ein ganz großes Danke an mkl0815 !
Der Sketch funktioniert bei dir?
Also bei mir nicht. Ich sag auch warum:D
char* daten_laden() //achtung wir liefern ein char* (c-String zurück)
{
int index = 0; // zaehlindex auf 0 setzen
client.connect(server, 80); // connect to server
Serial.print(F("Verbinde ... "));
delay(1000);
if (client.connected()) {
Serial.println(F("ok"));
client.print("GET ");
client.print(url);
client.println(" HTTP/1.1");
client.print("Host: ");
client.print(host);
client.println();
client.println();
delay(30);
} else {
Serial.println(F("Keine Verbindung..."));
client.flush();
client.stop();
client.connect(server, 80); // connect to server
Serial.print(F("Neu Verbinden ... "));
delay(1000);
}
//Lese solange Bytes aus der Verbindung und wirf sie weg bis ein $ gefunden wird.
while (client.available() && client.read() != '
Ich frag ab ob Verbunden wurde, fals ja dann den ganzen kram posten.
else
Keine Verbindung und deshalb neu Verbinden (zumindest posten dass neu Verbunden soll)
Nun kommt der Witz.
Hab den host falsch eingegeben, bzw garnicht geändert und es wird gepostet $ found
Das beste kommt ja aber zum schluss
client.read() != '
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
Antwort :
0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2
);
Serial.println(F("$ found")); // in der read.php ein $ vor den auszugebenden Wert setzen
while (client.available() && index < 10) { //einlesen der Nutzdaten. Aufpassen, das wir die Arraygrenze nicht überschreiten
buffer[index++] = client.read(); // solange zeichen vorhanden sind, das aktuelle zeichen in puffer schreiben und zaehlindex erhoehen
}
buffer[index] = 0; // wenn keine zeichen mehr vorhanden, dann puffer am letzten (schon erhoehten) index auf \0 setzen (c-String ende)
client.stop();
}
An dieser stelle nochmal ein ganz großes Danke an mkl0815 !
Der Sketch funktioniert bei dir?
Also bei mir nicht. Ich sag auch warum:D
§_DISCOURSE_HOISTED_CODE_1_§
Ich frag ab ob Verbunden wurde, fals ja dann den ganzen kram posten.
else
Keine Verbindung und deshalb neu Verbinden (zumindest posten dass neu Verbunden soll)
Nun kommt der Witz.
Hab den host falsch eingegeben, bzw garnicht geändert und es wird gepostet $ found
Das beste kommt ja aber zum schluss
§_DISCOURSE_HOISTED_CODE_2_§
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
Antwort :
0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2
);
Serial.println(F("$ found")); // in der read.php ein $ vor den auszugebenden Wert setzen
while (client.available() && index < 10) { //einlesen der Nutzdaten. Aufpassen, das wir die Arraygrenze nicht überschreiten
buffer[index++] = client.read(); // solange zeichen vorhanden sind, das aktuelle zeichen in puffer schreiben und zaehlindex erhoehen
}
buffer[index] = 0; // wenn keine zeichen mehr vorhanden, dann puffer am letzten (schon erhoehten) index auf \0 setzen (c-String ende)
client.stop();
}
Ich frag ab ob Verbunden wurde, fals ja dann den ganzen kram posten.
else
Keine Verbindung und deshalb neu Verbinden (zumindest posten dass neu Verbunden soll)
Nun kommt der Witz.
Hab den host falsch eingegeben, bzw garnicht geändert und es wird gepostet $ found
Das beste kommt ja aber zum schluss :D
§DISCOURSE_HOISTED_CODE_2§
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
> Antwort :
> 0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2
);
Serial.println(F("$ found")); // in der read.php ein $ vor den auszugebenden Wert setzen
while (client.available() && index < 10) { //einlesen der Nutzdaten. Aufpassen, das wir die Arraygrenze nicht überschreiten
buffer[index++] = client.read(); // solange zeichen vorhanden sind, das aktuelle zeichen in puffer schreiben und zaehlindex erhoehen
}
buffer[index] = 0; // wenn keine zeichen mehr vorhanden, dann puffer am letzten (schon erhoehten) index auf \0 setzen (c-String ende)
client.stop();
}
> ```
>
>
>
> An dieser stelle nochmal ein ganz großes Danke an mkl0815 !
Der Sketch funktioniert bei dir?
Also bei mir nicht. Ich sag auch warum:D
§DISCOURSE_HOISTED_CODE_1§
Ich frag ab ob Verbunden wurde, fals ja dann den ganzen kram posten.
else
Keine Verbindung und deshalb neu Verbinden (zumindest posten dass neu Verbunden soll)
Nun kommt der Witz.
Hab den host falsch eingegeben, bzw garnicht geändert und es wird gepostet $ found
Das beste kommt ja aber zum schluss :D
§DISCOURSE_HOISTED_CODE_2§
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
> Antwort :
> 0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2
);
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
Antwort :
0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2
);
Serial.println(F("$ found")); // in der read.php ein $ vor den auszugebenden Wert setzen
while (client.available() && index < 10) { //einlesen der Nutzdaten. Aufpassen, das wir die Arraygrenze nicht überschreiten
buffer[index++] = client.read(); // solange zeichen vorhanden sind, das aktuelle zeichen in puffer schreiben und zaehlindex erhoehen
}
buffer[index] = 0; // wenn keine zeichen mehr vorhanden, dann puffer am letzten (schon erhoehten) index auf \0 setzen (c-String ende)
client.stop();
}
An dieser stelle nochmal ein ganz großes Danke an mkl0815 !
Der Sketch funktioniert bei dir?
Also bei mir nicht. Ich sag auch warum:D
§_DISCOURSE_HOISTED_CODE_1_§
Ich frag ab ob Verbunden wurde, fals ja dann den ganzen kram posten.
else
Keine Verbindung und deshalb neu Verbinden (zumindest posten dass neu Verbunden soll)
Nun kommt der Witz.
Hab den host falsch eingegeben, bzw garnicht geändert und es wird gepostet $ found
Das beste kommt ja aber zum schluss
§_DISCOURSE_HOISTED_CODE_2_§
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
Antwort :
0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2
);
Serial.println(F("$ found")); // in der read.php ein $ vor den auszugebenden Wert setzen
while (client.available() && index < 10) { //einlesen der Nutzdaten. Aufpassen, das wir die Arraygrenze nicht überschreiten
buffer[index++] = client.read(); // solange zeichen vorhanden sind, das aktuelle zeichen in puffer schreiben und zaehlindex erhoehen
}
buffer[index] = 0; // wenn keine zeichen mehr vorhanden, dann puffer am letzten (schon erhoehten) index auf \0 setzen (c-String ende)
client.stop();
}
Ich frag ab ob Verbunden wurde, fals ja dann den ganzen kram posten.
else
Keine Verbindung und deshalb neu Verbinden (zumindest posten dass neu Verbunden soll)
Nun kommt der Witz.
Hab den host falsch eingegeben, bzw garnicht geändert und es wird gepostet $ found
Das beste kommt ja aber zum schluss :D
§DISCOURSE_HOISTED_CODE_2§
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
> Antwort :
> 0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2
);
Serial.println(F("$ found")); // in der read.php ein $ vor den auszugebenden Wert setzen
while (client.available() && index < 10) { //einlesen der Nutzdaten. Aufpassen, das wir die Arraygrenze nicht überschreiten
buffer[index++] = client.read(); // solange zeichen vorhanden sind, das aktuelle zeichen in puffer schreiben und zaehlindex erhoehen
}
buffer[index] = 0; // wenn keine zeichen mehr vorhanden, dann puffer am letzten (schon erhoehten) index auf \0 setzen (c-String ende)
client.stop();
}
> ```
>
>
>
> An dieser stelle nochmal ein ganz großes Danke an mkl0815 !
Der Sketch funktioniert bei dir?
Also bei mir nicht. Ich sag auch warum:D
§DISCOURSE_HOISTED_CODE_1§
Ich frag ab ob Verbunden wurde, fals ja dann den ganzen kram posten.
else
Keine Verbindung und deshalb neu Verbinden (zumindest posten dass neu Verbunden soll)
Nun kommt der Witz.
Hab den host falsch eingegeben, bzw garnicht geändert und es wird gepostet $ found
Das beste kommt ja aber zum schluss :D
§DISCOURSE_HOISTED_CODE_2§
client.read() fals was anderes als '$');
dann posten $ found
Nun kommt aber der traurige Teil, nachdem ich den host richtig eingegeben hab, wird mir immer noch gepostet
> Antwort :
> 0
Dies steht in der Datenbank:
2014-01-18 22:06:32.000000 //datum
12.00 //temp1
13.00 //temp2