Here at SparkFun, we’ve done our best to find ways to safely show up to the office and warehouse throughout the pandemic, to ensure that our products are built to our high standards. And really, everybody has their hand on a product at some point in the process, whether that’s engineering, marketing, shipping, kitting, or any of the other half-dozen departments working hard to make the best possible version of a product.
Working in the office also means that we’ve had to take extra precautions to ensure our safety throughout the workplace. One of the methods is daily check-ins, in which everybody entering the building has their temperature taken and documented to monitor if anybody might have a fever unknowingly. This entails one of our employees spending a few hours each morning just taking temperatures and recording employees' names and associative temperatures. While I’m a strong proponent of the human presence each morning, as it’s an outlet for me to talk to somebody outside my house, I was also curious if I could build a system that might automate the process so that they don’t have to sit there for so long.
We already use RFID cards as a means to enter the building, so I thought the easiest system might be to scan our employee cards, which would trigger an infrared temperature sensor to take body temperature, and record the information in an Excel spreadsheet.
I picked up the RFID kit as a method to experiment with multiple cards, and not just my singular employee card.
I also wanted to use the IR Thermometer Evaluation Board because it comes with the MLX90614-ABB - a single-zone infrared thermometer, capable of sensing object temperatures between -70 and 380°C. It uses a SMBus, which is like an I2C interface, to communicate with the chip. That means you really only need to devote two wires from your microcontroller to interface with it.
Using these two boards means we'll use three different libraries:
#include <Wire.h> // I2C library
#include <SparkFunMLX90614.h> // SparkFunMLX90614 Arduino library
#include "SparkFun_Qwiic_Rfid.h"
There are three discrete parts of the code that ultimately make this kind of system. First, there's creating a function that scans RFID cards and saves the tag. Second, that function triggers another function to record the temperature of the body in front of the RFID scanner. And third, all of this data is recorded and sent to an Excel spreadsheet.
Both the IR temperature function and the RFID scanning function initialize Serial and each of the sensors, and then read the data to Serial. If you are interested in this code, let us know in the comments and we'll share it! What becomes really helpful, though, is when we can export the serial monitor data to Excel so we can track temperature trends in real life.
With PLX-DAQ, we can send the real-time data collected by Arduino into Excel, where it's much easier to process data. First, make sure to download the PLX-DAQ software here.
DATA specifies that the rest of the serial output will be labeled as data and recorded in the column.
void Initialize_streamer(){
Serial.println("CLEARDATA");
Serial.println("LABEL,Date,Time,Temperature,Name");
}
void Write_streamer(){
Serial.print("DATA");
Serial.print(","); // Move to next column using a comma
Serial.print("DATE");
Serial.print(",");
Serial.print("TIME");
Serial.print(",");
Serial.print(RfidReading); //employee tag
Serial.print(",");
Serial.print(TempReading); //from IR temp sensor
Serial.print(",");
Serial.println(); //End of the row, move to next row
}
When you open the PLX-DAQ software, you'll have to choose the correct port in Arduino as well as the correct baud, click "connect," and the data should show up in the Excel file.
This is a simple example of combining RFID scanners with an IR temperature sensor, but it ultimately provides a very useful, real-world tool. What other ideas do you have for implementing RFID in creative ways? Check out RFID and start experimenting yourself with the RFID Starter Kit, and happy temperature tracking and hacking!
No comments:
Post a Comment