Program the alarm via a webpage... HELP

Of course I'm a little bit lost ... Is my first program in arduino and their language, but I'm trying to understand ... I'll try to look this up to see if I learn how to do what I want... Thanks for your time... :smiley:

I don't know if it's the best way to solve the problem, but it's working for me ...

          if (readString.indexOf("?H") > 1)
          {       
            int Pos_Hour = readString.indexOf("H");
            int Pos_Minute = readString.indexOf("M", Pos_Hour);
            int End = readString.indexOf("H", Pos_Minute);

            if(End < 0)
            {
              End =  readString.length() + 1;
            }

            int tamanhotexto = ((Pos_Minute) - (Pos_Hour+2));

            if (tamanhotexto>3)

            tamanhotexto=3;
            char matriztexto[3];
            readString.substring((Pos_Hour+2), (Pos_Minute-1)).toCharArray(matriztexto, tamanhotexto);
            AlarmHora=atoi(matriztexto);
            tamanhotexto = ((End) - (Pos_Minute+2));

            if (tamanhotexto > 3)

            tamanhotexto = 3;
            readString.substring((Pos_Minute+2), (End-1)).toCharArray(matriztexto, tamanhotexto);
            AlarmMinutos=atoi(matriztexto);
            }

I'll put here the full code if someone has the same problem and want to use the same solution ....

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

int rele1 =  2;

int AlarmHora = 0;

int AlarmMinutos = 0;

EthernetServer servidor(8080);

byte mac[]={0xDE,0xAD,0xBE,0xEF,0xFE,0xED}; //MAC 

IPAddress ip(169, 254, 23, 17); //IP 

String readString=String(30); //le os caracteres de uma sequencia em cadeia.

String state=String(6);

void setup() {
  
Ethernet.begin(mac, ip); //Inicializamos com as direccões designadas

servidor.begin(); 

  Serial.begin(9600);
  
  setTime(0,0,0,1,1,11); // define hora
  
  pinMode(rele1, OUTPUT);

  digitalWrite(rele1, LOW);

  state="OFF  ";

}

void loop()
{

//EthernetClient Crea um cliente
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);
Serial.print("The client request is: [");
Serial.print(readString);
Serial.println("]");

//Cliente conectado
} 
if(c=='\n' && lineaenblanco)
{
 
          if (readString.indexOf("?H") > 1)
          {       
            int Pos_Hour = readString.indexOf("H");
            int Pos_Minute = readString.indexOf("M", Pos_Hour);
            int End = readString.indexOf("H", Pos_Minute);

            if(End < 0)
            {
              End =  readString.length() + 1;
            }

            int tamanhotexto = ((Pos_Minute) - (Pos_Hour+2));

            if (tamanhotexto>3)

            tamanhotexto=3;
            char matriztexto[3];
            readString.substring((Pos_Hour+2), (Pos_Minute-1)).toCharArray(matriztexto, tamanhotexto);
            AlarmHora=atoi(matriztexto);
            tamanhotexto = ((End) - (Pos_Minute+2));

            if (tamanhotexto > 3)

            tamanhotexto = 3;
            readString.substring((Pos_Minute+2), (End-1)).toCharArray(matriztexto, tamanhotexto);
            AlarmMinutos=atoi(matriztexto);
            }

// vamos verificar se o LED deve ser ligado
          
          if(readString.indexOf("r1")>=0)
          {
            // O Led vai ser ligado
           digitalWrite(rele1, HIGH);
           state="ON  ";
          }
          // Se a string possui o texto L=Desligar
          if(readString.indexOf("d1")>=0)
          {
            // O Led vai ser desligado
            digitalWrite(rele1, LOW);
            state="OFF  ";
          }

//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("<html>");
cliente.println("<head>"); 
cliente.println("<title>Arduino</title>"); 
cliente.println("</head>");
cliente.println("<body width=100% height=100%>"); 
cliente.println("<center>");
cliente.print("<B><span style=\"color: #000080;\">");
cliente.print("<h1>O Arduino do....</h1>");
cliente.println("<input type=submit value='RELE 2:ON' style=width:200px;height:35px onClick=location.href='./?r1\'>"); 
cliente.println("<input type=submit value='RELE 2:OFF' style=width:200px;height:35px onClick=location.href='./?d1\'>"); 
cliente.print("<B><span style=\"color: #800000;\">");
cliente.println("<B><span style=\"font-size:11px;\">");
cliente.print("  ESTADO: ");
cliente.print(state);
cliente.print("

"); 
          cliente.print("Alarm: ");
          if (AlarmHora<10)
            cliente.print("0");
          cliente.print(AlarmHora);
          cliente.print(":");
          if (AlarmMinutos<10)
            cliente.print("0");
          cliente.print(AlarmMinutos);
          cliente.println("


");
          cliente.println("<form method=get>Hora:<input type=text size=2 name=H> Min:<input type=text size=2 name=M>&nbsp;<input name=E type=submit value=Submit></form>");
cliente.println("</center>"); 
cliente.println("</body>"); 
cliente.println("</html>"); 
cliente.stop();
//Coneção terminada com o cliente 
readString="";
}
}
}
}
}

You might be interested in using a text box web page like below where you enter the desired value.

//zoomkat 12-08-12
//get submit box code
//for use with IDE 1.0
//open serial monitor to see what the arduino receives
//use the \ slash to escape the " in the html or use a '
//address will look like http://192.168.1.102:84 when submited
//for use with W5100 based ethernet shields
//note that the below bug fix may be required
// http://code.google.com/p/arduino/issues/detail?id=605 

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

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; //physical mac address
byte ip[] = { 192, 168, 1, 102 }; // ip in lan
byte gateway[] = { 192, 168, 1, 1 }; // internet access via router
byte subnet[] = { 255, 255, 255, 0 }; //subnet mask
EthernetServer server(84);; //server port

String readString; 

//////////////////////

void setup(){

  pinMode(5, OUTPUT); //pin selected to control
  //start Ethernet
  Ethernet.begin(mac, ip, gateway, gateway, subnet);
  server.begin();

  //enable serial data print 
  Serial.begin(9600); 
  Serial.println("server text box test1"); // so I can keep track of what is loaded
}

void loop(){
  // Create a client connection
  EthernetClient client = server.available();
  if (client) {
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();

        //read char by char HTTP request
        if (readString.length() < 100) {

          //store characters to string 
          readString += c; 
          //Serial.print(c);
        } 

        //if HTTP request has ended
        if (c == '\n') {

          ///////////////
          Serial.println(readString); //see what was captured

          //now output HTML data header

          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println();

          client.println("<HTML>");
          client.println("<HEAD>");
          client.println("<TITLE>Arduino GET test page</TITLE>");
          client.println("</HEAD>");
          client.println("<BODY>");

          client.println("<H1>HTML form GET example</H1>");

          client.println("<FORM ACTION='/' method=get >"); //uses IP/port of web page

          client.println("Pin 5 'on5' or 'off5': <INPUT TYPE=TEXT NAME='LED' VALUE='' SIZE='25' MAXLENGTH='50'>
");

          client.println("<INPUT TYPE=SUBMIT NAME='submit' VALUE='Change Pin 5!'>");

          client.println("</FORM>");

          client.println("
");

          client.println("</BODY>");
          client.println("</HTML>");

          delay(1);
          //stopping client
          client.stop();

          /////////////////////
          if(readString.indexOf("on5") >0)//checks for on
          {
            digitalWrite(5, HIGH);    // set pin 5 high
            Serial.println("Led On");
          }
          if(readString.indexOf("off5") >0)//checks for off
          {
            digitalWrite(5, LOW);    // set pin 5 low
            Serial.println("Led Off");
          }
          //clearing string for next read
          readString="";

        }
      }
    }
  }
}