Arduino Ethernet como Servidor Web

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 80

int 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="";
}
}
}
}
}

Creo que lo que necesitas es reorganizar el código.
Lo que intentas hacer no requiere de la interfaz de la página, solamente lo quieres mostrar.
Haz tu código, genera tu lógica, y lo imprimes al serial.
Ya que lo tienes solamente mandas los datos del estado (hora y quizás la ID) hacia la página ya sin botones.
Porque si vas a usar la RFID y la hora para tu ejecución o validación de la apertura, no veo porqué usar los comandos de la web.

Creo que es la segunda línea de planteamiento en tu proyecto que veo. Sigo sin tener claro qué elementos quieres utilizar. RFID y RTC parecen fijos en tu proyecto, pero luego revoloteas entre SD, ethernet, servidor php/mysql en red local...

Un buen comienzo sería evaluar la cantidad de datos (número de id y horas) que vamos a necesitar guardar (si son pocos igual te sirve con la propia EEPROM, con lo que ganas en simplicidad y robustez). Luego ver cómo deseas introducir o actualizar esos permisos de acceso, si lo que quieres es tener esos datos guardados de forma local en el arduino.

Si vas a utilizar un server php/mysql aparte del arduino, podrías utilizar sólo tarjeta ethernet y prescindir de lo demás, incluso del RTC (el server te puede proporcionar la hora también).

Pero primero define qué quieres y con qué medios deseas implementarlo.