julius858
25.07.2014, 12:23
Hallo Zusammen,
ich habe folgendes Problem:
Ich möchte gerne, dass eine Zahl (in diesem Fall die 63) über ein PHP Skript in eine Datenbank geschrieben wird.
Diese Zahl soll jede Sekunde oder jede Zwei Sekunden übertragen werden. Später wird die Zahl natürlich variieren.
Dies funktioniert auch mit dem unten eingefügten Code, allerdings bricht die Verbindung immer nach einiger Zeit ab.
Wenn ich nur alle 10 Sekunden die Zahl 63 übertrage, dann dauert es länger bis die Übertragung abbricht und schicke ich jede Sekunde passiert dies schneller.
Um die Verbindung nach dem Abbruch wiederherzustellen muss ich dann immer das Arduino und das Shield von der Spannungsquelle trennen. Kurz warten und dann funktioniert es wieder, nur resetten funktioniert garnicht.
Es gibt ja sehr viele Beispielcodes bei dem eine Temperatur gemessen und dann diese auf eine Datenbank gespeichert wird.
Ich habe auch schon mehrere davon ausprobiert, aber ich bekomme es leider einfach nicht hin..
Bitte helft mir!
Hardware: Original Arduino UNO und Original Arduino Ethernet Shield
Beste Grüße und vielen DANK!
Julius
Arduino Code
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0x90, 0xA2, 0xDA, 0x0F, 0x62, 0xAF };
char serverName[] = "dedo.bplaced.net";
char url[] = "/webseite/SpeichernInDatenbank.php";
EthernetClient client;
void setup()
{
Serial.begin(9600);
if (Ethernet.begin(mac) == 0) { // start ethernet using mac & IP address
Serial.println("Failed to configure Ethernet using DHCP");
while(true) // no point in carrying on, so stay in endless loop:
;
}
delay(1000); // give the Ethernet shield a second to initialize
}
void loop()
{ int ret = client.connect(serverName, 80);
if (ret == 1) {
Serial.println("connected"); // report successful connection
// Make an HTTP request:
// client.println("GET /webseite/AbrufenDerDaten.php HTTP/1.0");
// client.println("Host: dedo.bplaced.net");
// client.println();
}
else {
Serial.println("connection failed, err: ");
Serial.print(ret,DEC);
}
client.print("GET " + String(url));
client.print("?wert=");
client.print(63);
client.println(" HTTP/1.1");
Serial.println(" HTTP/1.1");
client.print("Host: dedo.bplaced.net" );
client.println();
Serial.println();
client.println("User-Agent: Arduino");
Serial.println("User-Agent: Arduino");
client.println("Connection: close");
Serial.println("Connection: close");
client.println();
Serial.println();
delay(700);
client.stop();
Serial.println("Done.");
client.flush();
delay(200);
}
Speichern in Datenbank
<?php
require_once ('ZugriffaufDatenbank.php');
$var=$_GET['wert'];
echo $var;
$nvar=floatval($var);
echo $nvar;
$sql = "
INSERT INTO `Netzfrequenz`
(
`Position` , `Zeitpunkt_der_Messung` , `Messwert`
)
VALUES
(
NULL , NULL,$nvar
);
";
$db_erg = mysqli_query($db_link, $sql)
or die("Anfrage fehlgeschlagen: " . mysqli_error());
?>
ich habe folgendes Problem:
Ich möchte gerne, dass eine Zahl (in diesem Fall die 63) über ein PHP Skript in eine Datenbank geschrieben wird.
Diese Zahl soll jede Sekunde oder jede Zwei Sekunden übertragen werden. Später wird die Zahl natürlich variieren.
Dies funktioniert auch mit dem unten eingefügten Code, allerdings bricht die Verbindung immer nach einiger Zeit ab.
Wenn ich nur alle 10 Sekunden die Zahl 63 übertrage, dann dauert es länger bis die Übertragung abbricht und schicke ich jede Sekunde passiert dies schneller.
Um die Verbindung nach dem Abbruch wiederherzustellen muss ich dann immer das Arduino und das Shield von der Spannungsquelle trennen. Kurz warten und dann funktioniert es wieder, nur resetten funktioniert garnicht.
Es gibt ja sehr viele Beispielcodes bei dem eine Temperatur gemessen und dann diese auf eine Datenbank gespeichert wird.
Ich habe auch schon mehrere davon ausprobiert, aber ich bekomme es leider einfach nicht hin..
Bitte helft mir!
Hardware: Original Arduino UNO und Original Arduino Ethernet Shield
Beste Grüße und vielen DANK!
Julius
Arduino Code
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {0x90, 0xA2, 0xDA, 0x0F, 0x62, 0xAF };
char serverName[] = "dedo.bplaced.net";
char url[] = "/webseite/SpeichernInDatenbank.php";
EthernetClient client;
void setup()
{
Serial.begin(9600);
if (Ethernet.begin(mac) == 0) { // start ethernet using mac & IP address
Serial.println("Failed to configure Ethernet using DHCP");
while(true) // no point in carrying on, so stay in endless loop:
;
}
delay(1000); // give the Ethernet shield a second to initialize
}
void loop()
{ int ret = client.connect(serverName, 80);
if (ret == 1) {
Serial.println("connected"); // report successful connection
// Make an HTTP request:
// client.println("GET /webseite/AbrufenDerDaten.php HTTP/1.0");
// client.println("Host: dedo.bplaced.net");
// client.println();
}
else {
Serial.println("connection failed, err: ");
Serial.print(ret,DEC);
}
client.print("GET " + String(url));
client.print("?wert=");
client.print(63);
client.println(" HTTP/1.1");
Serial.println(" HTTP/1.1");
client.print("Host: dedo.bplaced.net" );
client.println();
Serial.println();
client.println("User-Agent: Arduino");
Serial.println("User-Agent: Arduino");
client.println("Connection: close");
Serial.println("Connection: close");
client.println();
Serial.println();
delay(700);
client.stop();
Serial.println("Done.");
client.flush();
delay(200);
}
Speichern in Datenbank
<?php
require_once ('ZugriffaufDatenbank.php');
$var=$_GET['wert'];
echo $var;
$nvar=floatval($var);
echo $nvar;
$sql = "
INSERT INTO `Netzfrequenz`
(
`Position` , `Zeitpunkt_der_Messung` , `Messwert`
)
VALUES
(
NULL , NULL,$nvar
);
";
$db_erg = mysqli_query($db_link, $sql)
or die("Anfrage fehlgeschlagen: " . mysqli_error());
?>