Hola buenas!
Les comentare en el proyecto que estoy trabajando, ojala puedan ayudarme.
Por una parte, estoy trabajando con una cerradura electrica, modulo RTC(reloj) y
Tarjetas RFID, en una de las salas de mi universidad donde hacen clases varios profesores y a distintas horas este programa compara la hora y la ID de la tarjeta para abrir la chapa, al profesor correspondiente y hora asignada. En esta parte todo OK.
Ahora debo implementar mediante Arduino Ethernet una pagina (Solo funcionara en una pequeña red local, Arduino y PC), en esta pagina debo ingresar los valores a comparar, hora e ID de tarjeta ya que antes lo hacia manual en el codigo del Arduino, pensaba hacerlo con la base del tipico tutorial de encender Led por Ethernet que esta en todos lados, dejao una image.
Tenia pensado en que en vez de usar botones, fueran cuadros de texto, uno para la hora y otro para la ID de la tarjeta, que se guardaran en una variable para despues el resto del programa lo ejecute normalmente.
¿Como puedo hacer eso, teniendo de base utilizar de esta forma mi Arduino?¿Es necesario algo mas, usar una SD por ejemplo?
Muchas Gracias de Antemano.
#include <SPI.h>
#include <Ethernet.h>
byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //Declaracion de la direccion MAC
IPAddress ip(192,168,1,20); //Declaracion de la IP
EthernetServer servidor(80); //Declaracion del puerto 80int PIN_LED=8; //Aqui establecemos la variable PIN_LED como un valor entero
String readString=String(30); //lee los caracteres de una secuencia en una cadena.
//Los strings se representan como arrays de caracteres (tipo char)
String state=String(3);void setup() {
Ethernet.begin(mac, ip); //Inicializamos con las direcciones asignadas
servidor.begin(); //inicia el servidor
pinMode(PIN_LED,OUTPUT);
digitalWrite(PIN_LED,LOW);
state="OFF";
}void loop() {
//EthernetClient Crea un cliente que se puede conectar a
//una dirección específica de Internet IP
EthernetClient cliente= servidor.available();
if(cliente) {
boolean lineaenblanco=true;
while(cliente.connected()) {
if(cliente.available()) {
char c=cliente.read();
if(readString.length()<30) {
readString.concat(c);
//Cliente conectado
//Leemos petición HTTP caracter a caracter
//Almacenar los caracteres en la variable readString
}
if(c=='\n' && lineaenblanco) //Si la petición 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";
}//Cabecera HTTP estándar
cliente.println("HTTP/1.1 200 OK");
cliente.println("Content-Type: text/html");
cliente.println(); //Página Web en HTML
cliente.println("");
cliente.println("");
cliente.println("LED ON/OFF");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.println("LED ON/OFF
");
cliente.print("");
cliente.print("Estado del LED: ");
cliente.print(state);
cliente.print("");
cliente.println("<input type=submit value=ON style=width:200px;height:75px onClick=location.href='./?LED=T'>");
cliente.println("<input type=submit value=OFF style=width:200px;height:75px onClick=location.href='./?LED=F'>");
cliente.println("");
cliente.println("");
cliente.println("");
cliente.stop();
//Cierro conexión con el cliente
readString="";
}
}
}
}
}