Ethernet Shield + XAMPP + PHP + MYSQL

Hola, vengo a pedir ayuda aquí ya que tras varios días de agobio e intentar encontrar una solución, me es imposible continuar y necesito una solución ya.
Quiero que mi arduino envie datos de los sensores a la web y almacene los datos en una BBDD, y además en base a la temperatura obtenida se accionen los relés. Bien, tengo el mismo código que el gran proyecto que hizo @eljamz , solo que yo no uso su sensor de temperatura DS18B20, por lo que de su código quité la función que usa para obtener la temperatura, la función e los reles lo dejé igual. Aquí os dejo el proyecto del que os hablo-> http://forum.arduino.cc/index.php?topic=138024.0
Bien, yo uso XAMPP(integracion de Apache PHP y MSQL, pues no consigo hacer que se conecte a la web creada (en mi caso 127.0.0.1/arduino_sensor.php o localhost/arduino_sensor.php ) Tengo una pregunta sobre el código que os dejo a continuacion
en byte server tengo que poner mi direccion ip local no? O tengo que poner la del servidor…osea 127.0.0.1?
Ando bastante perdido en este tema…porque no logra conectarse a la web y tengo ya configurado correctamente XAMPP
El código php en mi caso debería ir guardado en la siguiente ruta: C:\xampp\htdocs no?
De todas maneras modificando lo poco que os he dicho, pero por puerto serial me sale: connecting… conection failed
Aquí os dejo el código Arduino

#include <Ethernet.h>
#include <SPI.h>
#include <OneWire.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();
}

Aquí el .php y mysql (iguales que los de @eljamz

<?php
include('db.php');
//Get parameter sended by Arduino.
$type = $_GET["type"];
$value = $_GET["value"];


// Validate parameters if any and INSERT.
if (($type != "") && ($value != "")) {
	mysql_query("INSERT INTO sensor (date, type, value) values (NOW(),'$type','$value')");
} else {

//If no parameters run script for RELAYS.
$result = mysql_query("SELECT value FROM sensor ORDER BY date DESC LIMIT 1");
while($row = mysql_fetch_array($result))
  {
	$value = $row['value'];
	$value = (int)$value;
  }
}

if ($value >= 28) { //this could be changed to anything, if you return <1> start Relay 1 in PIN3 and <2> start your second Relay in PIN 4.
	echo "<1>";
} else {
	echo "<2>";
}


mysql_close($con);
?>
CREATE TABLE `sensor` (
	`id` INT(10) NOT NULL AUTO_INCREMENT,
	`date` DATETIME NOT NULL,
	`type` VARCHAR(100) NOT NULL COLLATE 'latin1_spanish_ci',
	`value` FLOAT NOT NULL,
	PRIMARY KEY (`id`),
	UNIQUE INDEX `id` (`id`)
)
COLLATE='latin1_spanish_ci'
ENGINE=InnoDB
AUTO_INCREMENT=0;

Por favor es importante y necesito presentarlo cuanto antes…gracias!

hola que tal

mac como ya lo tienes la mac address del ethernet shield ip la direccion ip que se le va a dar al ethernet shield server la direccion a la cual se va a conectar el ethernet shield ya sea para leer o enviar informacion correccion 127.0.0.1 es la direccion local de cada equipo o mejor conocido como localhost entonces no debes de poner ese ip

asi es como yo manejo las variables

EthernetClient cliente;

byte mac[] = {0x90, 0xA2, 0xDA, 0x0D, 0x12, 0x73 };   // Direccion mac del ethernet shield
IPAddress ip(192, 168, 1, 249);                       // Direccion ip del ethernet shield
IPAddress myDns(192, 168, 1, 1);                      // Direccion dns
IPAddress gate(192, 168, 1, 1);                       // Direccion gateway
IPAddress mask(255, 255, 255, 0);                     // Direccion subred
IPAddress servidor(192, 168, 1, 10);                  // Direccion del servidor

y con esta funcion es donde hago la conexion al equipo

void httpRequest(String param1)
{
  if(cliente.connect(servidor, 80))
  {
    cliente.print("GET /campo/checador/che100.php?clave=");
    cliente.print(param1);
    cliente.println(" HTTP/1.0");
    cliente.println("Host: servidor-xp");
    cliente.println("User-Agent: arduino-ethernet");
    cliente.println("Connection: close");
    cliente.println("Content-Type: text/html");
    cliente.println();

    lastConnectionTime = millis();
  } 
  else
  {
    cliente.stop();
  }
}

en tu caso solo es cuestion de cambiar la ruta /campo/checador/che100.php........

y una vez que el shield te cargue la pagina solo es cuestion de leer todo el contenido de la pagina

void leerCadena(String param1)
{
  _cadena = "";
  while(cliente.available())
  {
    char c = cliente.read();
    _cadena += c;
  }
  if (!cliente.connected() && lastConnected)
  {
    cliente.stop();
  }

  if(!cliente.connected() && (millis() - lastConnectionTime > postingInterval))
  {
    httpRequest(param1);
  }
  lastConnected = cliente.connected();
}

Bueno mi script lo hice para consulta para verificar via RFID la entrada de trabajadores a la empresa entonces lo que hago mando el numero de serie del tag a una consulta en php la cual me verifica si el numero de serie esta asociado a un numero de trabajador e identifica si ya entro o todavia no

Saludos

Hola y como yo se cuales son las IPAddress, es que tengo el mismo problema de el, creo que estoy enredado con todas esas IP

Ya logré insertar valores a la base de datos con arduino, si algo escribeme y te ayudo cual fue mi solucion

Me podrias ayudar a la conexión y al envío de datos?. Estoy intentandolo en un servidor local y no puedo hacer que se conecte.

Porque respondes un hilo que tiene mas de 4 meses sin movimiento? Crea tu propio hilo gasparres y tendrás respuestas.