Suche auf lima-city
-
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
Heureka!! rief der alte Grieche.
Hinter meiner Domaine war ein kleines grünes Schloss, das muss ich irgendwann mal unbewußt von schwar/offen nach grün/geschlossen geclickt haben. Wieder nach schwarz geclickt - und schon laufen die Daten in der DB ein.
vielen Dank nochmal allen ! -
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
Datensicherheit spielt hier keine Rolle. Was ich mache, ist nur Spielerei. Kann man bei lima-city http-Übertragung einstellen? Ich hab nichts gefunden. Wenn das nicht geht, muss ich mir wohl einen anderen Webspacelieferanten suchen. -
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
www.bsob-leinenborn.lima-city.de als auch bsob-leinenborn.lima-city.de erzwingen eine Weiterleitung auf HTTPS.
Du verbindest dich ja direkt über HTTP auf Port 80 -> unverschlüsselt.
Wie geht dein HTTP-Client damit um? Vermutlich registriert er nur die Weiterleitung und macht nichts mehr.
Damit kommen die Daten natürlich auch nicht ans PHP-Script und der Eintrag wird nicht in die DB geschrieben.
Also, ich stell mir auch vor, dass das Problem nicht bei meiner PHP-Datei liegt und auch nicht im Arduino-Sketch. Was du schreibst kommt mir einleuchtend vor. Ich weiß aber nicht, wie ich damit umgehen soll. Dafür sind meine Kenntnisse etwas zu dürftig.
Was meinst du mit
Über www.bsob-leinenborn.lima-city.de zu gehen ist eh blöd, weil das SSL-Zertifikat nur für bsob-leinenborn.lima-city.de gilt.
Wie kann ich sonst einsteigen?
-
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
Ja, auch mit diesen zusätzlichen Zeilen hatte ich das mal probiert - ohne Erfolg.
Ich liste hier mal den vollständigen Code - der Übersichtlichkeit halber abgespeckt auf die reinen Client-Funktionen. Wenn das mal funktioniert, ist dann die Datenerfassung schnell eingefügt.
Also mit diesem Code funktioniert es nicht!
#include <SPI.h> #include <Ethernet.h> byte mac[] = { 0xD4, 0x28, 0xB2, 0xFF, 0xA0, 0xA1 }; char server[]="www.bsob-leinenborn.lima-city.de"; IPAddress ip(192,168,2,199); EthernetClient client; void setup() { Serial.begin(9600); Ethernet.begin(mac,ip); delay(1000); } void loop() { Serial.println(); Serial.println("Verbindung aufbauen..."); int x = client.connect(server,80); Serial.println(x); if (x > 0) { Serial.print ("connected to "); Serial.println (server); client.print("GET /N.php?T=65&D=565&F=78&H=666 HTTP/1.1"); client.print("Host: www.bsob-leinenborn.lima-city.de"); client.println("User-Agent: Arduino"); client.println("Accept: text/html"); client.println(); delay(1000); } else { Serial.println("keine Verbindung"); } client.stop(); delay (5000); }
Die PHP-Datei hab ich mal etwas geändert, dass sie eine Rückmeldung gibt, wenn sie mit dem Browser aufgerufen wird. -
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
Vollständig heißt das, glaube ich, : if(client.connect(server,80)>0)...
Ein connect ist also gegeben bei positiven Rückgabewerten.
Ich hab mal das gemacht:
int x = client.connect(server,80);
serial.print(x);
Das ergab für x bei www.dudickesei.de den Wert "1".
Aber wie du schon sagst - so richtig weiter bringt das nicht.
Ich werd mich mal in einem speziellen Arduino-Forum umhören.
Danke für deine Bemühungen... -
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
Ja , das geht. Du hast es wohl auch schonmal probiert. Um 18:37 Uhr sind diese Daten in die DB geschrieben worden. Ich war da nicht zugange.
Mir ist beim Experimentieren mit dem Sketch etwa Sonderbares aufgefallen. Ich kann als Servername einen beliebigen, nicht existenten Servernamen eintragen (z.B.: www.Ach_du_dickes_Ei.de), die Zeilen :
" if (client.connect(server,80)) {
Serial.print ("connected to ");
Serial.println (server);"
ergeben immer in der seriellen Ausgabe "www.connected to Ach_du_dickes_Ei.de."
Also möglicherweise bin ich in den Server auf www.BSob-leineborn.lima-city.de garnicht connected, obwohl es so aussieht.
-
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
Oh, das war jetzt dumm. Die Datei heißt wirklich "N.php", wie im Code. "1.php" ist ein Fehler im Text. Ich hab mit Filezilla nochmal nachgeschaut, was wirklich bei Lima liegt. Also "N.php" - und damit gehts nicht.
Was könnte ich sonst noch machen? -
in: Datenübergabe von arduino mittels PHP-Datei an SQL-DB
geschrieben von bsob-leinenborn
Hallo allerseits,
ich möchte Messwerte von 4 Sensoren, die am Arduino angeschlossen sind an eine PHP-Datei auf meinem Webserver "xxx.lima.city.de" mit der GET-Methode übergeben. Diese PHP-Datei soll diese Daten dann in eine SQL-Datenbank weiterreichen.
- Das System habe ich auf meinem eigenen PC mit Apache Webserver zum laufen bekommen.
- Wenn ich die PHP-Datei auf meinem Server im Browser aufrufe mit dem Anhang (z.B.) ?T=999 wird der Wert 999 auch in die DB geschrieben.
- Die PHP-Datei heißt der Einfachheit halber mal "1.php" und liegt auf meinem Server in dem Verzeichnis "xxx.lima-city.de
Die relevanten Codezeilen im Arduino sind :
char server[]="https://xxx.lima-city.de"; //(ich habs schon probiert ohne "https://", mit "http://", mit "http/https.www", mit "www", ohne alles)
.
.
if (client.connect(server,80)) {
Serial.print ("connected to ");
Serial.println (server);
client.print("GET /N.php?T=65&D=565&F=78&H=666");
serial.print zeigt einen Connect an, es werden aber keine Daten in die DB geschrieben. Im Prinzip macht die PHP-Datei das aber - s.oben.
Müssen noch Benutzer und Passwort angegeben werden? In welcher Form? Probiert habe ich das auch schon, bin mir aber nicht sicher in welcher Form das ggf. geschehen muss.
Die PHP-Datei sieht ganz einfach so aus:
<?php
isset($_GET['T']) ? $T=$_GET['T'] : $T='';
isset($_GET['D']) ? $D=$_GET['D'] : $D='';
isset($_GET['F']) ? $F=$_GET['F'] : $F='';
isset($_GET['H']) ? $H=$_GET['H'] : $H='';
$db = mysqli_connect("xxx.lima-db.de","USER00000","00000000","da00000");
$SQL_Befehl = "INSERT INTO erste (Zeit, Temperatur, Luftdruck, Feuchtigkeit, Helligkeit) Values (NOW(), '$T', '$D', '$F', '$H' )" ;
$result = mysqli_query ($db,$SQL_Befehl);
?>