¿Cómo evoluciona la temperatura a lo largo del día? Para registrar estos datos de forma fiable, lo ideal es utilizar un registrador de datos de fabricación propia basado en un microcontrolador. En este proyecto se utiliza un sensor DS18B20 para medir la temperatura. Los valores registrados se almacenan a intervalos regulares en formato CSV (valores separados por comas) en una tarjeta SD y, a continuación, pueden evaluarse.
Hardware
Para poder almacenar fácilmente los datos y transferirlos posteriormente al ordenador, lo más adecuado es utilizar una tarjeta SD. Esta se puede controlar mediante la interfaz SPI.
Con el siguiente hardware, la implementación es muy sencilla gracias al uso de un escudo:
Sensor (p. ej., DS18B20)
Resistencia de 4,7 kΩ (surtido de resistencias)
En el ejemplo utilizamos el sensor DS18B20. Este se controla y lee a través de la interfaz OneWire. Sin embargo, también puede utilizar cualquier otro sensores .
Suelde el sensor al escudo de la siguiente manera:

Figura 1: Sensor en el escudo del registrador de datos
Software
Sensor
Para comunicarse con el sensor se necesitan las siguientes bibliotecas externas:
OneWire de Paul Stoffregen
DallasTemperature de jmchippa
Pueden descargarse como archivo .zip a través de los enlaces indicados de GitHub e incluirse en el IDE de Arduino en
Sketch > include Library > Add .zip Library …
.
También puede instalar la biblioteca a través del gestor de bibliotecas integrado.
Para probar el sensor y la estructura superior, cargue el siguiente programa en el microcontrolador:
| #include |
Explicación:
Al inicio del programa se crean los objetos de las clases de la biblioteca. El objeto oneWire regula la comunicación a través de la interfaz. El objeto sensor envía las órdenes exactas del sensor a través de esta interfaz, transferidas con un puntero.
Puede descargar el programa aquí .
RTC
El escudo cuenta con un módulo de reloj en tiempo real(RTC). Este se puede configurar y leer mediante la interfaz I2C. Una vez configurada la hora, esta se actualiza continuamente gracias a la pequeña batería, incluso sin alimentación eléctrica del microcontrolador.
Para comunicarse con el módulo RTC se necesita la siguiente biblioteca externa:
RTClib de Adafruit
Puede descargarlos como archivos .zip a través de los enlaces indicados de GitHub e incluirlos en el IDE de Arduino en
Sketch > include Library > Add .zip Library …
.
También puede instalar la biblioteca a través del gestor de bibliotecas integrado.
El siguiente programa se puede utilizar para ajustar la hora y probar la función:
| #include "Wire.h" |
Explicación:
Tras la integración habitual del archivo de biblioteca y la creación del objeto, en setup() se inicia la comunicación con el módulo RTC y, a continuación, se ajusta opcionalmente la hora actual.
Para poder ajustar esta hora, elimine el comentario y adapte la hora. Asegúrese de que esta línea vuelva a estar comentada, ya que de lo contrario la hora se sobrescribirá cada vez que se reinicie el sistema.
En loop() se muestran la hora y la fecha a través de la interfaz serie.
Puede descargar el código aquí .
Proceso del registrador de datos

Figura 2: Diagrama de flujo del programa del registrador de datos
Código del registrador de datos
Por último, cargue el programa completo en el microcontrolador:
| #include |
Explicación:
En comparación con los dos programas anteriores, solo se ha añadido la salida a la tarjeta SD. La función createNewLogFile() crea un nuevo archivo cuyo nombre se numera automáticamente de forma consecutiva.
Evaluación de datos
Una vez que haya registrado correctamente una serie de mediciones con el registrador de datos, los valores se representarán gráficamente en una hoja de cálculo.
En este tutorial se utiliza LibreOffice Calc, ya que es de código abierto y está disponible de forma gratuita en todos los sistemas operativos. Sin embargo, todos los demás programas son similares en cuanto a su funcionamiento y manejo.
1. Copie el archivo .txt generado por el registrador de datos de la tarjeta SD al disco duro de su ordenador. A continuación, haga clic con el botón derecho del ratón en el archivo y seleccione «Renombrar»; aquí cambie la extensión del archivo de .txt a .csv.
2. Abra el archivo csv con el programa de hoja de cálculo. Se abrirá una ventana de diálogo en la que podrá seleccionar los símbolos de separación. Seleccione «coma» y, tras comprobar la vista previa en la parte inferior, confirme la importación con «Aceptar».

Figura 3: Ventana de importación
3. Dado que el microcontrolador muestra los valores del sensor con un punto como separador decimal, pero el programa espera una coma, ahora debe sustituirlo.
Para ello, abra el Buscar y reemplazar . Aquí puede sustituir todos los puntos por comas.
4. Ahora seleccione la columna con los milisegundos y los valores del sensor manteniendo pulsada la tecla Ctrl y haciendo clic en el nombre de la columna, y seleccione en Insertar, Diagrama...
5. En esta ventana puede seleccionar ahora el tipo de diagrama. Para una evolución del valor del sensor se recomienda el XY (diagrama de dispersión).

Figura 4: Ventana Gráfico
Aquí puede configurar el tipo de representación y el tipo de línea.

Figura 5: Gráfico final con valores medidos
Conclusión
El registrador de datos se puede ampliar con un botón y un LED para permitir indicaciones de estado y funciones de control sencillas, como el inicio y la parada.
Las posibilidades de aplicación se ofrecen sobre todo en la medición medioambiental, en la supervisión del clima interior o en escenarios similares en los que se deben registrar los valores de los sensores.
Con los pasos mostrados, ha conocido una base económica y flexible sobre la que puede desarrollar fácilmente sus propios proyectos.
Disfrute recreándolo :)






