//Muestra estado de Sensores y accesos (puertas y ventanas) Version 2 //Autor Prof: Bolaños DJ - 01-12-17 //Se incluye lectura y muestra de un LM35 entrante por A0 //Se incluye lectura de DHT11 Sensor de Temperatura y Humedad PIN 8 //Se incluye lectura de puertas y ventanas PINES 2 a 7 //Se incluye lectura de nivel de luz (mediante LDR) FALTA #include //del sensor DHT11 DHT11 dht11(8); //aviso a libreria que voy a usar ese PIN 8 #include //para la shield Ethernet #include //para la shield Ethernet byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress ip(192, 168, 1, 140);//IP asignada en RED ProfesorDJB EthernetServer server(80); float tempC; // Variable para almacenar el valor obtenido //del sensor LM35 (0 a 1023) float temp, hum; //variables para el DHT11 void setup() { Serial.begin(9600); Ethernet.begin(mac, ip); server.begin(); Serial.print("server is at "); Serial.println(Ethernet.localIP()); //Recordar que no se pueden usar los PINES 10, 11, 12, y 13 (SPI) //Los usa la Ethernet Shield------------------------------------ //-------Defino entradas digitales - Accesos pinMode(2, INPUT); // entrada PUERTA DELANTERA pinMode(3, INPUT); // entrada PUERTA LATERAL pinMode(4, INPUT); // entrada PUERTA DE SERVICIO pinMode(5, INPUT); // entrada VENTANA FRENTE- Si Hay tarjeta SD no se puede usar pinMode(6, INPUT); // entrada VENTANA PATIO pinMode(7, INPUT); // entrada REJA ENTRADA //--------Fin Accesos----------------------- //Para el sensor DHT11 usamos el PIN digital 8 pinMode(8, INPUT); // entrada sensor DHT11 //------------------------------------------ } void loop() { EthernetClient client = server.available(); if (client) { Serial.println("new client"); bool currentLineIsBlank = true; String cadena = ""; while (client.connected()) { if (client.available()) { char c = client.read(); Serial.write(c); // Al recibir linea en blanco, servir página a cliente if (c == '\n' && currentLineIsBlank) { client.println(F("HTTP/1.1 200 OK\nContent-Type: text/html")); client.println("Refresh: 10"); // refresca la pagina automaticamente cada 10 segundos //--Vea el concepto de la sintaxis F () en el apuinte MemoriaF.pdf----- //--Vea las etiquetas de HTML en apunte Manual_rapido_HTML.pdf------------- client.println(); client.println(""); //Color de fondo client.println(F("\n\nSensores y Accesos -\n\n")); client.println(F("
")); //----Vea en apuntes HTML los codigos de colores-----Pruebe hay diferencias--- client.println (F (""));//De aqui en adelante MAS CLARO client.println(F("

WEB-CONTROL - BolanosSoft (c) 2017

")); client.println(F("

Muestra On Line estado de Accesos y Sensores

")); client.println (F (""));//De aqui en adelante NEGRO //client.println(F("

Estado de Accesos

")); //Entradas digitales son usadas para mostrar estado de accesos //---------------Puertas y ventanas--------------------------- //---------PUERTA DELANTERA----------------------------------- client.print("

PUERTA DELANTERA = "); if (digitalRead(2) == HIGH) { client.print(F ("Cerrada

")); } else { client.println (F (""));//ROJO client.print (F ("***ABIERTA***")); client.println (F (""));//NEGRO } //---------FIN PUERTA DELANTERA-------------------------------- //---------PUERTA LATERAL-------------------------------- client.print(F ("

PUERTA LATERAL = ")); if (digitalRead(3) == HIGH) { client.print(F ("Cerrada

")); } else { client.println (F (""));//ROJO client.print (F ("***ABIERTA***")); client.println (F (""));//NEGRO } //---------FIN PUERTA LATERAL-------------------------------- //---------PUERTA DE SERVICIO------------------------- client.print(F ("

PUERTA DE SERVICIO = ")); if (digitalRead(4) == HIGH) { client.print(F ("Cerrada

")); } else { client.println (F (""));//ROJO client.print (F ("***ABIERTA***")); client.println (F (""));//NEGRO } //---------FIN PUERTA DE SERVICIO------------------ //---------VENTANA FRENTE------------------------- client.print(F ("

VENTANA FRENTE = ")); if (digitalRead(5) == HIGH) { client.print(F ("Cerrada

")); } else { client.println (F (""));//ROJO client.print (F ("***ABIERTA***")); client.println (F (""));//NEGRO } //---------FIN VENTANA FRENTE---------------------- //---------VENTANA PATIO------------------------- client.print(F ("

VENTANA PATIO = ")); if (digitalRead(6) == HIGH) { client.print(F ("Cerrada

")); } else { client.println (F (""));//ROJO client.print (F ("***ABIERTA***")); client.println (F (""));//NEGRO } //---------FIN VENTANA PATIO------------------------- //---------REJA DE ENTRADA------------------------- client.print(F ("

REJA DE ENTRADA = ")); if (digitalRead(7) == HIGH) { client.print(F ("Cerrada

")); } else { client.println (F (""));//ROJO client.print (F ("***ABIERTA***")); client.println (F (""));//NEGRO } //---------FIN REJA DE ENTRADA------------------------- client.println("
");//Linea horizontal //client.println("

"); //client.println(F("

Lectura de Sensores

")); //---Muestra valor de Temperatura desde LM 35 usando A0 tempC = analogRead(A0); // Calculamos la temperatura con la fórmula tempC = (5.0 * tempC * 100.0)/1024.0; client.println(F ("

"));//Abro etiqueta- a partir de aqui texto mas grande client.println(F ("Temperatura Exterior")); client.println(" = "); client.println(tempC); client.println(F (" C - ")); //client.println(F("
")); //---FIN Muestra valor de Temperatura desde LM 35 usando A0 //Muetra valores de Temperatura y Humedad del DHT11 dht11.read(hum, temp); client.println(F ("Temperatura Interior")); client.println (F (" = ")); client.println(temp); client.println(F (" C - ")); // client.println(F("
")); client.println(F ("Humedad ")); client.println(F (" = ")); client.println(hum); client.println(F (" % ")); //client.println(F("
"));//Salta renglon client.println(F ("

"));//Cierro etiqueta- texto mas grande client.println("
");//Linea horizontal client.println(F("Refrescar")); //Refresca a la direccion IP de la red ProfesorDJB client.println(F("
\n")); break; } if (c == '\n') { currentLineIsBlank = true; } else if (c != '\r') { currentLineIsBlank = false; } } } delay(1); client.stop(); } }