Proyecto DIY: Creación de un termómetro infrarrojo con Arduino

¿Qué es un sensor térmico infrarrojo?

Un sensor infrarrojo (IR) es un dispositivo que detecta y mide la radiación infrarroja, una forma de energía invisible al ojo humano pero que podemos percibir como calor. Esta radiación es emitida por todos los objetos en el universo que emiten alguna forma de calor. La cantidad de radiación infrarroja emitida por un objeto aumenta con la temperatura, de ahí que estos sensores sean frecuentemente empleados como sensores de temperatura sin contacto.

Aunque un cuerpo emita un espectro continuo de radiación térmica, el ojo humano solo es sensible a la región visible del espectro electromagnético (EE). Incluso a temperaturas muy altas (de varios miles de grados Kelvin), la inmensa mayoría (más del 90%) de la radiación térmica emitida es invisible, empezando por la zona del infrarrojo (IR) del EE.

El sensor infrarrojo funciona captando la radiación infrarroja de los objetos que se encuentran en su campo de visión. Luego, transforma esta radiación en una señal eléctrica que puede ser interpretada por un microcontrolador o cualquier otro dispositivo de procesamiento.

Espectro Electromagnetico

Aplicaciones prácticas de los sensores térmicos infrarrojos

Los sensores térmicos infrarrojos tienen una amplia gama de aplicaciones prácticas en varias industrias y campos de estudio. Aquí se enumeran algunas de ellas:

  1. Detección de movimiento y seguridad: Los sensores infrarrojos son fundamentales en sistemas de seguridad y alarmas, ya que detectan el movimiento a partir de cambios en el calor del ambiente.

  2. Monitorización de la temperatura corporal: En el campo médico, se utilizan termómetros infrarrojos sin contacto para medir la temperatura corporal. 

  3. Control de procesos industriales: En la industria, se utilizan para monitorear y controlar la temperatura durante procesos que implican altos niveles de calor, como la fundición de metales o la fabricación de vidrio.

MLX90614

El MLX90614 es un sensor de temperatura infrarrojo sin contacto fabricado por Melexis. Puedes ver el datasheet completo aquí.

Aquí hay algunas características clave del MLX90614:

  1. Alta precisión: Proporciona una precisión muy alta en sus lecturas de temperatura, con una precisión de ± 0.5°C en el rango de -40°C a +125°C para la temperatura del ambiente.

  2. Rango de temperatura amplio: Puede medir la temperatura en un rango bastante grande, desde -70 hasta +380°C, lo que lo hace útil para una variedad de aplicaciones.

  3. Salida digital: El MLX90614 proporciona una salida digital a través del protocolo I2C, lo que facilita su conexión a microcontroladores como Arduino.

  4. Campo de visión ajustable: Dependiendo del lente utilizado, el MLX90614 puede tener un campo de visión desde 35 grados hasta 90 grados.

  5. Inmunidad al error de emisividad: A diferencia de otros sensores térmicos infrarrojos, el MLX90614 es inmune a los errores causados por la variación en la emisividad del objeto medido.

Uso con arduino

Diagrama

diagrama

La conexión de este sensor es realmente sencilla, gracias a que utiliza el protocolo I2C solo necesita dos cables para comunicarse.

Conecta VIN a 5V del arduino, GND a GND, SDA a SDA del Arduino que en el UNO es el pin A4, y SCL que en el Arduino UNO es A5.

Programación

 El primer paso es importar la librería de Adafruit.

Vamos a Sketch>Include Library>Manage Libraries. Instalamos y reiniciamos el IDE.

 

 El siguiente código lee las temperaturas ambiente y del objeto del sensor MLX90614 cada medio segundo y las imprime en el monitor serial.

Código

  1. #include <Adafruit_MLX90614.h> Esta línea incluye la biblioteca MLX90614 de Adafruit.

  2. Adafruit_MLX90614 mlx = Adafruit_MLX90614(); Aquí se crea una instancia del sensor MLX90614 llamada 'mlx' utilizando la clase Adafruit_MLX90614.

  3.  mlx.begin(); inicia la comunicación con el sensor MLX90614. 

  4. Serial.begin(9600); inicia la comunicación serial a una velocidad de transmisión de datos de 9600 baudios.

  5. mlx.readAmbientTempC() lee la temperatura ambiente en grados Celsius y mlx.readObjectTempC() lee la temperatura del objeto (la temperatura de lo que el sensor está apuntando) en grados Celsius. También se puede leer en grados Fahrenheit cambiando por mlx.readAmbientTempF() y mlx.readObjectTempF().

Resultados

monitor serial

En monitor serial debes ver algo parecido, en este caso se le acerco un cautín pudiendo observar como cambia la temperatura medida.

Conclusión 

Con sus destacadas características y facilidad de uso, el sensor MLX90614 se presenta como una excelente opción para incorporar en tus proyectos. Nuestro objetivo es que este tutorial te proporcione una guía valiosa y contribuya enormemente a tus iniciativas de desarrollo. Deseamos que encuentres en él la ayuda necesaria para sacar el máximo provecho al sensor MLX90614.

Productos Relacionados

Ver artículo

Ver artículo

Temperatura

Deja un comentario