Proyecto – Grabar datos de temperatura (Datalogger)

Enunciado

Hacer un datalogger de los datos de temperatura leídos por un Arduino y grabarlos en una Raspberry Pi que tenga un servidor LAMP instalado. Se grabarán en una tabla de una BBDD MySQL los datos de temperatura que mande Arduino cada 5 segundos. También se grabarán en un servidor público cada 30 segundos, en este caso en www.aprendiendoarduino.com.

Este ejercicio consiste en programar un Arduino que manda datos a un servidor mediante request GET HTTP. Los datos que mandará Arduino son la temperatura leída por el sensor de temperatura cada 5 segundos y el número de arduino con el formato: “arduino=5&temperatura=21.8”. Estos datos son recogidos por un script php (el que es llamado por el HTTP request de Arduino) que se encarga de grabarlos en la base de datos correspondiente.

Usamos Push: Arduino se comunica con el servidor para mandarle los datos http://www.tweaking4all.com/hardware/arduino/arduino-ethernet-data-push/

Información y referencias usadas

Para poder usar una Raspberry Pi en este ejercicio, necesitamos instalar un servidor LAMP, tutoriales de como hacerlo:

También podemos instalar Postfix en Raspberry Pi como servidor SMTP para mandar correos desde nuestro Arduino al ocurrir un evento como por ejemplo superar un umbral de temperatura:

NOTAS:

  • En el ejemplo se usa una IP fija, pero se usará IPs dinámicas asignadas por DHCP.
  • La MAC de cada Arduino debe ser diferente, usaremos la MAC “0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xYY”, donde YY es el número del kit de Arduino
  • En la llama a grabar datos en la línea “/grabaDatos.php?arduino=YY&temperatura=” donde YY es en número de kit de Arduino.
  • Poner la IP correcta de la Raspberry Pi

Código para DHCP:

#include <SPI.h>

#include <Ethernet.h>

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xYY };

EthernetClient client;

void setup() {

 // start the serial library:

 Serial.begin(9600);

 // start the Ethernet connection:

 if (Ethernet.begin(mac) == 0) {

   Serial.println(“Failed to configure Ethernet using DHCP”);

   // no point in carrying on, so do nothing forevermore:

   for(;;)

     ;

 }

 // print your local IP address:

 Serial.println(Ethernet.localIP());

}

Github: https://github.com/jecrespo/Aprendiendo-Arduino/tree/master/Otros/DHCP_Arduino

Esquema de Conexión

Solución

BBDD pública: https://qvm602.aprendiendoarduino.com/

Gráficas: http://www.aprendiendoarduino.com/servicios/graficas.htm

Un pensamiento en “Proyecto – Grabar datos de temperatura (Datalogger)

  1. Pingback: Día 10. Proyectos Arduino – Aprendiendo Arduino

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s