• Autor de la entrada:
  • Categoría de la entrada:Arduino

Qué ocurre cuando necesitamos hacer un experimento y en el medir variables físicas como temperatura, presión, o posición para luego poder analizarlas. En una situación en la que necesitamos almacenar datos en la placa y de manera masiva podemos recurrir al uso de un archivo CSV en Arduino.

No nos engañemos casi todos cuando tenemos que hacer análisis de datos recurrimos al clásica pero socorrida hoja de cálculo. ¡Es una de las mejores amigas de un ingeniero!

Archivo CSV
Archivo CSV

Por eso en ocasiones, lo mejor si usamos electrónica para recoger la información que nos proporciona un sensor es que la guardemos en formato CSV.

CSV significa comma-separated values y es un tipo de archivo de texto que nos permitirá abrir los datos directamente con una hoja de cálculo como si una tabla se tratara.

Un ejemplo de archivo CSV en el que se almacena la temperatura de una habitación puede ser:


hora,temperatura
18:00,26
18:30,26
19:00,26
19:30,25
20:00,24
20:30,24


Si juntamos Arduino, lector de tarjetas, tarjeta MicroSD y sensores podremos dominar el mundo de la adquisición y análisis de datos.

Archivo CSV con Arduino MicroSD

Código para crear un archivo CSV en Arduino

#include <SD.h>

const int chipSelect = 4;

void setup()
{

// Nos aseguramos que el chipselect de ethernet esta en salida
//para evitar problemas.
pinMode(10, OUTPUT);

//Comprobamos si esta disponible la MicroSD
if (!SD.begin(chipSelect)) {
return;
//Detenemos la ejecución en el caso de que tengamosproblemas con la MicroSD
}
}

void loop()
{
// Creamos el String para almacenar lo que vayamos a mandar al archivo
String dataString = "";

int temperatura = analogRead(A0);
//Calculamos la temperatura
temperatura = ((5.0*temperatura*1000.0/1024.0)-500)/10;
//Guardamos la temperratura en un string
dataString += String(temperatura);
dataString += ";";

//Abrimos el archivo datalog.csv
File dataFile = SD.open("datalog.csv", FILE_WRITE);

// Si el archivo se ha abierto correctamente
if (dataFile) {
//almacenamos el string en elarchivo
dataFile.println(dataString);
dataFile.close();
}
delay(500);
}

Si no te ha convencido el uso de archivos CSV puedes usar otras técnicas para almacenar datos de lecturas, como el envio a una base de datos MySQL.

Enrique Gómez

Ingeniero Electrónico Industrial y Automático, amante de la comunicación audiovisual y de la divulgación ingenieril y científica. Friki de Star Wars, cuenta más de lo que parece. Puedes saber más sobre mi y sobre mis trabajos en www.enriquegomez.me