Espero no ser extenso, pero si explicarme lo suficiente para obtener apoyo...
Mi proyecto consiste en recabar varios datos a traves de sensores y un reloj para almacenarlos en una base de datos.
Estoy trabajando con un ARDUINO UNO y la respectiva Shield Ethernet, ya estoy recabando los datos de sensores y reloj, incluso guardo los datos en la memoria SD.
Mi problema es en la siguiente etapa, donde estoy tratando de enviar los datos a una base de datos, en este caso estoy haciendo pruebas para realizar la insersion a traves del medodo GET de PHP. Este codigo en PHP hace su trabajo correctamente si lo llamo en el explorador e inserta el valor en la base de datos, pero cuando hago la llamada desde ARDUINO, no sucede nada.
Como referencia, creo q ya tengo liberados los puertos en el router y el FireWall de windows y el ARDUINO me responde correcto si le hago un PING.
Aqui agrego tanto el Sketch, como el codigo PHP, para ver si me pueden ayudar... de ante mano gracias...
Sketch
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x96, 0xB4 };
byte ip[] = { 192,168,1,10 }; // Direccion ip local
byte gw[] = { 192,168,1,1 };
byte sr[] = { 255,255,255,0};
char server[]={"192.168.1.3"};
EthernetClient client;
// Definicion de pines
//int sensorPin = A0;
void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip, gw, sr); // inicializa ethernet shield
delay(1000); // espera 1 segundo despues de inicializar
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
}
void loop()
{
float celsius = 81; // getTemperaturaC(); // 10 mV por grado celsius
Serial.print(celsius); // Escribe en el puerto serial para monitorear
Serial.print(" grados Celsius");
Serial.println("Conectando..");
if (client.connect(server, 80)) { // Se conecta al servidor
client.print("GET http://192.168.1.3/DataArduino.php?v="); // Envia los datos utilizando GET
client.print(celsius);
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
Serial.println("Conexion exitosa");
}
else
{
Serial.println("Falla en la conexion");
}
if (client.connected())
{}
else
{
Serial.println("Desconectado");
}
client.stop();
client.flush();
delay(5000); // espera 15 segundos antes de volver a sensar la temperatura
}
Codigo PHP
<?php
$mysql_servidor = "localhost";
$mysql_base = "shop";
$mysql_usuario = "root";
$mysql_clave = "";
$hora = time();
$fechaRegistro="".date("d-m-Y H:i:s", $hora);
$valor = htmlspecialchars($_GET["v"],ENT_QUOTES);
echo "".$fechaRegistro."---".$valor;
// Valida que esten presente todos los parametros
if (($fechaRegistro!="") and ($valor!=""))
{
mysql_connect($mysql_servidor,$mysql_usuario,$mysql_clave) or die("Imposible conectarse al servidor.");
mysql_select_db($mysql_base) or die("Imposible abrir Base de datos");
$sql = "insert into data (IdReg, Temp) values ('$fechaRegistro','$valor')";
mysql_query($sql);
}
else
{
echo "paso por aqui";
}
?>