Hallo
Will mir von einem Nano mit angeschlossenem Ethernet Modul(W5100) Nachrichten auf mein Handy schicken lassen. Ich verwende dafür PushingBox. Habe aber das Problem das die Nachricht nicht immer durch geht. Auf der Platine vom Ethernet Modul blinken die unteren LEDs das gesendet wird aber auf PushingBox wird nicht angezeigt das was angekommen ist. Kann sein es funktioniert 10 mal und dann wieder einmal nicht mehr. Hat mir da jemand einen Lösungsvorschlag?
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x00, 0xAA, 0xBB, 0xCC, 0xDE, 0x19 }; // Be sure this address is unique in your network
IPAddress ip(192, 168, 178, 63);
char futterLeerNachricht[] = "vF8----------88F"; //Futter leer
uint8_t futterLeer = 4; // Futter leer
unsigned long futterZeit;
char serverName[] = "api.pushingbox.com";
boolean DEBUG = true;
boolean lastConnected = false;
boolean futterLeerState = false;
EthernetClient client;
void setup() {
Serial.begin(9600);
pinMode(futterLeer, INPUT);
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
while (true);
}
else {
Serial.println("Ethernet ready");
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
}
delay(1000);
}
void loop()
{
//Nachrichten
if ((digitalRead(futterLeer) == HIGH) && (futterLeerState == false)) //Futter leer
{
if (millis() - futterZeit > 10000) {
futterLeerState = true;
sendToPushingBox(futterLeerNachricht);
}
}
if (digitalRead(futterLeer) == LOW)
{
futterLeerState = false;
futterZeit = millis();
}
//bleibt gleich
if (client.available()) {
char c = client.read();
if (DEBUG) {
Serial.print(c);
}
}
if (!client.connected() && lastConnected) {
if (DEBUG) {
Serial.println();
}
if (DEBUG) {
Serial.println("disconnecting.");
}
client.stop();
}
lastConnected = client.connected();
}
void sendToPushingBox(char devid[]) {
client.stop();
if (DEBUG) {
Serial.println("connecting...");
}
if (client.connect(serverName, 80)) {
if (DEBUG) {
Serial.println("connected");
}
if (DEBUG) {
Serial.println("sendind request");
}
client.print("GET /pushingbox?devid=");
client.print(devid);
client.println(" HTTP/1.1");
client.print("Host: ");
client.println(serverName);
client.println("User-Agent: Arduino");
client.println();
}
else {
if (DEBUG) {
Serial.println("connection failed");
}
}
}