Olá gente, 1º esse é meu codigo  :

#include <SPI.h> //Importamos librería comunicación SPI
#include <Ethernet.h> //Importamos librería Ethernet
#include <utility/w5100.h>
#define button 8

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };//Ponemos la dirección MAC de la Ethernet Shield que está con una etiqueta debajo la placa
IPAddress ip(10,0,0,20); //Asingamos la IP al Arduino
EthernetServer server(8080); //Creamos un servidor Web con el puerto 80 que es el puerto HTTP por defecto


boolean count1,count2,count3=0;
String estado[]="OFF"; //Estado del Led inicialmente "OFF"


void setup()
{
Serial.begin(9600);

// Inicializamos la comunicación Ethernet y el servidor
Ethernet.begin(mac, ip);
server.begin();
W5100.setRetransmissionTime(0x07D0);
W5100.setRetransmissionCount(20);
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
pinMode(button, INPUT_PULLUP);
}

void loop()
{
EthernetClient client = server.available(); //Creamos un cliente Web
//Cuando detecte un cliente a través de una petición HTTP
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true; //Una petición HTTP acaba con una línea en blanco
String cadena=""; //Creamos una cadena de caracteres vacía
while (client.connected()) {
if (client.available()) {
char c = client.read();//Leemos la petición HTTP carácter por carácter
Serial.write(c);//Visualizamos la petición HTTP por el Monitor Serial
cadena.concat(c);//Unimos el String 'cadena' con la petición HTTP (c). De esta manera convertimos la petición HTTP a un String

//Ya que hemos convertido la petición HTTP a una cadena de caracteres, ahora podremos buscar partes del texto.

int posicion=cadena.indexOf("ESTADO="); //Guardamos la posición de la instancia "LED=" a la variable 'posicion'

if(cadena.substring(posicion)=="ESTADO=1ON")//Si a la posición 'posicion' hay "LED=ON"
{
digitalWrite(led,count1);
estado[1]="ON";
count1=1;
Serial.println("1");
}
if(cadena.substring(posicion)=="ESTADO=1OFF")//Si a la posición 'posicion' hay "LED=OFF"
{
digitalWrite(led,count1);
estado[1]="OFF";
count1=0;
Serial.println("0");
}
if(cadena.substring(posicion)=="ESTADO=2ON")//Si a la posición 'posicion' hay "LED=ON"
{
digitalWrite(led,HIGH);
estado[2]="ON";
count2=1;
Serial.println("1");
}
if(cadena.substring(posicion)=="ESTADO=2OFF")//Si a la posición 'posicion' hay "LED=OFF"
{
digitalWrite(led,LOW);
estado[2]="OFF";
count2=0;
Serial.println("0");
}
if(cadena.substring(posicion)=="ESTADO=3ON")//Si a la posición 'posicion' hay "LED=ON"
{
digitalWrite(led,HIGH);
estado[3]="ON";
count3=1;
Serial.println("1");
}
if(cadena.substring(posicion)=="ESTADO=3OFF")//Si a la posición 'posicion' hay "LED=OFF"
{
digitalWrite(led,LOW);
estado[3]="OFF";
count3=0;
Serial.println("0");
}

//Cuando reciba una línea en blanco, quiere decir que la petición HTTP ha acabado y el servidor Web está listo para enviar una respuesta
if (c == '\n' && currentLineIsBlank) {

// Enviamos al cliente una respuesta HTTP
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close"); // the connection will be closed after completion of the response
client.println("Refresh: 5");
client.println();
//Página web en formato HTML


client.println(F("<!DOCTYPE html>"));
client.println(F("<html>"));
client.println(F("<head>"));
client.println(F("<title>Automacao com Arduino</title>"));
client.println(F("<meta charset=\"windows-1252\">"));
client.println(F("<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">"));
client.println(F("</head>"));
client.println(F("<body bgcolor='#c8cdf5'>"));
client.println(F("<div style='margin: auto; height: 700px; background-color: white; width: 800px; border-radius: 10px;'>"));
client.println(F("<br>"));
client.println(F("<h1 style='@media screen { color: #616582; font-family: Lucida Bright;} @media handheld { color: yellow;}'><center>NOME DO SITE</center></h1>"));
client.println(F("<br>"));
client.println(F("<center>"));

client.println(F("<div style='text-align:center;'>"));
if(count1==0){
client.println(F("<h4>LAMPADA 01:</h4>"));
client.println(F("<button onClick=location.href='./?ESTADO=1ON\' style='margin:auto;background-color: #43B257;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:350px;'>"));
client.println(F("<h2>LIGAR<h2>"));
client.println(F("</button>"));
}else if(count1==1){
client.println(F("<h4>LAMPADA 01:</h4>"));
client.println(F("<button onClick=location.href='./?ESTADO=1OFF\' style='margin:auto;background-color: #B24343;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:350px;'>"));
client.println(F("<h2>DESLIGAR<h2>"));
client.println(F("</button>"));
}

client.println(F("<br />"));

if(count2==0){
client.println(F("<h4>LAMPADA 02:</h4>"));
client.println(F("<button onClick=location.href='./?ESTADO=2ON\' style='margin:auto;background-color: #43B257;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:350px;'>"));
client.println(F("<h2>LIGAR<h2>"));
client.println(F("</button>"));
}else if(count2==1){
client.println(F("<h4>LAMPADA 02:</h4>"));
client.println(F("<button onClick=location.href='./?ESTADO=2OFF\' style='margin:auto;background-color: #B24343;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:350px;'>"));
client.println(F("<h2>DESLIGAR<h2>"));
client.println(F("</button>"));
}

client.println(F("</b><br />"));

if(count3==0){
client.println(F("<h4>TELEVISAO:</h4>"));
client.println(F("<button onClick=location.href='./?ESTADO=3ON\' style='margin:auto;background-color: #43B257;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:350px;'>"));
client.println(F("<h2>LIGAR<h2>"));
client.println(F("</button>"));
}else if(count3==1){
client.println(F("<h4>TELEVISAO:</h4>"));
client.println(F("<button onClick=location.href='./?ESTADO=3OFF\' style='margin:auto;background-color: #B24343;color: snow;padding: 10px;border: 1px solid #3F7CFF;width:350px;'>"));
client.println(F("<h2>DESLIGAR<h2>"));
client.println(F("</button>"));
}
client.println(F("</b><br />"));

client.println(F("<b>LAMPADA 1 = "));
client.print(estado[1]);
client.println(F("</b><br />"));
client.println(F("<b>LAMPADA 2 = "));
client.print(estado[2]);
client.println(F("</b><br />"));
client.println(F("<b>TELEVISAO = "));
client.print(estado[3]);
client.println(F("</b><br />"));
client.println(F("</center>"));
client.println(F("<div style=\"height: 50px; width: 100%; background-color: #9296b0; margin-top: 60px; border-radius: 0 0 10px 10px; color: white; padding-top: 5px;\"><center>Design por Breno Matheus - @brenosantanav - brenosantanav@outlook.com <br> 2015</div>"));
client.println(F("</div>"));
client.println(F("</body>"));
client.println(F("</html>"));
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
//Dar tiempo al navegador para recibir los datos
delay(1);
client.stop();// Cierra la conexión
}
}

E eu estava querendo passar parâmetros para url a partir do arduino ( enviar), de um jeito que quando eu apertasse um push button atualizasse o botão da web. Resumindo estou querendo controlar o estado de um botão da web pelo acesso online ou pelo push button. Se alguem tiver alguma solução mais facil estou aceitando.

Exibições: 290

Responder esta

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço