• Olá a todos do Lab de Garagem!!! Boa noite.Pessoal, eu sou iniciante no Arduino e tenho um Kit Arduino bem completo. O meu Arduino, desse kit, é o UNO R3 e o módulo Ethernet é o Ethernet Shield w5100 e o mesmo usa o chip Wiznet. E com meu Arduino, eu fiz o projeto "Ethernet com status". E desse projeto as ligações estão todas feitas corretamente,ou seja,o Ethernet Shield está ligado no Arduino corretamente,o Arduino está ligado corretamente na Protoboard,os Leds,os resitores,os Jumpers, enfim,todos estão ligados corretamente.Todos estão ligados corretamente na Protoboard e as configurações de IP, gateway e máscara; estão todas de acordo com minha rede no código-fonte do Programa. E conseguir conectar o meu arduino na minha rede, porém, não estou conseguindo acessar pelo IP do Arduino através do meu celular, pra mim poder ligar e desligar os LEDS que estão na protoboard e ver o Status das mesma também.O IP que o meu arduino está configurado é o 10.0.0.104. Quando eu digito esse IP na barra de endereço do navegador, ele não está acessando. Alguém poderia me ajudar a solucionar esse problema, por favor?

       

          Abaixo, segue uma imagem do meu projeto e o código-fonte do programa em questão: 

// Baseado no programa em exemplo da internet

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

// A linha abaixo permite que voce defina o endereço fisico (MAC ADDRESS)
// da placa de rede
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0F, 0x09, 0xA7 };

// Os valores abaixo definem o endereço IP, gateway e máscara.
// Configure de acordo com a sua rede.
IPAddress ip(10,0,0,103); //colocar aqui seu ip
IPAddress gateway(10,0,0,1); //Define o gateway
IPAddress subnet(255, 255, 255, 0); //Define a máscara de rede

// Inicializa a biblioteca da placa ethernet com as
// configurações de IP fornecidas
EthernetServer server(80);

int botao1 = 6; //Botao que aciona o led vermelho
int botao2 = 7; //Botao que aciona o led verde
int pinoled=8; //Pino ligado ao led vermelho
int pinoled2=9; //Pino ligado ao led verde
int leitura = 0; //Armazena o valor de leitura do botao1
int leitura2 = 0; //Armazena o valor de leitura do botao2
char mensagem[20]; //Mensagem a ser apresentada para o botao1
char mensagem2[20]; //Mensagem a ser apresentada para o botao2

void setup()
{
pinMode(pinoled, OUTPUT); //Led 1
pinMode(pinoled2, OUTPUT); //Led 2
pinMode(botao1, INPUT);
digitalWrite(botao1, HIGH);
pinMode(botao2, INPUT);
digitalWrite(botao2, HIGH);

//Inicializa a conexao ethernet e o servidor web na porta 80
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
}

void loop()
{
//Verifica o status do Botao1 e imprime mensagem no browser
leitura=digitalRead(botao1);
if (leitura == 0)
{
digitalWrite(pinoled,1);
char mensagem[] = "Botao 1 acionado !!!";
char mensagem2[] = "Aguardando...";
apresentadados(mensagem,mensagem2);
delay(5000); //Mantem o led aceso por 5 segundos
//Imprime mensagem padrao, aguardando novo acionamento
apresentadados("Aguardando...", "Aguardando...");
digitalWrite(pinoled,0);
}

//Verifica o status do Botao2 e imprime mensagem no browser
leitura2=digitalRead(botao2);
if (leitura2 == 0)
{
digitalWrite(pinoled2,1);
char mensagem[] = "Aguardando...";
char mensagem2[] = "Botao 2 acionado !!!";
apresentadados(mensagem,mensagem2);
delay(5000); //Mantem o led aceso por 5 segundos
//Imprime mensagem padrao, aguardando novo acionamento
apresentadados("Aguardando...", "Aguardando...");
digitalWrite(pinoled2,0);
}
}

// Rotina que recebe os valores de Mensagem e Mensagem2,
// imprimindo o resultado no browser

void apresentadados(char msg[], char msg2[])
{
// lista informações recebidas
EthernetClient client = server.available();
if (client) {
Serial.println("new client");

// termina com link em branco
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);

// prepara linha em branco , para vc enviar resposta
if (c == '\n' && currentLineIsBlank) {

// envia cabeçalho de respota padrão
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");

// a conexão sera enceerrada após a resposta
client.println("Connection: close");

// atualiza pagina a cada 5 segundos
client.println("Refresh: 0");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");

// saida do valor de cada pino de entrada
client.print("Estado Botao 1 : ");
client.print(msg);
client.println("<br />");
client.print("Estado Botao 2 : ");
client.print(msg2);
client.println("<br />");
client.println("</html>");
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 disconnected");
}
}

Exibições: 439

Responder esta

Respostas a este tópico

Olá,

Antes que nada eu sugiro que leia e siga as instruções deste http://labdegaragem.com/forum/topics/sugest-o-de-como-postar

Certifique-se de que seu celular esta na mesma rede (Sua rede local) já que se estiver em uma rede diferente ( Sua operadora por exemplo) você não vai poder acessar o Arduino que esta conectado em uma rede local.

Tente fazer um ping no seu prompt no IP, para ter certeza que esta se comunicando.

Boa sorte.

Abs.

CK

Olá boa noite!!! Primeiramente, demorei para responder, por causa das minhas muitas ocupações, eu parei um tempo com o Arduino. E em segundo lugar,eu te agradeço pela sua resposta concernente ao problema com meu projeto Arduino (Ethernet com Status) em questão. Porém, o meu celular estava conectado na mesma rede local que o Arduino. Até mesmo, antes desse projeto, eu desenvolvi um outro projeto que eu acessava o arduino pelo celular pra ligar uns leds que estavam na minha Protoboard. E pingou normal também. Agora esse projeto que não deu certo

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço