Archivo de la etiqueta: datalogger

Datalogger GPS con exportación a Excel y Google Maps

¿Has pensado alguna vez en registrar las rutas que realizas en bicicleta, andando, corriendo, con tu coche o en moto?

Existen multitud de dispositivos en el mercado para registrar tus tracks (trayectos) tanto para deporte como para temas de seguridad o seguimiento de flotas de vehículos, pero… ¿por qué no hacelo tú mismo?

Con ArduinoBlocks vamos a construir y programar un datalogger (registrador de datos) de nuestros trayectos de una forma muy sencilla, además vamos a poder volcar esos datos registrados en formato CSV para tratarlos en programas como Excel o poder visualizar los datos sobre un mapa tipo Google Maps….

Material necesario:

Esquema de conexión:

SD MOSI -> Pin 11

SD MISO -> Pin 12

SD SCK -> Pin 13

SD CS -> Pin 4

GPS RX -> Pin 2

GPS TX -> Pin 3

Led (a través de resistencia 220 Ω a GND) -> Pin 5 (PWM)

Programa:

Inicialización de los módulos:

Bucle principal del programa:

El led está encendido a muy poca intensidad durante el funcionamiento del programa, por un lado se comprueba contínuamente si hay algún dato pendiente de procesar recibido por el puerto serie (desde la consola), por otro lado cada 5 segundos se comprueba si el GPS tiene datos válidos y en ese caso se guarda un registro en la tarjeta SD.

Procesar comando (un número recibido desde la consola serie):

Si recibimos un “1” volcamos todo el contenido del archivo de registro a través del puerto serie (para visualizarlo en la consola)

Si recibimos un “2” borramos el archivo de registro, para hacer un reset y empezar un nuevo registro vacío.

Registrar fecha/hora y posición en una línea en el archivo de registro:

El formato es CSV separado por “;”

Formato de línea guardado:   d/m/y h:m:s ; latitud ; longitud ; altitud

Resultado del funcionamiento:

Probamos a realizar un recorrido con el GPS datalogger, cuando el receptor GPS obtiene una posición correcta vemos como cada 5s se ilumina intensamiente el led indicando que se realiza el registro de datos.

Para mover el datalogger más fácilmente, se adapta a una versión “portátil” del montaje… el tupperware nunca falla! 😉

Desde la consola enviando el valor “1” podemos recibir todos los datos almacenados:

Copiamos y pegamos todas las líneas de log en un editor de textos (bloc de notas o similar) y lo guardamos con extensión “.csv”

(Otra opción sería desconectar el datalogger, extraear la tarjeta y copiar el archivo “gps.csv” al PC)

Con doble click podemos abrirlo en Excel o LibreOffice Calc para analizar y procesar la información. Añadiremos los nombres de las columnas para poder procesar la información automáticamente con otra aplicación. Guardamos en formato Excel (.xls)

En la siguiente web podemos subir el archivo Excel generado y obtener el archivo KML compatible con Google Earth:

https://www.earthpoint.us/ExcelToKml.aspx

Una vez generado podemos abrir y visualizar todos los puntos sobre el mapa (al usar la altitud los puntos se muestran según la elevación si no se quiere simplemente eliminamos la columna de la altitud del excel).

Posibles mejoras y funcionalidades del proyecto:

  • Añadir un pulsador o botón para iniciar y parar la recogida de datos cuando queramos.
  • Modificar el tiempo de registro (cuanto menor tiempo entre toma de registros tendremos más precisión pero también ocuparán más los datos)
  • Añadir más campos al archivo de registro (por ejemplo la velocidad).
  • No recoger datos cuando no hemos recorrido una distancia mínima desde el último punto recogido o cuando la velocidad actual es muy baja (por ejemplo menor que 2 km/h) y así no registrar datos mientras no nos movemos.
  • Añadir una pantalla LCD para mostrar información básica.

Enlace al proyecto compartido:

http://arduinoblocks.com/web/project/869

Y recuerda… si quieres ver más proyectos resueltos y un manual completo del entorno ArduinoBlock tienes en Amazon disponible el libro oficial…

https://www.amazon.es/ArduinoBlocks-Programaci%C3%B3n-visual-bloques-Arduino/dp/1535513284/

Compartir

Nuevos bloques para tarjetas SD

Los nuevos bloques para trabajar con tarjetas SD o microSD (según el módulo o shield utilizado) nos permiten guardar datos en archivos almacenados en la tarjeta. Esto nos abre un mundo de posibilidades a la hora de almacenar datos para su posterior procesamiento o descarga. Una utilización típica de las tarjetas SD sería como “data logger” (registro o histórico de datos)

 

Los módulos o shields de tarjetas SD se conectan por interfaz SPI (pines 11,12,13) y un pin para CS (normalmente conectado en el pin 4):

Antes que nada, debes actualizar a la versión 2 de ArduinoBlocks-Connector si no los has hecho ya…

Descripción de los bloques en ArduinoBlocks para trabajo con archivos en tarjetas SD:

Los nombres especificados de archivo deben ser con formato corto 8.3  (máximo 8 caracteres para el nombre y 3 para la extensión, Ejempo “log.txt”). Se recomienda evitar espacios y caracteres raros en los nombre de los archivos.

  • Iniciar SD: Inicializa el uso del módulo SD indicando los pines donde está conectado:
  • Imprimir: Escribe un texto en un archivo dentro de la SD. Añade una línea al final del archivo. Funciona como print o println
  • Escribir byte: Escribe un un byte al final del archivo indicado, esto permite trabajar con archivos binarios o con archivos de texto a nivel de caracter.

  • Leer byte: Permite leer un carácter (en caso de ser un archivo de texto) o un valor numérico si el archivo lo tratamos como un archivo binario (valor de un byte => 8 bits => valor entre 0…255). Debemos indicar la posición de donde leer (podemos usar el bloque “Tamaño de archivo” para determinar hasta donde podemos leer).

  • Eliminar archivo: Permite eliminar un archivo de la tarjeta SD.
  • Tamaño de archivo: Obtiene el tamaño en bytes del archivo.
  • Leer cada byte: permite recorrer un bucle para leer el archivo y obtener el valor del byte o caracter leído en cada iteración.

Ejemplo: Volcado del contenido de un archivo por la consola sere:

Ejemplo: Registrar la temperatura y humedad cada minuto:

http://arduinoblocks.com/web/project/866

Otros proyectos usando los bloques de tarjetas SD:

Datalogger GPS con tarjeta SD/microSD

Compartir