LusoRobótica - Robótica em Português

Robótica => Iniciantes => Tópico iniciado por: patricksilva18 em 16 de Agosto de 2012, 18:58

Título: Ethernet Shield lendo, nao carregando
Enviado por: patricksilva18 em 16 de Agosto de 2012, 18:58
Boa tarde pessoal, desculpe-me caso esteja postando no lugar incorreto.
estou com uma duvida, sou novato no arduino, por isso peço a ajuda de voces, tenho o codigo abaixo no arduino, quando acesso pelo browser, o browser fica o tempo todo carregando até a pagina expirar, o que pode ser. Atecipadamente, agradeço.

Codigo
#include
#include
#include

byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,20, 200);

EthernetServer server(8082);

int pinled = A5;
int pinBuzzer = A1;
const int chipSelect = 4;

void setup() {
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for Leonardo only
}
// Startando Ethernet Shield:
Ethernet.begin(mac, ip);
server.begin();

//Entrada na serial para o ip
Serial.print("server is at ");
Serial.println(Ethernet.localIP());

//Verificacao de presença ou nao do cartao SD
if (!SD.begin(chipSelect)) {
Serial.println("Card failed, or not present");
// don't do anything more:
return;
}

//Configuracao dos pinos ent/said
pinMode(pinled, OUTPUT);
digitalWrite(pinled, LOW);
}

void loop() {
//lendo valor porta analogica p/ temperatura
double valorLido = analogRead(0);
double temperatura = (5.0 * valorLido * 100.0 / 1024.0);

// listen for incoming clients
EthernetClient client = server.available();
if (client) {
int varonoff = 0;
String vars;
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();

//Verificacao de entrada do browser
if (vars.endsWith("/ontv")) {
varonoff = 1;
}
else if (vars.endsWith("/offtv")) {
varonoff = 2;
}
else if (vars.endsWith("/oonj")) {
varonoff = 3;
}
else if (vars.endsWith("/offj")) {
varonoff = 4;
}
else if (vars.endsWith("/temp")) {
varonoff = 5;
}
else if (vars.endsWith("/portg")) {
varonoff = 6;
}
else if (vars.endsWith("/portp")) {
varonoff = 7;
}

vars.concat(c);
if (c == 'n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connnection: close");
client.println();
client.println("");
client.println("");

File dataFile = SD.open("index.txt");
if (dataFile) {
while (dataFile.available()) {
char teste = dataFile.read();
client.print(teste);
}break;
dataFile.close();
}

//ativacao de controles
if (varonoff == 1){
digitalWrite(pinled, HIGH);
client.println("Lamp. Sala TV Ativada");
}
else if (varonoff == 2){
digitalWrite(pinled, LOW);
client.println("Lamp. Sala TV Desativada");
}
else if (varonoff == 3){
digitalWrite(pinled, HIGH);
client.println("Lamp. Jardim Ativada");
}
else if (varonoff == 4){
digitalWrite(pinled, HIGH);
client.println("Lamp Jardim Desativada");
}
else if (varonoff == 5){
client.println("Temperatura atual");
client.println("
");
client.println(temperatura);
client.println("");
}
else if (varonoff == 6){
digitalWrite(pinled, HIGH);
delay(500);
digitalWrite(pinled, LOW);
client.println("Portao Ativado");
}
else if (varonoff == 7){
digitalWrite(pinled, HIGH);
client.println("Portao P. Ativado");
}
break;
}
if (c == 'n') {
// you're starting a new line
currentLineIsBlank = true;
}
else if (c != 'r') {
// you've gotten a character on the current line
currentLineIsBlank = false;
}
}
}
// give the web browser time to receive the data
delay(1);
// close the connection:
client.stop();
Serial.println("client disonnected");
}
}
//fim codigo
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: Pedrock em 16 de Agosto de 2012, 19:07
Que URL estás a colocar no browser?
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: patricksilva18 em 16 de Agosto de 2012, 19:09
http://192.168.20.200:8082 (http://192.168.20.200:8082)
o arquivo txt que está no cartao sao os links para cada ativacao.
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: Pedrock em 16 de Agosto de 2012, 19:12
O que é que recebes no Serial Monitor?
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: patricksilva18 em 16 de Agosto de 2012, 19:14
server is at 255.255.255.255
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: Pedrock em 16 de Agosto de 2012, 19:25
Tenta fazer ping ao 192.168.20.200
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: patricksilva18 em 16 de Agosto de 2012, 20:07
Sim,esta pingando perfeito
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: Pedrock em 16 de Agosto de 2012, 20:09
E tenta fazer isso com o Arduino desligado para ver se não há outro dispositivo com o mesmo IP.
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: patricksilva18 em 16 de Agosto de 2012, 20:15
nao tem, as vezes ele carrega a pagina muito dificilmente. Vc acha q pode ser falta de memoria? Estou com arduino uno.
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: Pedrock em 16 de Agosto de 2012, 20:29
Não devia aparecer "server is at 255.255.255.255".
Título: Re: Ethernet Shield lendo, nao carregando
Enviado por: patricksilva18 em 16 de Agosto de 2012, 20:32
é. Tambem nao sei o q pode ser