PROGRAMA
PROGRAMA
//
DESKREP
//
/* DESCRIPCION
==========
Autor: Hector David Sandoval Monzon
Arduino SIM800L
======= =======
D2(RX) TXD
D3(TX) RXD
*/
//
// F U N C I O
N S E T U P
//
void setup(){
// Inicia Puerto serie
Serial.begin(9600);
// Inicia la conexion Ethernet y servidor
Ethernet.begin(mac, ip); // Inicializamos con
las direcciones asignadas
server.begin();
}
//
// F U N C I O
N L O O P
//
void loop(){
//EthernetClient crea un cliente que se puede
conectar a una direccion especifica de Internet IP
EthernetClient cliente=server.available();
// Escucha a los clientes..............
if(cliente) // Si cliente se conecta al
servidor:
{ boolean lineaEnBlanco=true; //
Marcado para enviar la respuesta ...........
while(cliente.connected()) // Repite
mientras existe clientes conectados.......
{ if(cliente.available())
{ char c=cliente.read();
if(readString.length()<30)
{ readString.
concat(c);
}
if(c=='\n' &&
lineaEnBlanco) // Si la peticion HTTP ha finalizado
{ int LED=readString.
indexOf("LED=");
if(readString.
substring(LED,LED+5)=="LED=T")
{
digitalWrite(PIN_LED,HIGH);
state="ON";
}
else if(readString.
substring(LED,LED+5)=="LED=F")
{
digitalWrite(PIN_LED,LOW);
state="OFF";
}
// Se procede a
colgar pagina web en HTML
// Cabecera HTTP
estandar
cliente.println("HTTP/1.1 200
OK"); // Enviar
encabezado.........
cliente.
println("Content-Type: text/html");
cliente.
println();
// Pagina web en HTML
cliente.
println("<html>");
cliente.
println("<head>");
// Inicio de cabecera
cliente.
println("<title>MONITOREO DE
ELECTROVALVULA</title>"); // Titulo
cliente.
println("</head>");
// Fin de cabecera
cliente.
println("<body width=100%
height=100%>"); // Inicio de cuerpo
cliente.
println("<center>");
cliente.
println("<font size=7>"); //Tamaño de letra
cliente.
println("<font color=Teal>"); //Color de letra
cliente.
println("<h1>MONITOREO DE
ELECTROVALVULA</h1>");
cliente.
println("<font
size=5>"); //
Tamaño de letra
cliente.
println("<font
color=BLUE>"); //
Color de letra
cliente.
println("<h1>* Electrovalvula Jeri - Loja
*</h1>"); // Mensaje 2
cliente.
println("<img
src=https://thumbs.gfycat.com/JampackedAdmirableBlue
gill-size_restricted.gif width=300>");
cliente.println("<br
/>");
cliente.println("<br
/>");
//Publicando el
estado de la electrovalvula
----------------------------------------------------
----------------
cliente.
println("<font size=8>");
cliente.
println("<font color=Silver>"); // Color de letra
cliente.
print("ElectroValvula:");
//if(state=="ON")
if(digitalRead(PIN_LED)==HIGH)
{ cliente.
println("<font color=Green>");
cliente.
print("ABIERTA");
cliente.
println("<br />");
Serial.
println("0");
digitalWrite(PIN_LED, HIGH);
}
//else
if(state=="OFF")
else
if(digitalRead(PIN_LED)==LOW)
{ cliente.
println("<font color=Red>");
cliente.
print("CERRADA");
cliente.
println("<br />");
Serial.
println("1");
digitalWrite(PIN_LED, LOW);
}
cliente.
println("<br>");
//BOTONES: OPCION 1
----INICIO
cliente.
println("<styletype=text/css>");
cliente.println(".
boton{"); //nombre del objeto
cliente.
println("font-size:40px;"); //Tamaño de la
letra de los botones
cliente.
println("font-family:Verdana,Helvetica;");
cliente.
println("font-weight:bold;");
cliente.
println("color:black;"); //Color de la
letra de los botones
cliente.
println("background:#638cb5;");
cliente.
println("border:0px;");
cliente.
println("width:300px;"); //Ancho del boton
cliente.
println("height:150px;"); //Alto del boton
cliente.println("}");
cliente.
println("</style>");
cliente.
println("<input type=submit value=CERRAR
class=botononclick=location.href='./?LED=F\'>");
cliente.
println("<input type=submit value=ABRIR class=boton
onclick=location.href='./?LED=T\'>");
cliente.
println("</center>");
cliente.
println("</body>");
cliente.
println("</html>"); //etiqueta html fin de
documento
cliente.stop();
//Cierro conexion con el cliente
readString="";
break;
}
}
}
delay(500);
cliente.stop();
}
MENSAJE_in = SIM800L.readString();
Serial.println(MENSAJE_in);
//**************************************************
**************************************************
if((MENSAJE_in[0] =='A')&&(MENSAJE_in[1]
=='B')&&(MENSAJE_in[2] =='R')&&(MENSAJE_in[3]
=='I'))
{
//--------------------------------------------------
-------------------------------
SIM800L.println(NUMEROCEL);
delay(100); // Pequeña pausa
SIM800L.print("Valvula Abierta"); //
Definimos el cuerpo del mensaje
delay(500); // Pequeña pausa
SIM800L.print(char(26)); // Enviamos el
equivalente a Control+Z
delay(100); // Pequeña pausa
SIM800L.println(""); // Enviamos un fin
de linea
delay(100); // Pequeña pausa
digitalWrite(PIN_LED, HIGH);
state="ON";
//--------------------------------------------------
-------------------------------
//**************************************************
**************************************************
if((MENSAJE_in[0] =='C')&&(MENSAJE_in[1]
=='E')&&(MENSAJE_in[2] =='R')&&(MENSAJE_in[3]
=='R'))
{
//--------------------------------------------------
-------------------------------
SIM800L.println(NUMEROCEL);
delay(100); // Pequeña pausa
SIM800L.print("Valvula Cerrada"); //
Definimos el cuerpo del mensaje
delay(500); // Pequeña pausa
SIM800L.print(char(26)); // Enviamos el
equivalente a Control+Z
delay(100); // Pequeña pausa
SIM800L.println(""); // Enviamos un fin
de linea
delay(100); // Pequeña pausa
digitalWrite(PIN_LED, LOW);
state="OFF";
//--------------------------------------------------
-------------------------------
}