Bom dia pessoal.

Meu nome é Renato e sou novo no site. Enfim..

Ontem comprei um Shield de Ethernet baseado no Enc28j60 e estou tentando ligar ele no meu Arduino Mega (2560), usando o exemplo Hello World (com esta biblioteca: link), porém ele funciona somente na primeira requisição (estou usando ip fixo) e nas outras ele para de responder (isto é visível também pelo ping, ou seja, quando ligo o arduino ele pinga normal até a primeira requisição, depois para de pingar).

Para entender melhor, o que acontece é o seguinte: 

- Enviei o exemplo para o Arduino, fiz as ligações conforme a imagem: 

- Pinguei o ip que setei estático e ele respondeu.

- Acessei o ip via browser e ele me retornou a pagina que está como resposta (apenas um Hello World).

- Quando tento acessar novamente ele para de responder (inclusive para de pingar também).

Ou seja, só funciona quando eu envio a primeira requisição ao ip, depois ele para de responder..

Segue o código do exemplo do hello world da biblioteca acima (que estou usando):

// A simple web server that always just says "Hello World"

#include "etherShield.h"
#include "ETHER_28J60.h"

static uint8_t mac[6] = {0x54, 0x55, 0x58, 0x10, 0x00, 0x24}; // this just needs to be unique for your network,
// so unless you have more than one of these boards
// connected, you should be fine with this value.

static uint8_t ip[4] = {192, 168, 100, 50}; // the IP address for your board. Check your home hub
// to find an IP address not in use and pick that
// this or 10.0.0.15 are likely formats for an address
// that will work.

static uint16_t port = 80; // Use port 80 - the standard for HTTP

ETHER_28J60 ethernet;

void setup()
{
ethernet.setup(mac, ip, port);
}

void loop()
{
if (ethernet.serviceRequest())
{
ethernet.print("<H1>Hello World</H1>");
ethernet.respond();
}
delay(100);
}

Desculpem, não achei a tag de códigos..

Alguém pode me ajudar?

Agradeço desde já.

Exibições: 2272

Responder esta

Respostas a este tópico

Em adendo, segue ScreenShot do prompt de comandos:

Analisando a foto acima, percebe-se que enquanto eu não acesso a pagina via browser ele responde o ping com o tempo normal, porém depois que eu acesso o ip no browser o tempo de resposta do ping começa a subir e para de responder (por tempo de timeout).

Alguém tem alguma ideia? =S

Pessoal, consegui resolver o problema.

Tive que adaptar uma biblioteca antiga aqui para funcionar com a IDE nova.

Valeu.

Olá Renato, estou com um problema parecido...perco a conexão e não volta mais.

Pode dizer o que precisou fazer?

Obrigado

sérgio

Boa tarde, estou com o mermo modulo e com a mesma biblioteca, e meu problema é outro.

O meu é, seu eu tento colocar muitas linhas de ethernet.print ele para de funcionar.

Voce tmbm esta com esse problema?

Obs: se puder passar a outra biblioteca que esta usando.

Pessoal, desculpem a demora.

A biblioteca que falei é uma que eu adaptei para o arduino mega. Se quiserem eu disponibilizo para download.

Se possível você compartilhar a biblioteca ficaria muito grato.

Aguardo.

Segue o link para download da biblioteca.

Lembrando que esta biblioteca é apenas para quem usa shield baseado no chip "ENC28J60". Estes sheilds costumam ser mais baratos, porém tive que adaptar esta biblioteca para usar com a versão 1.0.5 da IDE de desenvolvimento do arduino.

Qualquer dúvida podem deixar comentários.

Pessoal,

Eu tenho este shield e também tive este problema quando usei o mesmo como WebServer.

Pesquisando, descobri que este shield possui limitações conforme este link cita:

http://www.automalabs.com.br/modulo-ethernet-baseado-em-enc28j60/

Agora uso a biblioteca ethernetcard que resolve algumas das limitações.

Não conhecia esta limitação, porém depende muito do propósito da aplicação. No meu caso estou usando um servidor apache rodando JSP para o front-end e este servidor envia e recebe requisições restful para o ENC28J60 e estas requisições são baseadas em JSON, por isso eu "não preciso me preocupar " com o tamanho dos pacotes.

Mudando um pouco o sentido do topico mais nen tanto.

Eu tambem tenho W5100 na forma de ethernetShield, ele é TOP, mais esquenta muito, mais muito mesmo.

Alguem passou por esse problema tmbm?

Pq como eu não uso um pc, preciso de um modulo que aguente passar uma pagina em html recheada hehe

So continuando, não estou com o meu em mão nesse momento para testar.

Queri uma ideia pra saber se vai funcionar.

Minha pagina tem cerca de 15 botoes

no entanto cada botão tem uns codigos de formatação e talz fazendo com que aparece somente 4 sem estourar a.

Tive a ideia de fazer assim.

Luz

Ventilado

Anterior

Proxima

ou alguma coisa parecida que fique bacaninha.

E quando a pessoa clica em proximo pro exemplo, ele da ?p1 na url, que e capturada pelo arduino e entende que deve mandar a proxima.

No arduino ficaria tipo

if(pegaUrl == p1){

Codigo

}

if(pegaUrl == p2){

Segunda parte de codigos

}

Será que assim pode funcionar? ou pensei errado?

Não vejo o porque não funcionar, mas ao invés de ?p1 deve ser ?p=1 e em pegaUrl == p1, ficaria p == 1...

Desculpe pela falta de formatação, estou digitando do celular...

Com relação a ele estar esquentando, não sei se e normal pois nunca usei o W5100 mas pelo que tenho observado o ENC28J60 não esquenta. Verifique a tensão se alimentação pois o ENC28J60 trabalha com 3.3V...

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço