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á.
Tags:
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.
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.
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?
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por