Boa noite galera !
Comprei o EthernetShield W5100 e importei na library do arduino Mega, mas não estou conseguindo programar para que meu aplicativo android acenda e apaga a luz, ja procurei sobre isso mas não achei.
Estou utilizando este exemplo só que é com o Ethernet 28J60,(http://www.instructables.com/id/Arduino-Android-LED-control-Using-E...) utilizei o exemplo deste site para fazer a comunicação do aplicativo android, porém ao substituir algumas programações para o W5100 o meu Arduino Mega nao reconhece algumas linhas de programação como ServiceRequest .. peço ajuda de vocês para saber como fazer esta comunicação entre o Ether W5100 e android, se alguém tiver alguma opção mais fácil tbm será bem vindo..
Obrigado!!!
Tags:
Olá
Talvez esse projeto possa te ajudar
Utilizo também W5100
Utilizei as bibliotecas que estão nos exemplos da ide arduino
#include <SPI.h>
#include <String.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x36 }; // Endereço Mac
byte ip[] = { 192, 168, 0, 110 }; // Endereço de Ip da sua Rede
EthernetServer server(8090); // Porta de serviço
int area = 2;
int sala = 3;
int escritorio = 5;
int trava = 6;
int portao = 7;
String readString = String(30); // string para buscar dados de endereço
// para o optacoplador Área
const int analogArea = A0;
int sensorArea = 0;
String statusArea;
// para o optacoplador Sala
const int analogSala = A1;
int sensorSala = 0;
String statusSala;
// para o optacoplador Escritório
const int analogEscritorio = A2;
int sensorEscritorio = 0;
String statusEscritorio;
boolean statusPortao = false; // Variável para o status do portão
void setup(){
// Inicia o Ethernet
Ethernet.begin(mac, ip);
// Define os pinos como saída
pinMode(area, OUTPUT);
pinMode(sala, OUTPUT);
pinMode(escritorio, OUTPUT);
pinMode(trava, OUTPUT);
pinMode(portao, OUTPUT);
// Inicia a comunicação Serial
Serial.begin(9600);
}
void loop(){
//Verifica o status do sensor da Área
sensorArea = analogRead(analogArea);
if (sensorArea >=300)
{
statusArea = ("lampada area ligada");
}
else
{
statusArea = ("lampada area desligada");
}
//Verifica o status do sensor da Sala
sensorSala = analogRead(analogSala);
if (sensorSala >=300)
{
statusSala = ("lampada sala ligada");
}
else
{
statusSala = ("lampada sala desligada");
}
//Verifica o status do sensor do Escritório
sensorEscritorio = analogRead(analogEscritorio);
if (sensorEscritorio >=300)
{
statusEscritorio = ("lampada escritorio ligada");
}
else
{
statusEscritorio = ("lampada escritorio desligada");
}
// Criar uma conexão de cliente
EthernetClient client = server.available();
if (client) {
while (client.connected())
{
if (client.available())
{
char c = client.read();
// ler caractere por caractere vindo do HTTP
if (readString.length() < 30)
{
// armazena os caracteres para string
readString += (c);
}
//se o pedido HTTP terminou
if (c == '\n')
{
// vamos verificar se a lâmpada da área deve ser ligada
// Se a string possui o texto L=Ligar
if(readString.indexOf("LigarArea")>=0)
{
// A lâmpada vai ser ligada
digitalWrite(area, HIGH);
}
// Se a string possui o texto L=Desligar
if(readString.indexOf("DesligarArea")>=0)
{
// A lâmpada vai ser desligada
digitalWrite(area, LOW);
}
{
// vamos verificar se a lâmpada da sala deve ser ligada
// Se a string possui o texto L=Ligar
if(readString.indexOf("LigarSala")>=0)
{
// A lâmpada vai ser ligada
digitalWrite(sala, HIGH);
}
// Se a string possui o texto L=Desligar
if(readString.indexOf("DesligarSala")>=0)
{
// A lâmpada vai ser desligada
digitalWrite(sala, LOW);
}
{
// vamos verificar se a lâmpada do escritório deve ser ligada
// Se a string possui o texto L=Ligar
if(readString.indexOf("LigarEscritorio")>=0)
{
// A lâmpada vai ser ligada
digitalWrite(escritorio, HIGH);
}
// Se a string possui o texto L=Desligar
if(readString.indexOf("DesligarEscritorio")>=0)
{
// A lâmpada vai ser desligada
digitalWrite(escritorio, LOW);
}
{
// vamos verificar se o portão deve abrir
// Se a string possui o texto L=Ligar
if(readString.indexOf("LigarPortao")>=0)
{
// O portão vai ser aberto
digitalWrite(portao, HIGH);
delay (1000);
digitalWrite(portao, LOW);
statusPortao = true;
}
// Se a string possui o texto L=Desligar
if(readString.indexOf("DesligarPortao")>=0)
{
// O portão vai ser fechado
digitalWrite(portao, HIGH);
delay (1000);
digitalWrite(portao, LOW);
statusPortao = false;
}
{
// vamos verificar se a trava deve ser aberta
// Se a string possui o texto L=Ligar
if(readString.indexOf("LigarTrava")>=0)
{
// A trava vai ser aberta
digitalWrite(trava, HIGH);
delay (2000);
digitalWrite(trava, LOW);
}
// dados HTML de saída começando com cabeçalho padrão
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.println("<font size='20'>");
// aqui vai imprimir o conteúdo da string
client.print("<h5>");
client.print(statusArea);
client.print("</h5>");
// aqui vai imprimir o conteúdo da string
client.print("<h5>");
client.print(statusSala);
client.print("</h5>");
// aqui vai imprimir o conteúdo da string
client.print("<h5>");
client.print(statusEscritorio);
client.print("</h5>");
client.println("<font size='20'>");
if (statusPortao) {
client.print("<h5>");
client.println("PortaoAberto");
client.print("<h5>");
}
else
{
client.print("<h5>");
client.println("PortaoFechado");
client.print("<h5>");
}
//limpa string para a próxima leitura
readString="";
// parar cliente
client.stop();
}
}
}
}
}
}
}
}
}
Só que eu fiz o aplicativo android no App inventor segue as fotos:
Essa é a tela, que ja mudei varias vezes
Caso se interesse dê uma olhada nas video aulas do androi e arduino no you tube:
https://www.youtube.com/user/TecnoEduardo
O Eduardo explica tudo sobre android e arduino.
opa amigo, obrigado vou testar aqui tenha um bom dia :)
cara so uma pergunta o alarme que sensor vc utilizou?
Aqui tem um bom exemplo simples ligando e desligando um led a partir do navegador.
http://eletrodex.blogspot.com.br/2014/10/modulo-shield-ethernet-w51...
Testei e funcionou bem!
Valeu!
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por