Hallo Ralf,
vielen Dank! Ich habe direkt im Arduino-Forum nachgeguckt.
Nur leider habe ich immer noch das gleiche Problem.
Ich habe nun folgende Verbesserung vorgenommen:
- ich benutze jetzt das F() Makro
- die Delays habe ich ersetzt durch eine millis() abfrage
- In der if Abfrage ist nun der Code enthalten der das PHP Skript
aufruft
- die Serial.println habe ich rausgeschmissen
Für weitere Tipps wäre ich euch sehr dankbar!
Beste Grüße und vielen Dank!
Anbei der verbesserte Code:
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;
unsigned long zeitalt;
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) {
client.print(F("GET /webseite/SpeichernInDatenbank.php"));
client.print(F("?wert="));
client.print(88);
client.println(F(" HTTP/1.1"));
client.print(F("Host: dedo.bplaced.net" ));
client.println();
client.println(F("User-Agent: Arduino"));
client.println(F("Connection: close"));
client.println();
Serial.println(freemem());
client.stop();
client.flush();
zeitalt=millis();
while(millis()-zeitalt<1000)
{}
}
else {
Serial.println("connection failed, err: ");
}
}
// this function will return the number of bytes currently free in RAM
extern int __bss_end;
extern int *__brkval;
int freemem()
{
int free_memory;
if((int)__brkval == 0)
free_memory = ((int)&free_memory) - ((int)&__bss_end);
else
free_memory = ((int)&free_memory) - ((int)__brkval);
return free_memory;
}
Lesezeichen