Covid Monitor
As suddenly as the COVID-19 pandemic hit, many companies- with a lack of true guidance from federal, state, or local government- were tasked with determining how to get back to work safely. As part of my employment during the summer of 2020, I solely developed and implemented a solution for monitoring and surveying employees. I completed this work on behalf of Creare, an engineering research and design firm, in Hanover, New Hampshire.
Proof of Concept
The idea, from the start, was to develop a console that can be placed at a given entrance where employees (and eventually guests) can take a survey and have the data be stored centrally. Figure 1, below, displays the initial proof of concept. I hooked up a Mifare RC522 RF IC Card Sensor Module and three temporary switches to a Raspberry Pi Zero W, running Raspbian. A python script reads the switch inputs as a yes, no, and reset button for the survey that will eventually be paired; and the card reader is used to verify the identity of an employee, as all are issued a rfid badge.
Figure 1. Proof of Concept
Figure 2. New Card Scanner
Version 1
On the Pi, I created a python Tkinter application which was connected to Firebase Real Time Database. At the time, the questions that were being asked were changing regularly. So, to allow for more flexibility, I created a google sheet that could be edited by the proper people at Creare. There was a page for an employee table with names and card ID numbers. Additionally, there was a second page for questions (all numbered) and the question number that should be asked next depending on if no or yes is answered. Upon changes, the new data are pushed to Firebase. The console updates the data before starting a new survey, which allows for remote and immediate alteration to the survey questions and employee list. After completing the survey the answers, name of the respondee, and time are pushed to Firebase. The provided answers are used to determine a recommendation for the employee: either enter work and follow standard precautions OR please work from home and contact H.R.
Foot pedals switches are used to minimize the chance of viral particles spreading from contact with a common site, such as a pen or a hand operated button. Figure 3, shows the lower assembly, including housing for the Pi and other electronics. The foot pedals and console model have an added benefit of not requiring a manned station and/or regular disinfecting.
Figure 3. Assembly of Version 1
The cheap MIFARE scanner used previously was replaced by a (equally cheap) USB scanner which was configured to simulate keyboard input of the card number it read. This card reader is particularly underpowered and struggled to read many cards as well as virtually all key fobs. It is eventually replaced in later iteration, but the USB reader can be seen in figure 2.
Figure 4. Onsite Implementation (at end of survey)
Figure 5. Onsite Implementation
Note, above the monitor in Figure 5 is a remote IR thermometer. This allows employees and guests to check their own temperature while using the console. This data is not stored anywhere, so as to not violate any HIPAA regulations.
Future Iterations
Future iterations saw a number of improvements. The low power USB scanner was swapped with a superior HDR scanner wired directly to the Pi and read via a python script I wrote. Furthermore, an entirely new application was built based on the initial Tkinter app discussed previously.
The new application was developed using a MERN (Mongo, Express, React, NodeJS) stack. One can better understand the flow of the site, from an administrator's perspective by reviewing the following screen captures.
Figure 6. Home Page
Figure 8. Dashboard Redirect when Logged in
Figure 7. Sign Up Page
Figure 9. Generating new Surveys
Figure 10. Dashboard After Survey Creation
The ultimate goal of switching to the web app was to provide better flexibility and expandability. Not only did it allow for easier off-site editing but it offered the generation of multiple users and multiple surveys per user. Thus, employees, guests, etc. can all have tailored questions asked. Moreover, each survey generates a unique link such that they can be taken online; giving people the option to take the survey before they come to work. For those that choose to take it when they arrive at Creare, each console loads the given link followed by “/console/<number>” where the number is unique to each console. Thus, when surveys are completed not only are question answers stored in the Mongo database but meta-information such as taken online versus taken at a console- and which one- are all recorded.
I also created a few python scripts to be used internally at Creare. For instance, I cross checked survey and RFID scan data at the building to verify that every employee that buzzed in has taken the survey. If not, this is reported and they are asked to kindly complete it.
In the many subsequent months following the COVID Monitor’s first use, Creare continued to be content with its functionality. Even as the pandemic worsened, few employees had contracted the virus and there has been little to no evidence of spread in the workplace. I am inclined to believe this was, in part, due to my efforts.