Arduino insertar datos en Mysql(Hosting)

Para todos aquellos que están interesados en insertar datos en un servidor mysql que se encuentra en un hosting, e recopilado información de la red e hice un código, el cual envía la información capturada de un dht110 a un servicio de hosting que eh contratado.

Espero que esto sea de ayuda para todos aquellos que están interesados en el mundo del desarrollo.
Cualquier duda sera aclarada.

Lo primero que debemos hacer es crear una tabla en nuestra base de datos con phpmyadmin.
Esta fue creada con tres campos:

  •  Id,
  • Valor, donde se aloja el valor capturado del arduino y dht110
  • Timestamp, esto me permite saber que día y hora fue tomado el valor.

Muestro una imagen de como fue creada.

Código del archivo php,llamado en este caso conexion.php, este es el que realiza la inserción de datos en nuestra base de datos.
<?php
# FileName=»Connection_php_mysql.htm»
# Type=»MYSQL»
# HTTP=»true»
 $timestamp = date(‘Y-m-d H:i:s’); // Captura la hora y fecha
 $valor=$_GET[‘valor’];
$conexion = mysql_connect(‘localhost’,‘usuario de la base’,‘contraseña’)or die (‘Ha fallado la conexión: ‘.mysql_error());
mysql_select_db(‘Nombre de la base’)or die (‘Error al seleccionar la Base de Datos: ‘.mysql_error());
$sql=»INSERT INTO Tabla(valor, timestamp ) values(‘».$valor.»‘, ‘».$timestamp .»‘)»;
$res=mysql_query($sql,$conexion);
?>
 
Código del arduino

#include <Ethernet.h>
#include <SPI.h>
#include «DHT.h»
#define DHTPIN 7
#define DHTTYPE DHT11 
DHT dht(DHTPIN, DHTTYPE);

// Configuracion del Ethernet Shield
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFF, 0xEE}; // Direccion MAC
byte ip[] = { 192,168,10,177 }; // Direccion IP del Arduino
byte server[] = { 190,105,235,232 }; // ip del Hosting
IPAddress dnServer(8,8,8,8);
// the router’s gateway address:
IPAddress gateway(192, 168, 10,1);
// the subnet:
IPAddress subnet(255, 255, 255, 0);
EthernetClient client; 
String readString=String(30); 
int analog_pin = 0;

void setup(void) {
   Ethernet.begin(mac, ip, dnServer, gateway, subnet); // Inicializamos el Ethernet Shield
  dht.begin();
  delay(1000); // Esperamos 1 segundo de cortesía
  Serial.begin(9600);
  
}

void loop(void) {
  int h = dht.readHumidity();// Lee la humedad
  int t= dht.readTemperature();//Lee la temperatura

  if (client.connect(server, 80)>0) {
  Serial.println(«connected»);  // Conexión con el servidor
    
    client.print(«GET http://www.xxxx.com//arduino/conexion.php?valor=»); // Enviamos los datos         por GET de temperatura a nuestro archivo php que esta en nuestro hosting
    client.print(t); // valor de temperatura
    client.println(» HTTP/1.0″);
    client.println(«User-Agent: Arduino 1.0»);
    client.println();
     
    
  }
  client.stop();
  client.flush();
  delay(60000); // Espero un minuto antes de tomar otra muestra
}

9 comentarios

Añade el tuyo →

Hola,
Tomar las variables que envías del arduino. Una variable por humedad y otra por temperatura.
$valor=$_GET['valor'];
$valor=$_GET['valorhumedad'];

El inserte seria de esta manera:
$sql="INSERT INTO Tabla(valor, timestamp, valorhumedad ) values('".$valor."', '".$timestamp ."', '".$valorhumedad ."')";

Deja una respuesta