Cómo hacer un registrador de temperatura con Arduino

47

Como sabéis, a los Nergizos nos gusta mucho hacer experimentos donde es necesario registrar la temperatura a intervalos de tiempo regulares, por ello vamos a fabricar un registrador (datalogger) de temperatura sencillo y económico (menos de 20€) con Arduino. Este datalogger creará un archivo .CSV en una tarjeta microSD con los registros de temperatura que tomemos.

datalogger nergizo abierto

Para los que se han asustado al ver la foto, que sepan que realmente este brico es bastante sencillo y solamente es necesario unir los componentes tal y como aparecerá en el esquema, además tendremos que cargar en el Arduino el programa que os proporcionaremos.

Aunque existen dataloggers de temperatura comerciales, todos sabemos la satisfacción que da hacerse uno mismo una herramienta tan útil como esta, además, poco a poco iremos añadiendo funcionalidades a este registrador de temperatura, como por ejemplo conseguir que registre valores de corriente, voltaje o que prediga el periodo de apareamiento de las tórtolas domésticas.

 

Montaje del registrador de temperatura

La lista de materiales necesarios la tenéis al final del post, principalmente son tres: placa Arduino Uno, placa microSD y sonda de temperatura, esta última puedes encontrarla en varios formatos (inmersión, en placa, etc.).  El esquema de montaje sería el siguiente:

esquema montaje datalogger temperatura
Clic para ampliar

Para llevarlo a cabo recomiendo utilizar cables con punteras macho-macho, macho-hembra y hembra-hembra para así evitar soldar y hacer uniones extrañas.

Para dar tensión al sistema hemos utilizado una pila de 9V con un cable con jack (en lista de ingredientes al final) para conectar directamente al Arduino. En este cable hemos intercalado un interruptor ON/OFF para arrancar el registrador de temperatura o pararlo. Cada vez que lo apagamos y volvemos a encender empieza un nuevo registro en el mismo archivo DATALOG.CSV

datalogger nergizo sonda

Cada uno puede meter el montaje donde mejor vea, nosotros lo hemos hecho en una caja de empalmes eléctrica de 10x15cm para dejar suficiente hueco para futuras ampliaciones.

 

Programa Arduino

El programa que tenéis que cargar en la placa Arduino Uno lo podéis descargar de aquí (V2). Además necesitaréis las librerías SD y OneWire. El software para cargar el programa lo tenéis en la página oficial de Arduino.

Para cargar las librerías simplemente usar el menú Sketch -> Importar librería -> Add library y seleccionar los archivos zip que mencionamos en el párrafo anterior.

En el programa podréis ver un parámetro llamado “intervalo” que define cada cuanto tiempo se toman los datos de temperatura, por defecto es cada 5 segundos (5000ms), pero lo podéis modificar según el uso que le vayáis a dar.

datalogger nergizo sonda

Si algún Nergizo ve alguna mejora posible en el programa que hemos publicado, que nos la envíe e iremos actualizando con las distintas versiones que recibamos.

Registro de temperaturas

Para registrar los datos necesitarás una tarjeta microSD, así que ya puedes ir a desempolvar esos viejos Nokias que tienes en el cajón y sacar alguna tarjeta de 500Mb que aún tienen dentro.

El archivo que creará el datalogger en la tarjeta microSD es de tipo CSV, una vez abierto con Excel o similar nos dará la opción de “adaptarlo” quedando así:

tabla de registro de temperatura con arduino

 

Hay que tener en cuenta que si tienes configurado tu Excel para usar la “coma” como separador decimal tendrás que ejecutar “Reemplazar” para cambiar los puntos por comas en la columna de temperaturas.

A partir de esta tabla podemos hacer esas cosas que tanto nos gustan a los Nergizos, como por ejemplo meter la sonda en la nevera y hacer una gráfica como esta:

gráfico de registro de temperatura con arduino

Si algún Nergizo se anima a hacer este montaje, le agradecemos que comente que tal le ha ido o incluso nos envíe alguna foto del resultado final.

 

Ingredientes de la receta

Los precios que ponemos de Banggood son con gastos de envío gratuitos, aunque como sabéis el material tardará en llegar 2 ó 3 semanas.

Teniendo en cuenta que no usaremos todo el material ya que nos sobrarán cables y botones ON/OFF para futuros DIY, el coste total de este datalogger sería de menos de 20€.

 

47 Comentarios

  1. Esta Si!!!!, siempre le he tenido ganas a Arduino y nunca le he metido mano, voy a mirar en precios y hacer compra.
    PD. Deseando añadirle funcionalidades

    Thumb up 1 Thumb down 0

  2. Excelente entrada.
    Si saco un poco de ganas y tiempo intentaré hacerlo.
    Me ha venido muy bien lo de ahorrar soldaduras, porque lo he intentado con distintos soldadores y nunca he sido capaz de hacerlo bien. 🙂

    Thumb up 0 Thumb down 0

  3. Para los que no se vean con ánimos de meterse con Arduino, doy una alternativa.

    Yo hace un par de años uso el sistema de Wirelesstags (http://www.wirelesstag.net/index.html). Es cierto que la base vale 68$, pero cada sensor adicional solo vale entre 21 y 29$ (http://www.wirelesstag.net/index.html). Yo en casa los uso como detectores de fuga de agua y monitor de temperaturas de nevera y frigorífico, y en el curro lo uso para monitorizar la temperatura de los diferentes departamentos, sala de servidores, sala de SAIs, exterior, etc. Pueden monitorizar movimiento, temperatura, humedad, presencia de agua, se pueden integrar con ifttt.com y Smarthings

    Si alguien está interesado, ahí va un código del 15% de descuento para compras superiores a 72$: TAG-tt266d64

    Thumb up 2 Thumb down 1

    • Abner, lo tienes en el enlace a la sonda:

      Operating temperature range : -55°C to +125°C
      Accuracy over the range of -10°C to +85°C : ±0.5°C.

      Dentro de las sondas DS18B20 hay muchos tipos, cada una con sus rangos de funcionamiento y peculiaridades (inmersión, grado IP, etc) pero todas deberían funcionar en este montaje.

      De todas formas este es un montaje experimental y puede que aparezcan errores con el uso, no os espereis los resultados de un registrador calibrado por un centro de metrología. 🙂

      Thumb up 0 Thumb down 0

    • Básicamente conocer la evolución de las temperaturas en distintas estancias, o en el interior de la nevera, o del congelador, del horno …. no, del horno, mejor no

      Thumb up 1 Thumb down 0

    • Otra idea:

      Poner la sonda en un radiador de casa durante un mes y sacar en una hoja de cálculo el número de horas que ha funcionado la calefacción. Luego, con el importe que pagas en la factura puedes obtener el precio €/h de calefacción.

      Thumb up 1 Thumb down 0

      • Creo que me voy a animar pero la verdad que no soy nada manitas.¿existe alguna explicación más detallada (paso a paso) de como hacer las conexiones? Viendo la primera foto y el esquema siguiente no me aclaro

        Thumb up 0 Thumb down 0

        • No hay otra explicación, pero las dudas que te puedan surgir intentaremos resolverlas, no es complicado.

          Los cables con terminales que ponemos en la lista se “pinchan” directamente en las placas muy fácilmente. El único punto conflictivo es donde se unen 3 cables, ahí si no quieres soldar lo mejor es eliminar los terminales de los cables, pelarlos, unir los tres y encintar con cinta aislante.

          No son muchos cables pero es mejor ser ordenado a la hora de conectar todo ya que es fácil confundirse

          Thumb up 1 Thumb down 0

  4. Yo tengo ahora mismo dos sondas en una raspberry pi una a través de un usb y un conversor usb rs232 y otra directamente sobre el pin 4 de la rasp- berry además de la masa y 5v.
    Sin embargo este proyecto me parace muy interesante porque se puede dejar en cualquier sitio totalmente desatendida durante un tiempo.

    Thumb up 1 Thumb down 0

    • En principio no se necesita ninguna herramienta especifica si no vas a soldar los cables y vas a seguir el procedimiento que dije en mi comentario del 6/11 8:20.

      En cuanto a la sonda que dices supongo que se podría utilizar pero no con el programa que ponemos en el post y no sabría decirte que conexionado necesita. Quizás más adelante implementemos una sonda de humedad al montaje.

      Un saludo

      Thumb up 0 Thumb down 0

  5. Con lo que me ha costado entender el funcionamiento de Arduino… Estoy pendiente de recibir la sonda y algún que otro componente para armarlo del todo

    Thumb up 0 Thumb down 0

  6. Buff… apasionante tema, pero me veo un poco torpe…
    Ya me ha llegado el material, y por fin tengo un ratillo para cogerlo, pero… problemas que me encuentro:

    1 – La sonda de temperaturas que me ha enviado el tio Bg tiene los cables amarillo, rojo y verde… y no coinciden con los de vuestro esquema…
    ¿Que hago?

    2 – la resistencia de 4,7k… no la tengo porque… no estaba en la lista (perdona, pero como he comentado, me veo un poco torpe en estos temas…)
    De donde la saco? hace falta que sea exactamente de 4.7k?

    Thumb up 0 Thumb down 0

    • Hola Juan.
      Me alegro de que te animes a hacerlo aun “siendo un poco torpe”, yo también lo soy y al final lo he conseguido sin problemas.

      1.- Fíjate que en BG pone:
      “Or if it comes with RED, GREED, YELLOW color, and please conncet your probe as : Output lead : Red (VCC), Green(DATA), Yellow(GND) : )”

      Por lo tanto la roja es la que yo he puesto en rojo, la amarilla es la que he puesto en negro y la verde la otra.

      2.- Tienes razón, se me olvidó ponerla en la lista porque yo realmente la tenía ya, además en BG creo que no venden resistencias sueltas ya que tienen un valor muy pequeño (las venden solo en packs). Vete a cualquier tienda de eléctrónica y la pides tal cual “una resistencia de 4,7k” y te la venderan sin problemas por unos céntimos.

      Ya nos contarás que tal te ha ido.

      Un saludo

      Thumb up 0 Thumb down 0

    • Edu, esto no son termostatos, es un termómetro con registro de temperatura. Para poner varios u otro tipo de sensores habría que modificar el sketch y el esquema de conexionado, sería un proyecto distinto.

      Si lo que quieres hacer es muy diferente mejor busca por internet un proyecto que se adapte más a tu idea antes que modificar este.

      Thumb up 0 Thumb down 0

  7. Gracias, tengo 2 termometros de inmersion y un cadalimetro por impulsos. Sinó encuentro nada para los 3 a la vez tal fabrico 3 individuales

    Thumb up 0 Thumb down 0

    • Lo de las sondas de temperatura no creo que sea complicado, tendrías que poner otra y conectarla a otra entrada y duplicar las variables en el sketch, lo del caudalímetro es otra historia 🙂

      Thumb up 0 Thumb down 0

  8. Hola, ya he montado el circuito, pero todos los valores de temperatura que se guardan en el archivo csv, tienen el mismo valor: “-1000.00”.
    ¿Qué es lo que hago mal?
    Muchas gracias
    Un saludo.

    Thumb up 0 Thumb down 0

  9. Hola yo otra vez, repasando el circuito ya he visto donde estaba el fallo, me faltaba el cable entre 2 y la sonda.
    Un saludo.

    Thumb up 0 Thumb down 0

  10. Hola otra vez. Hoy he conectado el registrador y con la pila de 9 voltios ha estado funcionando más o menos 1 hora y media.Cambié el intervalo para que registrará cada 30 segundos y solo ha almacenado 169 valores. He medido el voltaje de la pila y tiene 5,83 voltios. ¿Solo puede funcionar el circuito esa hora y media cuando se alimenta con la pila de 9 voltios?
    Muchas gracias.
    Un saludo.

    Thumb up 0 Thumb down 0

    • Hola Pedro.

      La pila que viene con el adaptador me da a mi que no tiene mucha carga, prueba con una pila de 9V nueva y buena y nos cuentas.

      Un saludo

      Thumb up 0 Thumb down 0

      • Hola Carlos:
        Ya compré una pila nueva, y la conecté sobre las 8:00 de la mañana y el datalogger ha registrado temperaturas hasta las 14:45 horas. Una pregunta, tengo una fuente de alimentación antigua que da 12 voltios, hasta que tensión se le puede suministrar al arduino?
        Un saludo.

        Thumb up 0 Thumb down 0

        • Hola Pedro.

          Por la toma de jack puedes darle cualquier tensión entre 7 y 12v en continua, así que no creo que tengas problema.

          Un saludo

          Thumb up 0 Thumb down 0

  11. Hola. Montado y probado. El primer intento lo he realizado con una sonda 1820, y las temperaturas no eran las correctas. Marcaban entre 2 y 4 grados. La segunda la he realizado con una sonda 18B20, y las temperaturas son las correctas. Por lo visto es debido a que esta sonda hace una conversión de temperatura a 9 bits, y una tarda 200ms y la otra tarda 750ms.
    He usado una micro SD de 128Mb tomando temperaturas cada segundo, creando un fichero de 930Kb con 39813 valores. La columna TIEMPO a partir de la 1ª hora comienza a fallar, y el tiempo lo da con decimales. Tampoco es mucho problema, porque el que quiera saber el tiempo cuando toma los datos, son 3600 valores, que programándo la toma de datos cada 5 minutos, tiene para varios dias. En mi caso me dá igual, porque lo que me interesa son las temperaturas, para ver el funcionamiento de cámaras frigoríficas, desescarches, etc. Cumple sobradamente esta función. Lo tengo alimentado con un cargador USB de movil. Para cambiar el punto por la coma en excel pulsar Ctrl+B

    Thumb up 1 Thumb down 0

    • Me alegro de que hayas hecho el montaje y te sirva para tu propósito. La verdad es que nunca lo llegué a probar con más de 1h de toma de datos, pero intenteré comprobarlo para actualizar la versión y resolver ese fallo.

      Un saludo

      Thumb up 0 Thumb down 0

  12. Muchísimas gracias por el proyecto, yo lo voy a hacer, pero necesitaría que me indicaras como puedo poner en una salida digital una alarma de temperatura mínima o máxima, no se como poner en el programa que si la temperatura varia +/- 5 grados actúe en un rele para soñar en un zumbador de manera pulsante.

    También. Otra cosa que quiero hacer es poner a monitorizar varias neveras a la vez, no se si puedo usar un solo arduino o tengo que usar uno por cada nevera.

    Muchas gracias por todo

    Thumb up 0 Thumb down 0

    • Puedes hacerlo sin problemas, para ello tendrás que aprender algo de programación arduino y luego meter en el programa alguna sentencia if a mayores, no parece complicado.
      Si quieres monitorizar varias neveras supongo que también podrás hacer que registre dos sondas a la vez sin mucho problema después de aprender un poco de programación.
      Un saludo

      Thumb up 0 Thumb down 0

  13. Hola carlos, buenisimo el proyecto, tengo una mega 2560, se podrá mandar los datos a la memoria de la tarjeta, hasta que compre una placa microSD? o no es compatible el al archivo? Gracias

    Thumb up 0 Thumb down 0

    • Ni idea Gustavo, no he probado nunca una mega y no se como funciona exactamente el tema de la memoria interna. El archivo es un .csv normal, no se si podrás hacerlo la verdad.

      Un saludo

      Thumb up 0 Thumb down 0

      • Muchas gracias por la respuesta. No aclaré que era una arduino mega, de todas maneras no son caras las placas shields. saludos

        Thumb up 0 Thumb down 0

  14. Buenas,
    Quiero hacer una base de datos de temperatura como la que haz enseñado, pero necesitaría poner una pila que durara mucho mucho tiempo, por que no podré regresar a recoger los datos hasta 1 o 2 años después. ¿Sería posible? ¿Cómo lo haría?. Siento si la pregunta es tonta, pero la verdad es que soy muy malo con estas cosas,

    Gracias :))

    Thumb up 0 Thumb down 0

    • No se si esto te valdrá para dejar durante dos años funcionando, seguramente tendrás que modificar algunas cosas. Por otro lado, si quieres esa autonomía tendrás que buscar una batería de 9V con más capacidad, aunque 2 años me parece bastante, no se si encontrarás algo así, quizás deberías plantearte un sistema de carga solar o algo similar.

      Thumb up 1 Thumb down 0

      • Entiendo, y sin modificar nada, sólo la batería, como esa que me dices de 9V ¿Crees que podría aguantar 1 año de funcionamiento? ó ¿cuánto crees que podría aguantar como máximo?

        Otra cosa, con la caja que recomiendas lo podría dejar en campo abierto o debería pensar en otra.

        Gracias, en serio, me ayuda mucho :))

        Thumb up 0 Thumb down 0

        • No lo se Antony, supongo que poniendo una batería de más capacidad quizás podría, pero habría que hacer pruebas antes.

          La caja quizás valga, pero tendrías que sellar de alguna forma la tapa y los agujeros con la salida de cable, interruptor, etc..

          Thumb up 0 Thumb down 0

  15. Hola,

    Se podría cambiar la pila de 9v por un powerbank y alimentar el arduino por usb? otra cosa que se me ocurre es añadir un display que muestre la temperatura medida por la sonda.

    Thumb up 0 Thumb down 0

Dejar respuesta

Please enter your comment!
Please enter your name here