Las pistolas medidoras de temperatura sin contacto se han vuelto populares durante la pandemia de Covid. Varios lugares han utilizado este dispositivo para garantizar los protocolos de seguridad. Sin embargo, una de las desventajas de las pistolas medidoras de temperatura sin contacto disponibles actualmente es que miden la temperatura corporal, no la distancia entre el cuerpo (objeto) y el sensor.
La distancia del cuerpo al sensor es el factor más importante para medir correctamente la temperatura. El sensor utilizado para medir la temperatura sin contacto en este tipo de armas sólo puede leer con precisión la temperatura de la superficie de un objeto (en este caso, el cuerpo humano) si la distancia al objeto es inferior a 5 cm. Si medimos la temperatura corporal a 10 o 15 cm de distancia, existe la posibilidad de error y lectura inexacta.
Para garantizar una lectura correcta de la temperatura, debemos mantener el sensor de la pistola a menos de 5 cm del cuerpo. En este proyecto, crearemos una pistola de temperatura inteligente sin contacto con algunas modificaciones y mejoras en la parte del sensor y del software para garantizar su precisión en la medición correcta de la temperatura del cuerpo humano que considera la distancia como parámetro.
La pistola medirá primero la distancia al cuerpo y, cuando el cuerpo esté a menos de 5 cm, medirá su temperatura. No mide la temperatura directamente, sino a distancia. Si el cuerpo está lejos del sensor de la pistola, emite un mensaje para acercarse, y cuando el cuerpo está dentro del rango de 5 cm, mide la temperatura corporal. Esto proporciona una lectura precisa y soluciona el problema de la lectura incorrecta de la temperatura corporal.
Llamamos a esta pistola medidora de temperatura sin contacto " inteligente " porque mide la distancia y lee la temperatura corporal varias veces, dando un valor promedio preciso. También lee la temperatura corporal más allá del rango normal y proporciona una notificación de alerta.
Esta pistola está construida con el sensor de medición de temperatura sin contacto Melexis MLX90614, el sensor UDM HC SR04, Arduino, NANO y OLED. La temperatura corporal medida con la pistola se compara con un termómetro digital convencional.
Aquí hay una instantánea del modelo prototipo.

Un prototipo de pistola medidora de temperatura inteligente sin contacto.
Ahora comencemos a construir esta arma. Primero, cubriremos el diagrama de bloques del sistema.
Diagrama de bloques del sistema
Los principales componentes básicos de este sistema incluyen:
- El sensor de medición de temperatura sin contacto, MLX90614
- El sensor de medición de distancia ultrasónico (UDM), HC SR04
- Una pantalla OLED de dos colores de 1 pulgada
- La placa de desarrollo Arduino NANO
- Algunos otros componentes como LED, un mini zumbador, un botón, etc.

Un diagrama de bloques del prototipo completo.
El sensor MLX 90614: un sensor de temperatura sin contacto que mide la temperatura de la superficie en un rango corto de 5 cm y proporciona una salida de lectura de temperatura al microcontrolador Arduino a través de comunicación IIC.
El sensor HC SR04 UDM: un sensor de medición de distancia ultrasónico que mide la distancia a cualquier objeto frente a él, proporcionando una salida PWM (el ancho del pulso varía dependiendo de la distancia a un objeto) al microcontrolador Arduino.
Arduino NANO: que realiza estas tareas:
- Lee y obtiene la temperatura del cuerpo humano utilizando el sensor MLX
- Mide la distancia a un objeto (cuerpo humano) utilizando el sensor UDM
- Muestra la temperatura corporal y la distancia en la pantalla OLED
- Da una indicación audiovisual mediante LED y zumbador.
- Recibe entradas del usuario desde los botones.
Una pantalla OLED: esta mini pantalla OLED de dos colores (amarillo y azul) de 0,96 pulgadas funciona con el protocolo IIC. Muestra la distancia al objeto, la temperatura de la superficie del objeto y algunos mensajes.
Pulsadores: hay uno para tomar lectura (temperatura corporal y distancia) y otro para cambiar la lectura de temperatura de ó C a ó F y viceversa.
Un LED y un timbre: El LED parpadeante y un pitido de timbre se utilizan para la indicación audiovisual de la temperatura corporal. El LED parpadea cuando se mide la temperatura corporal y se muestra en un OLED. Al mismo tiempo, suena el timbre. El LED también parpadea cuando la lectura de temperatura cambia de ó C a ó F y viceversa.
Antes de construir el circuito, deberás recolectar los elementos necesarios.
Aquí está la lista…
Objetos requeridos:
1. El sensor MLX90614

Sensor MLX90614
2. El sensor HC SR04

Sensor HC SR04
3. La pantalla OLED

pantalla OLED
4. El botón (pequeño y micro)

El botón utilizado en este proyecto.
5. Un LED

Un LED
6.Arduino NANO

Arduino UNO
Diagrama de circuito

El diagrama del circuito con Arduino y la pantalla OLED.
El circuito está construido con pocos componentes y se puede construir rápidamente en una PCB de uso general (o también en una placa de pruebas).
- El sensor MLX90614 tiene cuatro pines (1) VIN (2) GND (3) SCL y (4) SDA. El sensor funciona a 5 V, por lo que el pin VIN está conectado al pin de salida de 5 V del Arduino y el pin GND está conectado al circuito y a tierra de la placa Arduino. Los pines SCL y SDA son pines de reloj en serie y de datos en serie para la comunicación IIC. Están conectados a los pines A4-SDA y A5-SCL de la placa Arduino, respectivamente.
- El sensor HC SR04 tiene cuatro pines (1) Vcc (2) Gnd (3) Trig y (4) Echo. El sensor requiere 5 V, por lo que su pin Vcc está conectado al pin de salida de 5 V de la placa Arduino y el pin GND está conectado a la tierra del circuito. El pin de disparo (entrada) está conectado al pin digital D2 y el pin de eco (salida) está conectado al pin D3 de la placa Arduino.
- Nuevamente, la pantalla OLED tiene cuatro pines (1) Vcc (2) Gnd (3) SCL y (4) SDA. Su voltaje de funcionamiento requerido es de 5 V, por lo que el pin Vcc está conectado al pin de salida de 5 V del Arduino y el pin GND está conectado al circuito y a tierra de la placa Arduino. También funciona con el protocolo IIC, por lo que sus pines SCL y SDA están conectados a los pines A4-SDA y A5-SCL de la placa Arduino, respectivamente.
- Un pequeño botón está conectado al pin A2* y un micro botón está conectado al pin D11 como se muestra.
- El zumbador está conectado al pin A1* y el LED está conectado al pin A0* como se muestra.
- Una batería de 9 V (no se muestra en la figura) proporciona energía para todo el circuito. Está conectado al pin Vin de la placa Arduino. La placa Arduino toma una entrada de 9 V de la batería y proporciona una salida de 5 V mediante un regulador de voltaje integrado. Esta salida de 5 V se suministra a todos los demás componentes del circuito.
* Nota : Los dispositivos de E/S digitales (botón, LED y zumbador) están conectados con pines de entrada analógica porque no utilizamos ningún pin de entrada analógica en este proyecto. Entonces estamos usando estos pines de entrada analógica como pines de E/S digitales. Pero puedes conectar estos dispositivos a cualquier pin digital (D0 – D13 según tu conveniencia.
Operación del circuito
Antes de explicar el funcionamiento y funcionamiento de un circuito completo, es necesario saber cómo funcionan los diferentes bloques – como el sensor MLX, el sensor UDM, la pantalla OLED, etc. el OLED, vaya a este artículo
El funcionamiento del sensor MLX90614.
El MLX90614 es un termómetro infrarrojo para mediciones de temperatura sin contacto. Un amplificador de bajo ruido, un ADC de 17 bits y una potente unidad DSP están integrados en el MLX90614, lo que permite una alta precisión y resolución del termómetro. El chip detector de termopila sensible a IR y el ASIC de acondicionamiento de señal están integrados en la misma lata TO-39.
El termómetro está calibrado de fábrica con una salida digital de bus IIC (SMBus), lo que brinda acceso completo a la temperatura medida en todos los rangos de temperatura, con una resolución digital de 0,02 °C para pulsar. -Modulación de ancho (PWM). De forma predeterminada, el PWM de 10 bits está configurado para transmitir continuamente la temperatura medida en el rango de -20 a 120 °C, con una resolución de salida de 0,14 °C.
El sensor MLX90614 puede medir la temperatura de un objeto sin ningún contacto físico. Esto es posible gracias a la Ley de Stefan-Boltzmann , que establece que todos los objetos y seres vivos emiten energía infrarroja. La intensidad de la energía IR será directamente proporcional a la temperatura de ese objeto o ser vivo. Así, el sensor MLX90614 calcula la temperatura de un objeto midiendo la cantidad de energía infrarroja que emite.
El MLX90614 consta de dos dispositivos incorporados como un único sensor; un dispositivo actúa como unidad sensora y el otro actúa como unidad de procesamiento. La unidad sensora es un detector de termopila infrarroja llamado MLX81101, que detecta la temperatura. La unidad de procesamiento es un ASSP de acondicionamiento único llamado MLX90302, que convierte la señal del sensor en valor digital y se comunica mediante el protocolo I2C. El MLX90302 cuenta con un amplificador de bajo ruido, un ADC de 17 bits y un DSP, que ayuda al sensor a lograr precisión y resolución.
El sensor no requiere componentes externos y puede conectarse directamente con cualquier microcontrolador. Los pines de alimentación (Vdd y Gnd) se pueden utilizar directamente para alimentar el sensor. Los pines de señal SCL y SDA se utilizan para la comunicación I2C y se pueden conectar directamente al microcontrolador que opera con una lógica de 5 V.
Los pines y funciones.
Como se ve en el diagrama del circuito, estos cuatro pines están conectados directamente a la placa Arduino. El microcontrolador Arduino obtendrá el valor digital directo de la temperatura corporal de este sensor. Sin embargo, el valor digital proporcionado por el sensor debe calibrarse posteriormente con un termómetro digital médico estándar para una medición precisa de la temperatura corporal.
Para conectar el sensor MLX con Arduino y leer la temperatura del objeto, tenemos que usar su biblioteca Arduino disponible en Adafruit:
Adafruit_MLX90614.h
Tenemos que instalar esta biblioteca en el software Arduino IDE.
Prueba y calibración de sensores
Para probar y calibrar el sensor MLX, siga el procedimiento paso a paso
1. Conecte el sensor al Arduino. Conecte sus cuatro pines a Arduino como se muestra en el diagrama del circuito.
2. Abra el ejemplo “mlxtest” de esta biblioteca (archivo-> ejemplo-> biblioteca adafruit MLX90614 -> mlxtest)
3. Cargue este programa en la placa Arduino.
4. El sensor leerá la temperatura del objeto y la mostrará en el monitor en serie.
5. Mida la temperatura del cuerpo humano usando un sensor y anote las lecturas.
6. Mida la temperatura corporal utilizando un termómetro médico convencional (digital) para calibrarla. Compara los dos valores. Si ambos no son iguales, agregue algún valor umbral a las lecturas de temperatura del sensor MLX.
Por ejemplo, el sensor MLX lee la temperatura corporal como 91.0 ° F y el termómetro lee la temperatura como 95.5 ° F, así que agregue un límite de 4.5 en la lectura del sensor MLX en el programa como:
mlx.readObjectTempF+4.5
- Ahora lea la temperatura corporal de la otra persona usando el sensor. Mida la temperatura nuevamente usando el termómetro y compare las dos lecturas de temperatura. Si coinciden, es perfecto; de lo contrario, ajuste el valor del umbral. Repita este procedimiento de cinco a seis veces y ajuste el valor umbral. Obtendrá lecturas precisas de la temperatura del cuerpo humano con el sensor MLX.
Después de entender cómo funcionan los diferentes bloques, veamos cómo funciona el circuito completo.
- Cuando se suministra energía de la batería al circuito, el mensaje inicial se muestra en el OLED como " pistola medidora de temperatura sin contacto ".
- Se presiona el botón (botón pequeño) para medir la temperatura corporal.
- Una vez que se presiona el botón, el sensor UDM comenzará a medir la distancia desde el cuerpo humano, que se muestra en la pantalla OLED.
- Si el cuerpo está demasiado lejos del sensor, se mostrará el mensaje: “ acércate. "
- Cuando el cuerpo alcanza los 5 cm o menos, el sensor MLX comienza a leer la temperatura corporal.
- Toma lecturas cinco veces consecutivas, calcula el promedio de las cinco lecturas y muestra el valor de temperatura final en el OLED. Este proceso tardará entre dos y tres segundos. El mensaje se muestra en el OLED como " Mantenga presionado durante 2-3 segundos para leer la temperatura ".
- El LED parpadea varias veces y cuando se completa el proceso, suena el timbre. La temperatura corporal final se muestra en la pantalla OLED.
- La lectura final de la temperatura corporal se muestra en el OLED como ó To ó C. Se puede cambiar presionando el botón micro.
- Alternativamente, presionar este botón cambiará la lectura de temperatura de ó C a ó F y viceversa. El LED parpadea y el timbre suena cada vez que se cambia.
- Por último, si la temperatura corporal excede el rango normal de temperatura del cuerpo humano, como 100 ° F (o 40 ° C), da una indicación de alerta haciendo parpadear el LED. El timbre también sonará tres veces.
El circuito está construido sobre una PCB de uso general. Además, muestra los resultados de salida del circuito como visualización de la medición de temperatura y distancia en una pantalla OLED.
Aquí hay algunas instantáneas de la disposición de los componentes y el ensamblaje del circuito...

La disposición de los componentes y montaje del circuito con la salida.

Disposición de componentes y montaje del circuito con salida en el OLED.
El funcionamiento y funcionamiento de este circuito se basa en el programa descargado en la memoria FLASH interna del microcontrolador Arduino (ATmega328). A continuación, es hora de revisar el programa de software.
Programa de software
El programa es responsable de realizar todas las siguientes tareas.
- Mide la distancia al objeto (cuerpo) usando el sensor UDM
- Mide la temperatura corporal utilizando el sensor MLX
- Muestra la distancia y la temperatura corporal en un OLED
- Da una indicación de alerta a través de un LED y un timbre si la temperatura corporal es alta
El programa está escrito en lenguaje de programación C utilizando Arduino IDE y se compila y carga en el FLASH interno del microcontrolador Arduino.
Aquí está el código completo del programa.