elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: [Tutorial] Tortilla + TOR = + privacidad


+  Foro de elhacker.net
|-+  Informática
| |-+  Electrónica (Moderador: skapunky)
| | |-+  codigo para controlar luces desde servidor web [arduino]
0 Usuarios y 2 Visitantes están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: codigo para controlar luces desde servidor web [arduino]  (Leído 5,662 veces)
gabrielmellace

Desconectado Desconectado

Mensajes: 10


Ver Perfil
codigo para controlar luces desde servidor web [arduino]
« en: 21 Noviembre 2012, 06:36 »

Hola muchachos !!


Estuve preguntando varias cosas por el foro sobre wireless hacking y la verdad me sentia un poco mal de no aportar nada, por lo que les aporto este codigo que arme, sirve para controlar 2 (o mas, es muy facil tocarlo) luces desde un servidor web ubicado dentro de la plaqueta arduino con el shield ethernet, ademas, en el mismo sitio figura una lectura de humedad y temperatura.

Como feature adicional, le agregue que haga un handshake con los estados de los rele para que si hay mas de un cliente conectado y toca una luz, se actualize en tu vista.

Espero que a alguien le sirva !!  saludos !


/*
 Controlador de 2 luces bajo relees de negativo
 Controla 2 luces estableciendo un servidor en la plaqueta y actualizando su estado por jquery.
 Creado 28 Octubre. 2012
 por Gabriel Mellace
 
 */


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

#define DHTPIN 30    
#define DHTTYPE DHT11  
DHT dht(DHTPIN, DHTTYPE);

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
byte ip[] = { 192 ,168 ,1 ,102 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
EthernetServer server(80);
EthernetClient client;

String readString = String(30);


void setup(){
dht.begin();
Ethernet.begin(mac, ip, gateway, subnet);
delay(1000);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
digitalWrite(7, LOW);
Serial.begin(9600);
}

String checkState(int cual) {
 if(digitalRead(cual)==HIGH) {
  return "Apagado";
 }
 else {
  return "Prendido";
 }
}

String toogleState(int cual) {
  if(digitalRead(cual)==HIGH) {
  digitalWrite(cual, LOW);
  return "Prendido";
  }
  else {
  digitalWrite(cual,HIGH);
  return "Apagado";
  }
}

float getTemperature() {
  return dht.readTemperature();
}
float getHumidity() {
  return dht.readHumidity();
}


void loop(){
  
client = server.available();

if (client) {
  while (client.connected()) {
    if (client.available()) {
      char c = client.read();
        if (readString.length() < 30)
        {
          readString = readString + c;
        }
if (c == '\n') {

  
  if(readString.indexOf("/main") >= 0) {

    
    client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
  client.println("access-control-allow-origin: *");
  client.println("Cache-Control: no-cache, must-revalidate");
  client.println("Expires: Sat, 26 Jul 1997 05:00:00 GMT");

client.println();

client.print("<script src=\"http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js\"></script>");

client.print("<style>");

client.print("body {");
client.print("background-color: #000000;");

client.print("}");

client.print("#contenedor {");
client.print("width:620px;");
client.print("margin:0 auto;");
client.print("background-color:#EDEDED;");
client.print("border-radius:10px;");
client.print("box-shadow: 0px 0px 15px white;");
client.print("border:1px solid #DBDBDB;");
client.print("}");


client.print("#header {");
client.print("width:600px;");
client.print("height:20px;");
client.print("border-bottom:2px solid white;");
client.print("border-radius:10px 10px 0px 0px;");
client.print("padding:20px 10px;");
client.print("}");

client.print("#titulo {");
client.print("width:160px;");
client.print("float:left;");
client.print("}");


client.print("#temperatura {");
client.print("width:115px;");
client.print("float:right;");
client.print("}");

client.print("#cuerpo {");
client.print("border-top:2px solid #CCCCCC;");
client.print("background-color:#F2F2F2;");
client.print("min-height:600px;");
client.print("border-radius:0px 0px 10px 10px;");
client.print("}");


client.print(".boton {");
client.print("width:120px;");
client.print("height:80px;");
client.print("border:1px solid #737373;");
client.print("text-align:center;");
client.print("padding-top:20px;");
client.print("border-radius:10px;");
client.print("margin:20px;");
client.print("float:left;");
client.print("}");

client.print(".boton:hover {");
client.print("background-color: #999999;");
client.print("color:white;");
client.print("cursor:pointer;");
client.print("}");

client.print("</style>");



client.print("<script type=\"text/javascript\">");

client.print("$(document).ready(function() {");
   


client.print("$('#viga').click(function() {");   
   client.print("$.get('http://192.168.1.102/?cambiar=1' , function(data) { ");      
       client.print("document.getElementById('vigaStatus').innerHTML = data");
      client.print("});");   
client.print("});");

client.print("$('#escritorio').click(function() {");   
   client.print("$.get('http://192.168.1.102/?cambiar=2' , function(data) { ");        
       client.print("document.getElementById('escritorioStatus').innerHTML = data");
      client.print("});");   
client.print("});");


client.print("});");

client.print("function actualizarViga() {");
   client.print("$.get('http://192.168.1.102/?estado=1' , function(data) { ");
                   client.print("document.getElementById('vigaStatus').innerHTML = data");
      client.print("});");   
client.print("};");
client.print("setInterval(\"actualizarViga()\",9000);");

client.print("function actualizarEscritorio() {");
   client.print("$.get('http://192.168.1.102/?estado=2' , function(data) { ");        
                 client.print("document.getElementById('escritorioStatus').innerHTML = data");
      client.print("});");   
client.print("};");
client.print("setInterval(\"actualizarEscritorio()\",9000);");

client.print("function actualizarTemperaturaHumedad() {");
   client.print("$.get('http://192.168.1.102/?temperatura' , function(data) { ");
                  client.print("document.getElementById('temperatura').innerHTML = data");   
      client.print("});");   
client.print("};");
client.print("setInterval(\"actualizarTemperaturaHumedad()\",9000);");

client.print("</script>");

client.print("<div id=\"contenedor\">");


   client.print("<div id=\"header\">");
   
      client.print("<div id=\"titulo\">Control del cuarto</div>");
      client.print("<div id=\"temperatura\">Leyendo informacion</div>");
   
   client.print("</div>");
   
   client.print("<div id=\"cuerpo\">");
      client.print("<div id=\"viga\" class=\"boton\">");
      client.print("<span id=\"vigaTitle\" >Viga</span>");
      client.print("<br />");
      client.print("<span id=\"vigaStatus\">Encendido</span>");
      client.print("</div>");
      
      client.print("<div id=\"escritorio\" class=\"boton\">");
      client.print("<span id=\"escritorioTitle\">Escritorio</span>");
      client.print("<br />");
      client.print("<span id=\"escritorioStatus\">Encendido</span>");
      client.print("</div>");
      
   client.print("</div>");

client.print("</div>");

  }
  
if(readString.indexOf("GET /?cambiar=1") >=0)
{
  client.print(toogleState(7));
  
}
if(readString.indexOf("GET /?cambiar=2") >=0)
{
  client.print(toogleState(8));
}
if(readString.indexOf("GET /?estado=1") >=0)
{
  client.print(checkState(7));
}
if(readString.indexOf("GET /?estado=2") >=0)
{
  client.print(checkState(8));
}

if(readString.indexOf("GET /?temperatura") >=0) {
  
  client.print(getTemperature());
  client.print(" ºC ");
  client.print(getHumidity());
  client.print(" % ");
}


readString="";
client.stop();
}
}
}
}
else {
 client.stop();
}

}

/*
 Controlador de 2 luces bajo relees de negativo
 Controla 2 luces estableciendo un servidor en la plaqueta y actualizando su estado por jquery.
 Creado 28 Octubre. 2012
 por Gabriel Mellace
 
 */


dejo un videito para que lo vean :D




« Última modificación: 21 Noviembre 2012, 06:37 por gabrielmellace » En línea

R0BERT0

Desconectado Desconectado

Mensajes: 7


Ver Perfil WWW
Re: codigo para controlar luces desde servidor web [arduino]
« Respuesta #1 en: 19 Agosto 2013, 18:57 »

Buen codigo.
Como haces para conectarte al servidor web arduino remotamente?
Para hacer eso tal vez te sea interesante esta aplicacion.

Permite la conexión a tu servidor remotamente con ip dinámica con tan solo añadir unas lineas de código a tu proyecto

Puedes ver el proyecto en esta direccion.
http://excontrol.es/Domotica-Arduino/Arduino-WebServer/Default.aspx

Un saludo


En línea

mariooo

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: codigo para controlar luces desde servidor web [arduino]
« Respuesta #2 en: 18 Mayo 2015, 00:57 »

Hola me podrías ayudar, lo compilo y me tira  estos errores

sketch_may17b.ino:11:17: error: DHT.h: No such file or directory
sketch_may17b.ino: In function 'void setup()':
sketch_may17b:29: error: 'dht' was not declared in this scope
sketch_may17b.ino: In function 'float getTemperature()':
sketch_may17b:59: error: 'dht' was not declared in this scope
sketch_may17b.ino: In function 'float getHumidity()':
sketch_may17b:62: error: 'dht' was not declared in this scope
 
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.811



Ver Perfil
Re: codigo para controlar luces desde servidor web [arduino]
« Respuesta #3 en: 18 Mayo 2015, 07:50 »

este post es de hace 3 años, el usuario no publicó DHT.h y "void setup()" no se por qué te da error
En línea

Leer reglas del Foro

"Si hay algo más importante que mi vanidad a bordo de esta nave, quiero atraparlo y pegarle un tiro."
Hurdano

Desconectado Desconectado

Mensajes: 293


Se que puedo cambiar el futuro, pero no el pasado


Ver Perfil WWW
Re: codigo para controlar luces desde servidor web [arduino]
« Respuesta #4 en: 18 Mayo 2015, 10:24 »

Para controlar el DHT11 o como se llame, que ahora no me aucerdo, necesitas agregar unas librerías especificas para él, por eso te tira ese error, porque no están instaladas, por lo que no lo reconoce y no sabe como trabajar con él.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
AYUDA PARA EXPLICAR ESTE CODIGO DE SERVIDOR DE PAGINA
Programación Visual Basic
dyanyta21 2 873 Último mensaje 21 Noviembre 2005, 13:45
por Slasher-K
libreria para controlar mouse desde el SO
Java
danielo- 8 4,988 Último mensaje 25 Enero 2010, 00:05
por danielo-
Controlar servidor VNC desde internet
Redes
Siciem 7 3,026 Último mensaje 11 Febrero 2010, 16:16
por ikary
como controlar luces de e dificio
Electrónica
dewloso 3 2,172 Último mensaje 16 Septiembre 2011, 00:49
por skapunky
Ayuda para controlar cmd desde netbeans
Java
Magedd 0 2,141 Último mensaje 12 Abril 2012, 17:05
por Magedd
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines