Monitorización de Relés en base a sensores solo a traves de PHP

Hola, necesito ayuda desesperádamente, y es que no consigo realizar lo que tengo pensado en mente. Quiero que en funcion de unos determinados valores de sensores de temperatura, luminosidad, etc...se encienda o apague un determinado tipo de relé, todo ello de forma automatica(todo esto lo tengo hcho ya facilmente sin conexion a internet), pero quiero que Arduino lo coja desde la web e interprete ese codigo php y lo realice igualmente, y vaya almacenando los valores en una base de datos. Ya tengo instalado XAMPP(Apache + MySQL) Asi que porfavor, necesitaría ayuda para realizar el proyecto... De momento se como activar/desactivar reles desde una pagina web creada, pro eso no es lo que quiero, Gracias de antemano. Mi código es el siguiente..intento funcionar 2 relés pero en el puerto serie me sale connectin..disconected.. osea me es imposible de que se conecte, gracias.Os dejo mi código:

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

//Ethernet Configuration
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xEE}; // Ethernet Shield MAC
byte ip[] = { 192,168,1,249 }; // Ethernet Shield IP
byte server[] = { 192,168,1,16 }; // Server IP

EthernetClient client;


//Settings for Relays
String location = "http://192.168.1.16/arduino_sensor.php HTTP/1.0";
char inString[32]; // string for incoming serial data
int stringPos = 0; // string index counter
boolean startRead = false; // is reading?

//Declare Relay Pinouts
int rel1Pin = 3;  // Setup Realy 1 pin 
int rel2Pin = 4; // Setup Realy 2 pin 

//Define where to read the Sensor


float luminosidad;
int SensorLuminosidad=3;


//void setup
void setup(void) {
  Serial.begin(9600);
  Ethernet.begin(mac, ip); // Init Ethernet Shield
  pinMode(rel1Pin, OUTPUT); // Make relPin and OUTPUT
  pinMode(rel2Pin, OUTPUT); // Make relPin and OUTPUT
  delay(5000); // Wait 5 seconds to Init Program
}


//void loop
void loop(void) {
luminosidad = analogRead(SensorLuminosidad);
  luminosidad= (luminosidad)/10;
  Serial.print("La Luminosidad actual es (0-100%) "); // Nos escribe por el puerto serie la temperatura existente
  Serial.println(luminosidad);
 delay(500); //just here to slow down the output so it is easier to read
 String pageValue = connectAndRead(); //Connect to server and get action to follow!.
 Serial.println(pageValue); //print out the findings.
 delay(500); //just here to slow down the output so it is easier to read
}


/*
FUNCTION FOR RELAYS
*/
String connectAndRead(){
  //connect to the server

  Serial.println("connecting...");

  //port 80 is typical of a www page
  if (client.connect(server, 80)) {
    Serial.println("connected");
    client.print("GET ");
    client.println(location);
    client.println();

    //Connected - Read the page
    return readPage(); //go and read the output

  }else{
    return "connection failed";
  }

}



String readPage(){
  //read the page, and capture & return everything between '<' and '>'

  stringPos = 0;
  memset( &inString, 0, 32 ); //clear inString memory

  while(true){

    if (client.available()) {
      char c = client.read();

      if (c == '<' ) { //'<' is our begining character
        startRead = true; //Ready to start reading the part 
      }else if(startRead){

        if(c != '>'){ //'>' is our ending character
          inString[stringPos] = c;
          stringPos ++;
        }else{
          //got what we need here! We can disconnect now
          startRead = false;
          client.stop();
          client.flush();
          Serial.println("disconnecting.");
          
          int inRel = atoi (inString);
          if (inRel == 1) {
            digitalWrite(rel1Pin, HIGH);
            digitalWrite(rel2Pin, LOW);
          } else if (inRel == 2) {
            digitalWrite(rel1Pin, LOW);
            digitalWrite(rel2Pin, HIGH);
          }
          return inString;

        }

      }
    }

  }






 
 //Save Temperature to MySQL
  Serial.println("Connecting...");

  if (client.connect(server, 80)>0) {  // Connect to server
    client.print("GET /arduino_sensor.php?type=Celsius&value="); // Send the DATA with GET
    client.print(luminosidad);
    client.println(" HTTP/1.0");
    client.println("User-Agent: Arduino 1.0");
    client.println();
    Serial.println("Connected");
  }
  else
  {
    Serial.println("Connection FAIL");
  }
  if (client.connected()) {}
  else {
    Serial.println("Disconnected!");
  }
  client.stop();
  client.flush();
}

arduino solo puede generar html. si pretendes que interprete php debes usar un raspberry o un due almenos.
en 32k no cabe apache y php.
lo que debes hacer es un post a una url con los datos.

yo estoy buscando hacer algo parecido a vos. podrias ayudarme? como haces para encender/apagar un relay desde una pagina .php ?

@maxid y como se hace eso?

https://www.google.com.ar/search?q=arduino+html&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:es-AR:official&client=firefox-a&channel=sb&gfe_rd=cr&ei=R_l5U9mnMIKj8wfToYDwBw

Yo empecé también con un proyecto arduino+php y se puede pero no es fácil ni estable (hasta donde yo llegué)

Así que me cambié a Python que si lee tanto la base de datos como el serial y se comunica con la placa arduino sin problemas.

Estoy terminando con la versión 1.0 que básicamente hace lo que describes, en cuanto la tenga rematada la posteo.

Además utilizo php para configurar parámetros y encender y apagar desde html pero solo guarda en una db, luego python es el que se encarga de enlazar esos datos con arduino.

Hoy por fin he conseguido que python arranque como servicio de windows (al final me ha parecido fácil y todo) con lo que el servidor está siempre disponible aunque se reinicie y nadie inicie una sesión.

El proyecto que tengo en marcha maneja grupos de sensores que se pueden activar y desactivar para poder ir cambiando la ubicación de los mismos, etc... ya que cuando intentaba cambiar un sensor en caliente se solía colgar el proyecto.

Un saludo.