Se me cuelga mi placa Arduino Ethernet
hola toda la comunidad. mí plaquita aurdino ethernet- no escudo- funciona en principio bien, no obstante tengo el siguiente problema, después de varias horas de funcionamiento- variable- se me queda el sistema colgado, hecho varias comprobaciones y el micro no se cuelga, para mí es el módulo w5100, le pongo programas estandar de pusingbox,twitter, servidor de web funcionan correctamente pero vuelvo comentar que al cabo de no más de dos días se cuelga el sitema, parece como si se produjera un desbordamiento de una pila o algo por el estilo en el módulo w5100. ver si alguien me puede orientar sobre este extraño problema.
p.d. no tengo otra placa para descartar hardware.
p.d. no tengo otra placa para descartar hardware.
code: [select]
////
//
// general code http://www.pushingbox.com arduino + ethernet shield (official) v1.2
//
////
#include <spi.h>
#include <ethernet.h>
/////////////////
// modify here //
/////////////////
byte mac[] = { 0x90, 0xa2, 0xda, 0x0f, 0x83, 0xd1 }; // sure address unique in network
ipaddress ip(192,168,1,100);
ipaddress servdns(87,216,1,65);//dns primary jazztel nucom router.
//your secret devid pushingbox.com. can use multiple devid on multiple pin if want
char devid1[] ="vcdeacdbd1b17d??" ; //scenario : "the mailbox open", ?? son dos números del escenario
//numeric pin connect switch
uint8_t pindevid1 = 6; // example : mailbox switch connect pin 9
// debug mode
boolean debug = true;
//////////////
// end //
//////////////
char servername[] = "api.pushingbox.com";
boolean pindevid1state = false; // save last state of pin devid1
boolean lastconnected = false; // state of connection last time through main loop
long ultimalectura=0;
// initialize ethernet client library
// ip address , port of server
// want connect (port 80 default http):
ethernetclient client;
void setup() {
while(millis()<180000);//espera 7' para que el router se estabilice en el supuesto de falta de energía.
serial.begin(9600);
pinmode(pindevid1, input);
// start ethernet connection:
ethernet.begin(mac,ip,servdns);
delay(10);
serial.println("ethernet ready");
// print ethernet board/shield's ip address:
serial.print("my ip address: ");
serial.println(ethernet.localip());
// give ethernet shield second initialize:
delay(1000);
}
void loop()
{
////
// listening pindevid1 state
////
if (millis()>ultimalectura+240000 && pindevid1state == false) // switch on pindevid1 on
{
if(debug){serial.println("pindevid1 high");}
pindevid1state = true;
ultimalectura= millis();
//sending request pushingbox when pin hight
sendtopushingbox(devid1);
}
if (millis()>ultimalectura+60000 && pindevid1state == true) // switch on pindevid1 off
{
if(debug){serial.println("pindevid1 low");}
pindevid1state = false;
//sending request pushingbox when pin low
//sendtopushingbox(devid1); //here can run other scenario creating devid2 variable
}
//debug part
// write respons pushingbox server.
// should see "200 ok"
if (client.available()) {
char c = client.read();
if(debug){serial.print(c);}
}
// if there's no net connection, there 1 last time
// through loop, stop client:
if (!client.connected() && lastconnected) {
if(debug){serial.println();}
if(debug){serial.println("disconnecting.");}
client.stop();
}
lastconnected = client.connected();
if(millis()>3600000){
asm volatile (" jmp 0"); // reset cada hora para ver si no se satura el w5100
}
}
//function sending request pushingbox
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");}
}
}
Arduino Forum > International > Español (Moderators: surbyte, Hector_A) > Se me cuelga mi placa Arduino Ethernet
arduino
Comments
Post a Comment