Para demonstrar meu problema aqui vou me basear no exemplo da IDE do Arduino.

Altero i IP do código para um ip livre na minha rede, uso a porta 8080, sendo a mesma liberada no modem e no firewall,.

Ja conectei algumas vezes usando essa configuração. só q do nada, cai a conexão e não consigo acessar pelo o servidor pelo browser.

Já quando pingo no ip, responde normal.

Se está respondendo ao ping, então que pode ser o problema? 

Exibições: 3246

Responder esta

Respostas a este tópico

Tentou mudar para a Porta 80 ?

Difícil dizer o que acontece, tenho o mesmo W5100, usei o mesmo sketch que você só usando a porta 80: 

IPAddress ip(192,168,1,100);

EthernetServer server(80);

Ainda configurei o NAT no router pra acessar pela internet, registrei um no-ip, e está tudo funcionando belezinha. Acho que pra tentar isolar o problema, tente usar um outro cabo de rede, que vc tenha certeza que funciona, tente conectar o Arduino em outro PC. Verifique se não tem nenhuma máquina na rede com o mesmo IP que vc usou no Arduino. 

Luis,

Poderia ensinar como fazer essa configuração no router?

Estou tento dificuldades pacas para conseguir isso, mesmo usando o noip.

Difícil saber onde está o seu problema, você teria que mostrar passo a passo o que fez, mas basicamente é confgurar o NAT no seu modem, verificar se a porta 80 é bloqueada pela sua operadora ou não, no caso da GVT aqui em Curitiba é liberada (sinceramente acho uma sacanagem operadoras bloquearem qualquer coisa para o usuário), se estiver bloqueada a porta use a 8080 por exemplo. Depois é ir ao no-ip.com, adicionar um host (Add Host). Não esquecer de fazer o download do programa cliente do no-ip (Dynamic DNS Update Clientes), sem este programa o acesso ao endereço IP funcionará até que o a operadora mudem o seu IP. No firewall do windows liberar a porta se for diferente de 80. Importante, veja se não tem nenhum outro software usando a porta 80, normalmente acontece com o IIS, se for o caso desative o software ou use outra porta para o no-ip. 

Caso tenha dúvidas de como fazer o no-ip, procure no Youtube, tem alguns tutoriais bons, e outros toscos também, mas enfim, qualquer ajuda é bem vinda nessa hora. 

Pessoal, eu gostaria de aproveitar a experiencia de vcs com o Shield Ethernet..

Estou seguindo o exemplo do livro "Arduino Básico" projeto 46 onde o arduino é o server e um navegador faz o papel de client, porém eu não consigo carregar a pagina do arduino no navegador.

obs: *A porta 80 está liberada no roteador e o firewall está desabilitado.(Roteador Linksys Wrt54g)

*O ping não responde

Código do arduino:

// Project 46 – Based on the Arduino Webserver example by David A. Mellis and Tom Igoe

#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into pin 3 on the Arduino
#define ONE_WIRE_BUS 3
#define TEMPERATURE_PRECISION 12

float tempC, tempF;
// Setup a oneWire instance to communicate with any OneWire devices (not just Maxim/Dallas temperature ICs)
OneWire oneWire(ONE_WIRE_BUS);
// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// arrays to hold device addresses
DeviceAddress insideThermometer = { 0x10, 0x7A, 0x3B, 0xA9, 0x01, 0x08, 0x00, 0xBF };
DeviceAddress outsideThermometer = { 0x10, 0xCD, 0x39, 0xA9, 0x01, 0x08, 0x00, 0xBE};

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
//byte mac[] = { 0x48, 0xC2, 0xA1, 0xF3, 0x8D, 0xB7 };
byte ip[] = { 192,168,1, 104 };

// Start the server on port 80
Server server(80);

void setup()
{
// Begin ethernet and server
Ethernet.begin(mac, ip);
server.begin();
// Start up the sensors library
sensors.begin();
// set the resolution
sensors.setResolution(insideThermometer, TEMPERATURE_PRECISION);
sensors.setResolution(outsideThermometer, TEMPERATURE_PRECISION);
}

// function to get the temperature for a device
void getTemperature(DeviceAddress deviceAddress)
{
tempC = sensors.getTempC(deviceAddress);
tempF = DallasTemperature::toFahrenheit(tempC);
}
void loop()
{
sensors.requestTemperatures();

// listen for incoming clients
Client client = server.available();
if (client) {
// an http request ends with a blank line
boolean BlankLine = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
// If line is blank and end of line is newline character '\n' = end of HTTP request
if (c == '\n' && BlankLine) {
getTemperature(insideThermometer);
client.println("HTTP/1.1 200 OK"); // Standard HTTP response
client.println("Content-Type: text/html\n");
client.println("<html><head><META HTTP-EQUIV=""refresh""CONTENT=""5"">\n");
client.println("<title>Arduino Web Server</title></head>");
client.println("<body>\n");
client.println("<h1>Arduino Web Server</h1>");
client.println("<h3>Internal Temperature</h3>");
client.println("Temp C:");
client.println(tempC);
client.println("<br/>");
client.println("Temp F:");
client.println(tempF);
client.println("<br/>");
getTemperature(outsideThermometer);
client.println("<h3>External Temperature</h3>");
client.println("Temp C:");
client.println(tempC);
client.println("<br/>");
client.println("Temp F:");
client.println(tempF);
client.println("<br/>");

break;
}
if (c == '\n') {
// Starting a new line
BlankLine = true;
}
else if (c != '\r') {
// Current line has a character in it
BlankLine = false;
}
}
}
// Allow time for the browser to receive data
delay(10);
// Close connection
client.stop();
}
}

////////////////////////////////

Obrigado

Esse programa tem que fazer algumas alterações para compilar sem erros na IDE 1.00 do Arduino.

Pega um programa mais simples para testar, como Example\Ethernet\WebServer, compile e envie para o Arduino e ligue o Ethernet Shield ao Router, e faça um ping nesse IP do Arduino, veja se consegue acesso pelo navegador.

Pro Ethernet Shield funcionar, não precisa modificar nada no Router, é simplesmente mais um dispositivo de rede que foi conectado ao roteador. As configurações são necessárias no Modem quando para acesso externo. Uma coisa que você precisa verificar, é se o IP do Arduino, está dentro do limite de IPs que foi colocado no Router. Normalmente este limite fica entre 192.168.1.2 até 192.168.1.254.  

Eu estou compilando esse programa no versão 0.23 e da certo, Não está respondendo ao ping.

*Testei com o exemplo do Ethernet/WebServer e o ping tbm não responde.

*Verifiquei no router e o ip dispositivos começam a ser endereçados a partir do 100

*Testei os cabo

* Isso acontece usando o Win7 e o Ubuntu.

E agora?

Obrigado!

Já mexi de tudo quanto é jeito e nada e o cabo está ok...

A coisa ta bem chata aki..srrsr

Estou com o mesmo problema no Ethernet/Web, vc ja resovel o seu problema?

Por incrível que pareça comigo era mal contato. Mantenha o shield pressionado com mão por alguns segundo da um ping para ver se responde. Eu precisava usar essa borrachas de dinheiro para puder usar no meu. O problema estava no meu arduino mega e em todos os outros arduinos que testei funcionou normalmente.
Boa sorte! 

Obrigado pelo pronto atendimento.

Estou usando o UNO32 com o Shiled Ethernet R3 que usa o chip W5100 e o conector ICSP e tem um SD.

Ja fiz varios testes para fazer o R3 pingar. Até agora nada!

Troquei o proprio R3 por outro. Troquei os cabos TP ,de direto para Croz.

Informei novos IP dentro de minha rede 192....novos Mac.Informei o pino 10 como saida Hight e Low

Instalei fonte externa. Testo com programas originais Sever e Cliente. 

Não tem maus contatos. 

Depois de semanas de teste, estou ficando desesperado.

Obrigado por qualquer apoio.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço