Cómo hacer un registrador de temperatura con Arduino

53

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:

Por cierto, ¿sabías que tenemos una guía en pdf titulada “Guía definitiva para bajar tu factura de la luz” donde podrás leer cómodamente todo lo que necesitas para ahorrar en tu factura sin tener que saltar de post en post y de web en web?.

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€.

 

53 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

    • Me alegro que alguien se anime a hacerlo!! En el backroom de Nergiza ya estamos en proceso de ampliación del aparatejo, aunque estas cosas tardan bastante desde que nos ponemos a ello hasta que publicamos el tutorial.

      • Carlos una sugerencia para la V2, Añadir un reloj. como este http://www.banggood.com/es/5Pcs-Tiny-RTC-I2C-AT24C32-DS1307-Real-Time-Clock-Module-For-Arduino-p-951559.html

        Asi saber a que horas son los cambios de temperatura. y no tienes que ir encendiendolo a las 00.00 :-D.

        Yo tengo el medidor de consumo electrico con arduino. Espero ver el vuestro para mejorar el mio.

        Gracias por la web

        • Gracias por la idea. Inicialmente lo pensé pero no lo incluí por no complicar más el montaje. Para la próxima quizás lo ponga.

  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. 🙂

  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

    • 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. 🙂

  4. Para los interesados en el tema del Arduino enlazo una página que leí hace tiempo y que me pareció bastante interesante, saludos:
    http://www.luisllamas.es/tutoriales-de-arduino

    • 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

    • 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.

      • 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

        • 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

  5. 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.

  6. ¿Que herramientas se necesitan? y ¿ sería posible añadir un sensor de humedad y temperatura? Por ejemplo: http://www.banggood.com/es/Wholesale-NEW-DHT22-or-AM2302-Digital-Temperature-Humidity-Sensor-Replace-SHT11-SHT15-Logger-p-47240.html

    • 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

  7. 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

    • Ya nos contarás que tal te va. Nosotros ya estamos trabajando en la ampliación del aparato para que mida alguna cosa más.

  8. 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?

    • 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

    • 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.

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

    • 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 🙂

  10. 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.

  11. 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.

  12. 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.

    • 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

      • 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.

        • 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

  13. 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

    • 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

  14. 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

    • 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

  15. Muchas gracias por la respuesta
    Me gustaría ponerme en contacto para poder llegar a un acuerdo rápido y que me ayudes a hacer las modificaciones en tu programación
    Electromedicina@me.com

  16. 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

    • 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

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

  17. 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 :))

    • 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.

      • 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 :))

        • 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..

  18. Muy interesante el articulo!! Me viene genial. Muchas gracias.

    Aquí os dejo una web con otros proyectos de arduino, seria muy interesante enlazar este proyecto con algunos de esta web.

    http://www.tuelectronica.es/tutoriales/arduino.html

  19. 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.

  20. Hola chicos. He seguido el manual al pie de la letra y lo he montado y veo que funciona. Pero quiero mejorarlo aún más, le he instalado el modulo reloj DS3231 para que me registre la fecha y la hora de la lectura de la temperatura. Mi idea es que me tome la lectura cada día y a intervalos de cada hora; pero no hay manera estoy atrancado y no lo consigo.

    • No debería ser difícil, has leído esto? https://programarfacil.com/blog/arduino-blog/reloj-con-arduino-rtc/#utm_source=feedly&utm_medium=rss&utm_campaign=reloj-con-arduino-rtc

  21. Hola Carlos,
    Estoy muy pez con esto del arduino, pero creo que tu tutorial es el que más se ajusta a lo que yo deseo conseguir; Un dattaloger, que en lugar de temperatura , registre humedad del suelo. Quiero utilizar un sensor tipo FC-28.
    Necesitaría adaptar el código para encontrar la manera de que las lecturas se hicieran cada 15 minutos y en 2 sensores a la vez; sensor1 sensor2. Las lecturas son analógicas, pues me conviene encontrar el rango completo desde 1023 a 0, para la toma de decisión sobre el riego, no solamente un umbral Low – High.
    Sinceramente ,aunque voy poco a poco entendiendo algo de arduino… me cuesta mucho llegar a programar el codigo…y tengo la impresión que no sería tan dificil, que se trata de solo algunos pequeños cambios.
    Si me pudieras ayudar estaría muy agradecido. En tiempos de sequía como estos que corren cualquier ayuda en la gestion del agua es vital!
    Saludos y gracias.

    • Lo siento pero no te puedo ayudar con tu proyecto, intentalo en el foro (nergiza.com/foro) o contrata a alguien a través de fiverr, es muy económico y solucionarás rápido el tema

  22. Hola Carlos es lo q ando buscando. Por ahora me aventuro al proyecto q propones y luego ampliar para mandar señal con Bluetooth y q Active alarma

Dejar respuesta

Please enter your comment!
Please enter your name here

Los datos de carácter personal que proporciones rellenando el presente formulario serán tratados por Carlos Gutiérrez (Nergiza) como responsable de esta web. La finalidad de la recogida y tratamiento de los datos personales solicitados es gestionar los comentarios que realizas en este blog y/o suscribirte a los mismos. Legitimación: Consentimiento del interesado. Te informo que los datos que me facilitas estarán ubicados en los servidores de Cubenode (proveedor de hosting de Nergiza) dentro de la UE. Política de privacidad de Cubenode https://cubenode.com/policies/politicas_privavidad/. El hecho de que no introduzcas los datos de carácter personal que aparecen en el formulario como obligatorios podrá tener como consecuencia que no pueda atender tu solicitud. Podrás ejercer tus derechos de acceso, rectificación, limitación y suprimir los datos en carlos@nergiza.com así como el derecho a presentar una reclamación ante una autoridad de control. Puedes consultar información adicional sobre Protección de Datos en: https://nergiza.com, así como consultar mi política de privacidad.