- Componentes requeridos
- Módulo lector RFID EM18
- Termómetro infrarrojo MLX90614
- Diagrama de circuito
- Explicación del código
- Almacenamiento de datos del sensor en una hoja de Excel desde el controlador Arduino
Desde el brote de Covid-19, los termómetros infrarrojos se están utilizando como una herramienta de detección para escanear a las personas en los aeropuertos, estaciones de tren y otros establecimientos abarrotados. Estas exploraciones se están utilizando para identificar pacientes potenciales de Covid-19. El gobierno obligó a escanear a todos antes de ingresar a la oficina, la escuela o cualquier otro lugar concurrido.
Entonces, en este tutorial, vamos a construir un sistema de monitoreo de temperatura sin contacto basado en RFID usando un sensor de temperatura sin contacto con Arduino. Cuando los empleados escanean la tarjeta RFID, medirá la temperatura corporal de los empleados con un termómetro infrarrojo sin contacto y registrará el nombre y la temperatura de ese empleado directamente en la hoja de Excel. Usaremos Arduino Nano, MLX90614, lector RFID EM18 y sensor ultrasónico para construir este proyecto. El sensor ultrasónico se utiliza para calcular la distancia entre el termómetro y la persona. El termómetro solo medirá la temperatura cuando la distancia sea inferior a 25 CM. Es algo así como un sistema de asistencia basado en RFID, que también registra la temperatura corporal de cada persona.
Componentes requeridos
- Arduino Nano
- Módulo RFID EM-18
- Sensor de temperatura sin contacto MLX90614
- Sensor ultrasónico
- Tablero de circuitos
- Cables de puente
Módulo lector RFID EM18
Uno de los lectores RFID más utilizados para leer etiquetas de 125 kHz es el lector RFID EM-18. Este módulo lector de RFID de bajo costo presenta un bajo consumo de energía, un factor de forma bajo y fácil de usar. El módulo lector EM-18 puede proporcionar salida a través de dos interfaces de comunicación, es decir, RS232 y WEIGAND26.
El lector RFID EM18 cuenta con un transceptor que transmite una señal de radio. Cuando la etiqueta RFID entra en el rango de la señal del transmisor, esta señal llega al transpondedor que está dentro de la tarjeta. La etiqueta extrae energía del campo electromagnético generado por el módulo lector. El transpondedor luego transforma la señal de radio en la forma de energía utilizable. Al recibir energía, el transpondedor transfiere toda la información, como una identificación específica, en forma de una señal de RF al módulo de RFID. Luego, estos datos se envían al microcontrolador mediante comunicación UART.
Para obtener más información sobre RFID y etiquetas, consulte nuestros proyectos anteriores basados en RFID.
Termómetro infrarrojo MLX90614
Antes de continuar con el tutorial, es importante saber cómo funciona el sensor MLX90614. Hay muchos sensores de temperatura disponibles en el mercado y hemos estado utilizando el sensor DHT11 y el LM35 de manera extensiva para muchas aplicaciones en las que se debe medir la temperatura o la humedad atmosférica.
Anteriormente usamos este sensor en una pistola térmica IR que puede detectar la temperatura de un objeto en particular (no ambiente) sin entrar en contacto directo con el objeto. Aquí estamos nuevamente usando el mismo sensor para calcular la temperatura de un objeto. El MLX90614 es uno de esos sensores que utiliza energía IR para detectar la temperatura de un objeto. Para obtener más información sobre el circuito del sensor de infrarrojos e infrarrojos, siga el enlace.
El sensor MLX90614 es fabricado por el sistema integrado Melexis Microelectronics, tiene dos dispositivos integrados, uno es el detector de termopila infrarroja (unidad sensora) y el otro es un dispositivo DSP de acondicionamiento de señal (unidad computacional). Funciona según la ley de Stefan-Boltzmann, que establece que todos los objetos emiten energía IR y la intensidad de esta energía será directamente proporcional a la temperatura de ese objeto. La unidad sensora en el sensor mide cuánta energía IR es emitida por un objeto objetivo y la unidad computacional la convierte en valor de temperatura usando un ADC incorporado de 17 bits y emite los datos a través de la comunicación I2C protocolo. El sensor mide tanto la temperatura del objeto como la temperatura ambiente para calibrar el valor de temperatura del objeto. Las características del sensor MLX90614 se detallan a continuación; para obtener más detalles, consulte la hoja de datos MLX90614.
Diagrama de circuito
El diagrama de circuito para el sensor de temperatura sin contacto basado en RFID que usa Arduino se muestra a continuación:
Como se muestra en el diagrama del circuito, las conexiones son muy simples ya que las hemos usado como módulos, podemos construirlas directamente en una protoboard. El LED conectado al pin BUZ del módulo del lector EM18 se enciende cuando alguien escanea la etiqueta. El módulo RFID envía datos al controlador en serie; por lo tanto, el pin del transmisor del módulo RFID está conectado al pin del receptor de Arduino. Las conexiones se clasifican además en la siguiente tabla:
Arduino Nano |
Módulo RFID EM18 |
5V |
Vcc |
GND |
GND |
5V |
SEL |
Rx |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
Sensor ultrasónico (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Trigonometría |
D6 |
Eco |
Explicación del código
Tenemos que escribir un código Arduino que pueda leer datos del sensor ultrasónico, MLX90614, módulo lector RFID EM18, y enviar el nombre y la temperatura de una persona a una hoja de Excel. Para este código, debe descargar las bibliotecas Wire y MLX90614. Después de descargar las bibliotecas, agréguelas a su IDE de Arduino.
El código completo para este control de la temperatura corporal sin contacto se encuentra al final de la página. Aquí se explicará el mismo programa en pequeños fragmentos.
Como de costumbre, inicie el código incluyendo todas las bibliotecas necesarias. Aquí, la biblioteca Wire se usa para comunicarse usando el protocolo I2C y la biblioteca Adafruit_MLX90614.h se usa para leer los datos del sensor MLX90614.
#incluir
A continuación, definimos los pines del sensor ultrasónico al que hemos realizado la conexión.
const int trigPin = 5; const int echoPin = 6;
Después de eso, defina las variables para almacenar el módulo RFID, el sensor ultrasónico y los datos del sensor MLX90614.
Larga duración; int distancia; String RfidReading; float TempReading;
Dentro de la función void setup () , inicializamos el monitor en serie para la depuración y el sensor de temperatura MLX90614. Además, configure los pines Trig y Echo como pines de entrada y salida.
configuración vacía () {Serial.begin (9600); // Inicializar la comunicación serial con el monitor serial pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
Dentro de la función void loop () , calcule la distancia entre la persona y el sensor y si la distancia es menor o igual a 25 cm, llame a la función reader () para escanear la etiqueta.
bucle vacío () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, BAJO); duración = pulseIn (echoPin, HIGH); distancia = duración * 0.0340 / 2; if (distancia <= 25) {lector (); }
La función void reader () se utiliza para leer la tarjeta de etiqueta RFID. Una vez que la tarjeta se acerca al módulo lector, el módulo lector lee los datos en serie y los almacena en la variable de entrada.
lector vacío () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); contar ++; retraso (5);
En las siguientes líneas, compare los datos de la tarjeta escaneada con el ID de etiqueta predefinido. Si la identificación de la etiqueta coincide con la tarjeta escaneada, lea la temperatura de la persona y envíe la temperatura y el nombre de la persona a la hoja de Excel.
if (entrada == etiqueta) bandera = 1; si no bandera = 0; contar ++; RfidReading = "Ashish"; }} if (bandera == 1) {temp_read (); Write_streamer (); }
Dentro de la función temp_read () , lea los datos del sensor MLX90614 en grados Celsius y guárdelos en la variable 'TempReading' .
void temp_read () {TempReading = mlx.readObjectTempC ();}
Una vez que el hardware y el software están listos, es hora de cargar el programa en su placa Arduino Nano. Tan pronto como se carga su programa, el sensor ultrasónico comienza a calcular la distancia. Cuando la distancia calculada es inferior a 40 cm, lee la temperatura y la tarjeta.
Almacenamiento de datos del sensor en una hoja de Excel desde el controlador Arduino
Ahora, para enviar datos a una hoja de Excel, usaremos PLX-DAQ. Es un software de complemento de Excel que le ayuda a escribir valores desde Arduino directamente en una hoja de Excel en su computadora portátil o PC. Utilice el enlace para descargar el archivo. Después de descargar, extraiga el archivo y haga clic en el archivo.exe para instalarlo. Creará una carpeta llamada PLS-DAQ en su escritorio.
Ahora abra el archivo 'PLX-DAQ spreadsheet' de la carpeta del escritorio. Si las macros están deshabilitadas en su Excel, verá un bloque de seguridad como se muestra en la siguiente imagen:
Haga clic en Opciones-> Habilitar el contenido -> Finalizar -> Aceptar para habilitar las macros. Después de esto, obtendrá la siguiente pantalla:
Ahora seleccione la velocidad en baudios como "9600" y el puerto al que está conectado su Arduino y luego haga clic en Conectar para iniciar la transmisión de datos. Sus valores deberían comenzar a registrarse como se muestra en la siguiente imagen.
Así es como puede construir un dispositivo de detección de temperatura sin contacto y almacenar los datos en la hoja de Excel.
Un video de trabajo y un código completo se encuentran al final de la página.