Hola quisiera que alguien me ayude, estoy empezando con arduino, ya se las cosas básicas y necesarias, ahora lo que quiero es enviar los datos de un sensor a un servidor web montado en mi pc, donde arduino y el shield ethernet trabajen como clienteweb. Alguien podría facilitarme un ejemplo simple que tome los datos de por ejemplo temperatura mediante el arduino y estos sean enviados a el servidor así pueda entender como es el funcionamiento? por lo que leí se utiliza el método gets, pero no me queda muy claro todo. Ya interprete el ejemplo de la librería ethernet pero no se como continuar, agradecería su ayuda
te puede valer esto???
y aquí en el foro de documentación hay mas..
http://forum.arduino.cc/index.php?topic=177401.0
Hola, no es precisamente lo que necesito, ya que ahi esta actuando como servidor arduino, y yo lo que busco es enviar datos de sensores recogidos mediante arduino a un servidor web apache, todo mediante http.
Quieres almacenar los datos antes? por que si es asi tendria que pasar por una SD, y el codigo es basicamente tan personalizado que es tiempo... Trabajo en algo parecido. cuando este OK lo comparto
#include <SPI.h>
#include <Ethernet.h>
#include "DHT.h"
#define DHTPIN A0
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
byte mac[] = { 0x90, 0xA2, 0xDA, 0x0D, 0x4E, 0xD7 }; // MAC de la tarjeta ethernet shield
byte ip[] = { 192,168,1,100 }; // Direccion ip local
byte server[] = { 192,168,1,150 }; // Direccion ip del servidor
EthernetClient client;
float value;
void setup()
{
// Serial.begin(9600);
Ethernet.begin(mac, ip); // inicializa ethernet shield
delay(1000); // espera 1 segundo despues de inicializar
dht.begin();
}
void loop()
{
int h = dht.readHumidity();
int t = dht.readTemperature();
// Serial.println("Conectando..");
if (client.connect(server, 80)) { // Se conecta al servidor
client.print("GET /ardu/insertar.php?temperatura=");
client.print(t);
client.print("&humedad=");
client.print(h);
client.println(" HTTP/1.0");
client.println("User-Agent: Arduino 1.0");
client.println();
}
else
{
// Serial.println("Falla en la conexion");
}
if (client.connected()) {}
else {
// Serial.println("Desconectado");
}
client.stop();
client.flush();
delay(300000); // espera 5 minutos para volver a tomar datos y registrarlos.
}
Ahí lo tienes. El propio arduino, mediante php le da los datos de los sensores y el php lo mete en una base datos mysql
Si cromo gracias por el aporte, era tal cual lo hacía pero el error estaba en la configuracion del servidor apache, porque despues lo probe en linux con LAMPP y anda..le agrego el archivo php que recibe por si a alguien le sirve:
<?php
$con = mysql_connect("localhost","USUARIO","CONTRASEÑA");
mysql_select_db('NOMBREBASEDEDATOS',$con);
$temperatura = $_GET['t'];
$humedad = $_GET['h'];
$sql = 'INSERT INTO `NOMBREDETABLA` SET humedad = "'.mysql_real_escape_string($humedad).'", temperatura = "'.mysql_real_escape_string($temperatura).'", fecha_hora = NOW()';
mysql_query($sql);
mysql_close();
?>
ahora lo que necesito es hacer lo inverso.. poder por ejemplo encender un led conectado al arduino mediante un archivo php. Sabes como hacerlo? probe pero no tuve resultados..