sábado, 6 de octubre de 2018

TUTORIAL ARDUINO COMO SERVIDOR WEB CON ETHERNET RELE Y SENSOR TEMPERATURA DTH 11

COMPONENTES:
1 ARDUINO
1 MODULO ETHERNET
1 MODULO RELE
1 SENSOR DHT 11, TEMPERATURA Y HUMEDAD
CABLES PARA CONEXIÓN

 ENLACE DE DESCARGA




CÓDIGO ARDUINO:

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


#include "DHT.h"
#define DHTPIN 6 //Tenemos que poner el numero en el pin que tenemos conectado el sensor DTH 11
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);
float t,h;

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192,168,1,250);//Tenemos que poner la IP en el rango de nuestro router
EthernetServer server(80);

int rele1=7; //Tenemos que poner el numero en el pin que tenemos conectado el rele
boolean estado=false;
String recibido;

void setup()
{
  Serial.begin(9600);
  dht.begin();
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("Servidor en:  ");
  Serial.println(Ethernet.localIP());
  pinMode(rele1,OUTPUT);
}

void loop()
{
EthernetClient client = server.available();
 if (client) {
    Serial.println("Conectado un cliente");
    recibido="";
            if (client.connected())
            {
                    if (client.available())
                    {
                    recibido= client.readString();
                    Serial.println(recibido);               
                             
                    rele();
                    temperatura();
                    Serial.println(t);
                    client.println("HTTP/1.1 200 OK");
                    client.println("Content-Type: text/html");
                    client.println();

                    client.println("<!DOCTYPE HTML>");
                    client.println("<head>");
                    client.println("<title>ARDUINO SERVIDOR</title>");//poner el nombre que quiere                                                                                                                           que  muestre la página
                    client.println("</head>");
                    client.println("<body>");
                    client.println("<h1>DOMOTICAMAYCA</h1>");
                    client.println("<h3>TEMPERATURA");
                    client.println("&nbsp;");
                    client.println(t);
                    client.println("</h3>");
                    client.println("<h3>HUMEDAD:");
                    client.println("&nbsp;");
                    client.println(h);
                    client.println("</h3>");
                    client.println("<button onClick=location.href='./?RELE1ON\' value='encender'/>ENCENDER </button>");
                    client.println("&nbsp;&nbsp;");
                    client.println("<button onClick=location.href='./?RELE1OFF\' value='apagar'/>APAGAR</button>");
                    client.println("<br><br>");
                    if (estado==true){ client.println("LUZ ENCENDIDA");}
                    if (estado==false){client.println("LUZ APAGADA");}
                    client.println("</body>");
                    client.println("</html>");
                    delay(10);
                    client.stop();
                    }
        }
    }
}
void rele(){
 if(recibido.indexOf("RELE1ON")>=0)
       {
       digitalWrite(rele1,HIGH);
       estado=true;
       }
       if(recibido.indexOf("RELE1OFF")>=0)
       {
       digitalWrite(rele1,LOW);
       estado=false;
       }
}

void temperatura(){
h = dht.readHumidity();
t = dht.readTemperature();
}

No hay comentarios:

Publicar un comentario