AYUDA ARDUINO Y MYSQL ETHERNET

Hola atodos saludos. Estoy haciendo un pequño programa con arduino, mysql y la ethernet, pero ya estoy verde de buscar ejemplos y ejemplos y me corren pero ninguno hace lo que quiero. lo que quiero hacer es almacenar un valor de una variable en mysql. los ejemplo que he conseguido me han funcionado pero nada que almacenan el valor en la base de datos. les agradeceria de su aporte ya que me urje hacer eto poara la universidad.Estoy utilizando un servidor local el wampserver
aqui coloco el codigo arduino:

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

// Configuracion del Ethernet Shield
byte mac = {0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x00}; // Direccion MAC
byte ip = { 192,168,11,51 }; // Direccion IP del Arduino
byte server = { 192,168,11,99 }; // Direccion IP del servidor
EthernetClient client;
//float temperatura;
//int analog_pin = 0;
float potenciometro = 0;

void setup(void) {
Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
delay(1000); // Esperamos 1 segundo de cortesia
Serial.begin(9600);
}

void loop(void) {
potenciometro=55;
//temperatura = analogRead(analog_pin);
//temperatura = 5.0temperatura100.0/1024.0;
//Display in Serial Monitor
//Serial.print(potenciometro); //Return temperature to Monitor
//Serial.println(" oC");
// Proceso de envio de muestras al servidor

Serial.println(“Connecting…”);
if (client.connect(server, 80)>0) { // Conexion con el servidor
client.print(“GET /mis_tes/ar_mysqli.php?valor=”); // Enviamos los datos por GET
client.print(potenciometro);

client.println(" HTTP/1.0");
client.println(“User-Agent: Arduino 1.0”);
client.println();
Serial.println(“Conectado”);
} else {
Serial.println(“Fallo en la conexion”);
}
if (!client.connected()) {
Serial.println(“Disconnected!”);
}
client.stop();
client.flush();
delay(20000); // Espero un minuto antes de tomar otra muestra
}

tambien probe este otro y funciona pero tampoco almacena los valores en la base de datos.
#include <SPI.h>
#include <Ethernet.h>

byte mac = {
0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x00};
byte ip = { 192,168,11,51 }; // Direccion ip local
byte server={192,168,11,99};

EthernetClient client;
// Definicion de pines
int valor = 0;
//int sensorPin = A0;

void setup()
{
Serial.begin(9600);
Ethernet.begin(mac, ip); // inicializa ethernet shield
delay(1000); // espera 1 segundo despues de inicializar
Serial.print("My IP address: ");
Serial.println(Ethernet.localIP());
}

void loop()
{
valor = 50;
//float celsius = getTemperaturaC(); // 10 mV por grado celsius
Serial.print(valor); // Escribe en el puerto serial para monitorear
Serial.print(" valor");

Serial.println(“Conectando…”);

if (client.connect(server, 80)) { // Se conecta al servidor
client.print(“GET /mis_tes/ar_mysqli.php?valor=”); // Envia los datos utilizando GET
client.print(valor);
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(15000); // espera 15 segundos antes de volver a sensar la temperatura

aqui es scrip de conexion php con la base de datos.

<?php $conexion =new mysqli("localhost", "root", "1234", "proyectos"); setlocale(LC_TIME, 'es_VE'); date_default_timezone_set('America/Caracas'); $valor=$_GET["valor"]; $fecha=date('Y-m-d H:i:s'); //$fecha=$_GET["fecha"]; $conexion->query("INSERT INTO tutorial_ethernet VALUES (NULL,'$valor','$fecha')"); //$conexion->query("INSERT INTO tutorial_ethernet VALUES (NULL,'$valor')"); if($conexion->connect_errno){ echo "No conectado"; }else{ echo "Datos insertados correctamente"; } ?>

Por favor. Tomate un tiempo en aprender para qué son los iconos que hay en la parte superior del editor de mensajes. Hay uno específico para insertar código que lo hace más legible y fácil de copiar al IDE. También es aconsejable que expongas las salidas del monitor serie para ver dónde casca la cosa. De momento prueba a finalizar el envío del GET, en lugar de con una linea client.println(); Con dos consecutivas client.println(); client.println();

Como ya te dijo noter, sería bueno que corrijas tu post y utilizaras la etiqueta de código para que sea más legible y así poder entender todo el código que posteaste.

Antes que todo, creo que debes comprobar si ingresando un valor manualmente el código lo almacena, ¿cómo? ingresando a

http://localhost/mis_tes/ar_mysqli.php?valor=20

Si almacena el valor en la base de datos es por que hay un problema en arduino, una segunda opción sería comprobar si llega el valor para lo cual imprime el contenido de la variable valor

$valor = $_GET["valor"];
echo $valor;

ok amigos, aqui lo monte nuevamente, soy nuevo en arduino.

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

// Configuracion del Ethernet Shield
byte mac = {0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x00}; // Direccion MAC
byte ip = { 192,168,77,51 }; // Direccion IP del Arduino
byte server = { 192,168,77,99 }; // Direccion IP del servidor
EthernetClient client;
//float temperatura;
//int analog_pin = 0;
int valor = 0;

void setup(void) {
Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
delay(1000); // Esperamos 1 segundo de cortesia
Serial.begin(9600);
}

void loop(void) {
valor=55;
//temperatura = analogRead(analog_pin);
//temperatura = 5.0temperatura100.0/1024.0;
//Display in Serial Monitor
Serial.println(valor); //Return temperature to Monitor
//Serial.println(" oC");
// Proceso de envio de muestras al servidor

Serial.println(“Connecting…”);
if (client.connect(server, 80)>0) { // Conexion con el servidor
client.print(“GET /proyectos/ar_mysqli.php?valor=”); // Enviamos los datos por GET
client.println();
client.println();
client.print(valor);
client.println();
client.println();
client.println(" HTTP/1.0");
client.println(“User-Agent: Arduino 1.0”);
client.println();
Serial.println(“Conectado”);
} else {
Serial.println(“Fallo en la conexion”);
}
if (!client.connected()) {
Serial.println(“Disconnected!”);
}
client.stop();
client.flush();
delay(9000); // Espero un minuto antes de tomar otra muestra
}

No has entendido lo que te tratamos de decir, fijate en la imagen del punto 7 del siguiente post http://forum.arduino.cc/index.php/topic,148850.0.html

Debes usar el tag de código para insertar tu código, además hay un botón editar, para que puedas corregirlo, solo debes seleccionar el código y presionar el botón que se indica en la imagen.

ok hermano, gracias, por esa inducción. Voy a colocarlo de nuevo el código para ver si me ayudas. Te cuento que lo que me dijiste de comprobar manualmente la inserción de un valor a la base de datos utilizando la URL, ya estoy cansado de hacerlo y me funciona perfecto, el poroblema esta es en ekl codigo arduino que no manda kla variable o no se que pasa ahi. Quiero comentarte de que despues de casi una semana tratando con esto me funciono un dia, pero al siguiente dia cuando fui a dar una demostracion no quiso funcionar mas y no se porque, porque no hice ninguna midificacion al codigo.

Este codigo lo consegui despues de tanto buscar y buscar en internet, lo copie hice algunos comentarios y pruebas hasta que me funciono luego como te dije que al siguiente dia cundo fui hacer la demostracion no quiso funcionar y estoy es que rebiento ya hermano… je je je…

#include <Ethernet.h>
#include <SPI.h>
 
// Configuracion del Ethernet Shield
byte mac[] = {0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x00}; // Direccion MAC
byte ip[] = { 192,168,77,51 }; // Direccion IP del Arduino
byte server[] = { 192,168,77,99 }; // Direccion IP del servidor
EthernetClient client; 
//float temperatura;
//int analog_pin = 0;
int valor = 0;
 
void setup(void) {
  Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
  delay(1000); // Esperamos 1 segundo de cortesia
  Serial.begin(9600);
}
 
void loop(void) {
  valor=55;
  //temperatura = analogRead(analog_pin);
  //temperatura = 5.0*temperatura*100.0/1024.0;
  //Display in Serial Monitor
  Serial.println(valor); //Return temperature to Monitor
  //Serial.println(" oC");
  // Proceso de envio de muestras al servidor
 
  Serial.println("Connecting...");
  if (client.connect(server, 80)>0) { // Conexion con el servidor
    client.print("GET /proyectos/ar_mysqli.php?valor="); // Enviamos los datos por GET
    client.println();
    client.println();
    client.print(valor);
    client.println();
    client.println();
    client.println(" HTTP/1.0");
    client.println("User-Agent: Arduino 1.0");
    client.println();
    Serial.println("Conectado");
  } else {
    Serial.println("Fallo en la conexion");
  }
  if (!client.connected()) {
    Serial.println("Disconnected!");
  }
  client.stop();
  client.flush();
  delay(9000); // Espero un minuto antes de tomar otra muestra
}

Hola. Anteriormente te decía de duplicar sólo el último client.println:

#include <Ethernet.h>
#include <SPI.h>
 
// Configuracion del Ethernet Shield
byte mac[] = {0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x00}; // Direccion MAC
byte ip[] = { 192,168,77,51 }; // Direccion IP del Arduino
byte server[] = { 192,168,77,99 }; // Direccion IP del servidor
EthernetClient client;
//float temperatura;
//int analog_pin = 0;
int valor = 0;
 
void setup(void) {
  Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
  delay(1000); // Esperamos 1 segundo de cortesia
  Serial.begin(9600);
}
 
void loop(void) {
  valor=55;
  //temperatura = analogRead(analog_pin);
  //temperatura = 5.0*temperatura*100.0/1024.0;
  //Display in Serial Monitor
  Serial.println(valor); //Return temperature to Monitor
  //Serial.println(" oC");
  // Proceso de envio de muestras al servidor
 
  Serial.println("Connecting...");
  if (client.connect(server, 80)>0) { // Conexion con el servidor
    client.print("GET /proyectos/ar_mysqli.php?valor="); // Enviamos los datos por GET
    client.println(valor);
    client.println(" HTTP/1.0");
    client.println("User-Agent: Arduino 1.0");
    client.println();
    client.println();
    Serial.println("Conectado");
  } else {
    Serial.println("Fallo en la conexion");
  }
  if (!client.connected()) {
    Serial.println("Disconnected!");
  }
  client.stop();
  client.flush();
  delay(9000); // Espero un minuto antes de tomar otra muestra
}

Pd: como puedes ver, para seleccionar todo el código de una vez y poder copiarlo encima de la ventanita del código tienes un vínculo que pone code: [select]

aqui te coloco la url del la prueba manual para que veas que esta funcionando bien esta parte.

Presentación_foro_pdf1.pdf (43.2 KB)

hola, ya lo duplique hermano y tampoco manda el dato a la base de datos. :'(

Estoy haciéndolo al vuelo, pero creo que era algo así:

#include <Ethernet.h>
#include <SPI.h>
 
// Configuracion del Ethernet Shield
byte mac[] = {0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x00}; // Direccion MAC
byte ip[] = { 192,168,77,51 }; // Direccion IP del Arduino
byte server[] = { 192,168,77,99 }; // Direccion IP del servidor
EthernetClient client;
//float temperatura;
//int analog_pin = 0;
int valor = 0;
 
void setup(void) {
  Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
  delay(1000); // Esperamos 1 segundo de cortesia
  Serial.begin(9600);
}
 
void loop(void) {
  valor=55;
  //temperatura = analogRead(analog_pin);
  //temperatura = 5.0*temperatura*100.0/1024.0;
  //Display in Serial Monitor
  Serial.println(valor); //Return temperature to Monitor
  //Serial.println(" oC");
  // Proceso de envio de muestras al servidor
 
  Serial.println("Connecting...");
  if (client.connect(server, 80)>0) { // Conexion con el servidor
    client.print("GET /proyectos/ar_mysqli.php?valor="); // Enviamos los datos por GET
    client.println(valor);
    client.print(" HTTP/1.0");
    client.println("User-Agent: Arduino 1.0");
    client.println();
    client.println();
    Serial.println("Conectado");
  } else {
    Serial.println("Fallo en la conexion");
  }
  if (!client.connected()) {
    Serial.println("Disconnected!");
  }
  client.stop();
  client.flush();
  delay(9000); // Espero un minuto antes de tomar otra muestra
}

Si no te sale, echa un vistazo a este hilo, que te muestra cómo debe ir construida la petición GET.

amigos aqui les coloco la foto del terminal serial . Ojala y me puedan ayudar a resolver este problema que a lo mejor es una tonteria pero si fuera adivino ya fuera dado con ella je je je … saludos.

Presentación3_foro_pdf.pdf (36.2 KB)

hermano, la verdad que ya no se que hacer, lo extraño es que me funciono un día y al siguiente día no quiso mandar mas los daros a la base de datos. pruebo el scrip de php que inserta el dato valor a la base de datos y me funciona perfecto, no entiendo porque el código de arduino ya no lo hace si lo hizo todo un día . alguna sugerencia, gracias.

Amigos les cuento que el codigo me volvio a funcionar, no se que esta pasando aqui pero me volvio a funcionar, solo cambie el nombre de la variable y mas nada. me funciono perfectamente, esta mandando el valor 78 que esta en la variable sensor a la base de datos como queria.
Antemano muchas gracias por sus aportes amigos. aqui postare el codigo para que lo chequeen y lo comparen con el que les poste anteriormente. saludos.

#include <Ethernet.h>
#include <SPI.h>
 
// Configuracion del Ethernet Shield
byte mac[] = {0x90, 0xA2, 0xDA, 0x00, 0x9B, 0x00}; // Direccion MAC
byte ip[] = { 192,168,77,40 }; // Direccion IP del Arduino
byte server[] = { 192,168,77,99 }; // Direccion IP del servidor
EthernetClient client; 
//float temperatura;
//int analog_pin = 0;
int sensor = 0;
 
void setup(void) {
  Ethernet.begin(mac, ip); // Inicializamos el Ethernet Shield
  delay(1000); // Esperamos 1 segundo de cortesia
  Serial.begin(9600);
}
 
void loop(void) {
  sensor=70;
  //temperatura = analogRead(analog_pin);
  //temperatura = 5.0*temperatura*100.0/1024.0;
  //Display in Serial Monitor
  Serial.println(sensor); //Return temperature to Monitor
  //Serial.println(" oC");
  // Proceso de envio de muestras al servidor

   Serial.println("Connecting...");
  if (client.connect(server, 80)>0) {  // Conexion con el servidor
    client.print("GET /proyectos/ar_mysqli.php?valor="); // Enviamos los datos por GET
    client.print(sensor);
    client.println(" HTTP/1.0");
    client.println("User-Agent: Arduino 1.0");
    client.println();
    Serial.println("Conectado");
  } else {
    Serial.println("Fallo en la conexion");
  }
  if (!client.connected()) {
    Serial.println("Disconnected!");
  }else {
    Serial.println("Fallo en la conexion");
  }
  
  client.stop();
  client.flush();
  delay(60000); // Espero un minuto antes de tomar otra muestra
}