Due to COVID-19 pandemic, businesses, schools, restaurants, etc had to shut down. Many people were furloughed while some were outright terminated. Recently, the trends show a decline in cases, but businesses and universities are aiming to reopen. It is crucial to ensure that history doesn't repeat itself. We must put safeguards into place, that are both preventative, and adaptive to potential new cases. Enter, the COVID-19 Temp Scanner. This tool essentially allows offices and schools to track their employee’s and students' temperature on a daily basis. A few features include:
- contactless temperature reading
- database analysis
- cloud-based storage
- student/employee identification
- fever tracking
By analyzing the temperatures of individuals in a given area, The data analysis can help with isolating potential COVID-19 risks and quarantine them. Additionally, combining the data on a larger scale can help identify temperature spikes as a community. Our Temp Scanner is user friendly. An employee, student, or person is assigned an identification tag. For schools and employees, it would be their id, while for others a simple RFID card such as a hotel card would suffice. Then after a certain amount of time period (hours, days, weeks), the employee would use their id, scan into the temp scanner, then record their temperature using the inbuilt touch-less temperature sensor. This temperature would then be recorded into a google sheet where the source can analyze trends on a global scale as well automatically id red flags, i.e spikes in temperatures. If there is a spike in temperature, the id card would be able to detect the employee, and preventative measures will be incorporated.
What are the benefits of the COVID-19 Temp Scanner?When creating this temperature scanner, we had many benefits in mind that would help society as a whole. The primary reason we created this device was due to the pandemic affecting the closure of our school, WPI. As we spent more time at home, the more we aspired to go back on campus. The COVID-19 Temp Scanner gave us the opportunity to help our school along with other schools to finally allow students to slowly go back to college life. A way for colleges to monitor the students and keep in check of their health. We saw that the students' education was dramatically affected due to this pandemic. Given the lack of resources alongside the stress of the virus itself, students found it difficult to focus without the university atmosphere. Taking all this into account, we wanted to play our role in fighting the virus and continuing education for students worldwide.
Cost-effectiveness was a key aspect when taking into consideration the creation and development of our project. With this in mind, an RFID scanner, a buzzer, LED’s, temperature sensor, and a distance sensor can help create a complex detection tool that would still be within budget. That way colleges can easily afford them and implement them in their dorms or buildings.
As mentioned previously, this project would allow colleagues to monitor students' health more closely and provide proper safety and caution to the campus, with the ability to collect data on students' temperature, schools can make better decisions about COVID-19 and the process of reopening. They can observe to see if there is a commonality regarding temperature spikes in specific areas of campus. More importantly, it allows the student itself to check on their health and make sure they are as healthy as they should be. Taking certain precautions is definitely the first step we have to take in opening colleges and offices and we believe our project will help take those steps.
How does it work?The COVID-19 Temp Scanner follows a pretty straightforward process where the input that is received by the device, and then transfers that data to an online database (Google Sheets in this case) through WiFi. Creating this device is done through four major steps: setting up the hardware, setting up the google sheets, uploading the code, and testing it out.
Step 1: Setting Up the Hardware
the full schematic of the electronic components all hooked up to the ESP32 is shown below in the schematic section. For more detailed specifications of pin configuration:
Step 2: Setting Up Google Sheets
- Login into to google drive and create a new google sheet
- Rename the sheet to any name desired
- Under Tools, go to Script Editor
- Rename the file and upload code shown below:
function doGet(e){
Logger.log("--- doGet ---");
var tag = "",
value = "";
try {
// this helps during debugging
if (e == null){e={}; e.parameters = {tag:"test",value:"-1"};}
Logger.log("It is using debugging values");
tag = e.parameters.tag;
value = e.parameters.value;
// save the data to spreadsheet
save_data(tag, value);
return ContentService.createTextOutput("Wrote:\n tag: " + tag + "\n value: " + value);
} catch(error) {
Logger.log(error);
return ContentService.createTextOutput("oops...." + error.message
+ "\n" + new Date()
+ "\ntag: " + tag +
+ "\nvalue: " + value);
Logger.log("an error has occured in doGet function");
}
}
// Method to save given data to a sheet
function save_data(tag, value){
Logger.log("--- save_data ---");
try {
var dateTime = new Date();
// Paste the URL of the Google Sheets starting from https thru /edit
// For e.g.: https://docs.google.com/..../edit
var ss = SpreadsheetApp.openByUrl("insert link here");
var dataLoggerSheet = ss.getSheetByName("insert sheet name here");
// Get last edited row from DataLogger sheet
var row = dataLoggerSheet.getLastRow() + 1;
Logger.log("recieves last edited row");
// Start Populating the data
dataLoggerSheet.getRange("A" + row).setValue(row -1); // ID
dataLoggerSheet.getRange("B" + row).setValue(dateTime); // dateTime
dataLoggerSheet.getRange("C" + row).setValue(tag); // tag
dataLoggerSheet.getRange("D" + row).setValue(value); // value
Logger.log("inputs data into spreadsheet");
// Update summary sheet
//summarySheet.getRange("B1").setValue(dateTime); // Last modified date
// summarySheet.getRange("B2").setValue(row - 1); // Count
}
catch(error) {
Logger.log(JSON.stringify(error));
Logger.log("Error has occured in save_data function");
}
Logger.log("--- save_data end---");
}
- In line 44
var ss = SpreadSheetApp.openByUrl(“***”)
, replace *** with google sheet url until /edit - In line 45
var DataLoggerSheet = ss.getSheetByName(“****”)
replace *** with sheet name - Go to Publish and deploy as Web App
- Change the access to the app as anyone, even anonymous
Note: If a permissions page pops up as this is your first time doing google scripts:
- Click on review permission
- Sign in to your google account
- When the “this app isn't verified” page comes up, click on advanced
- Click on go to “Your script name” (unsafe)
- Click on allow.
This will allow your script to finally gain access to deploy the app
- Copy the “Current web page url” and paste it somewhere safe, as it will be later used in the Arduino code
Step 3: Uploading Arduino Code
- Code files for this project can be accessed from the github link in the code section. Make sure that Arduino IDE is installed on your computer before uploading the code
- Before uploading the code to the ESP32:
- Modify
wiring.h
file if using different pins - Add wifi name and wifi password within the quotes in
WifiSetup.cpp
- Add GScriptID (This is the random numbers and letters seen from the current web page url) in
Data.cpp
Additionally for this code to work, the appropriate libraries would need to be download. The libraries involved are:
- ESP32: https://dl.espressif.com/dl/package_esp32_index.json (go to
preferences
underfile
and add url inadditional boards manager url
) - Wifi: WiFi library by Arduino
- MLX90614: MLX90614 library by Adafruit
- MFRC522: MFRC522 library by GithubCommunity
Step 4: Test it Out!
Once everything is set up and the code is uploaded, test and debug the device to make sure it works the way it should.
prototype casing
For future edits on this project:
- Create a CAD file for encasing the electronic components, to make the station into a more clean and sleek manner.
- Have a more calibrated sensor through field testing
To increase automation:
- The temperature reading could potentially be done through an infrared camera, which can read people’s body temperature at a more accurate level, and identify regions of high temperature within the body.
- A servo motor at the top module could be added, to allow for the module to move based on the person’s height.
- A creation of a mobile app as an add-on for the stations could allow students and employees to track their own temperature history.
Comments