Covid-19 Symptom Checker

by rjbrag21 in Circuits > Arduino

700 Views, 1 Favorites, 0 Comments

Covid-19 Symptom Checker

covid-sample.jpg

This project was inspired by the student design competition at HRI 2021, which gave us theme "A Robot to Support us Through Lockdown." Our interpretation of these theme was a COVID-19 symptom checker robot with the purpose of allowing individuals to analyze their coronavirus symptoms and receive medical advice from the comfort of their own home. The system incorporates interactive features such as an LCD screen for seeing questions asked about symptoms and the appropriate medical advice, an infrared thermometer for taking an accurate body temperature reading, and a joystick for users to select the appropriate responses to the symptom questions. The system also includes a LED to indicate the severity level of the symptoms and a speaker to emit audio aiding in answer selection. All of these components work together to provide an easy experience for the user from start to finish.

Gather Your Materials

Screen Shot 2021-04-12 at 5.02.11 PM.png

System and Software Requirements

The system and software requirements for our system include:

The Bluefruit BLE Library contains the necessary header files to utilize the Bluefruit LE UART Friend module. If you would like to test your system, we would recommend trying the HIDKeyboard example in the library.

Circuit Setup

Audio.png
Audio:LCD.png
Audio:LCD:Bluefruit.png
Audio:LCD:Bluefruit:Joystick.png
Everything but Thermometer.png
Total.png

Our system is built around Arduino Due. We first built our circuit with two breadboards. Later on, when we needed to reduce the space taken up by the system so that it would fit into our 3D housing, we used a prototyping board. We would highly recommend that you try wiring it first with breadboards and test it, before soldering onto a prototyping board. In addition to the wiring diagrams, step by step, above, here is a guide of how to wire the system:

VS1053 Codec + MicroSD Breakout Board

  • LOUT → A+ Audio Amplifer
  • AGND → A- Audio Amplifier
  • DREQ → 12
  • VCC → 5V
  • GND → GND
  • MISO → 74
  • MOSI → 75
  • SCLK → 76
  • RST → 48
  • CS → 49
  • SDCS → 47
  • XDCS → 46

Class D Audio Amplifier - PAM8302

  • A+ → LOUT Codec
  • A- → AGND Codec
  • VIN → 5V
  • GND → GND

Speaker

  • GND → Left Audio Amplifier
  • 5V → Right Audio Amplifier

Standard HD44780 LCD

  • GND → GND
  • VDD → 5V
  • V0 → Potentiometer Middle
  • RS → 2
  • EN → 3
  • DB4 → 5
  • DB5 → 6
  • DB6 → 9
  • DB7 → 10
  • BL1 → 5V
  • BL2 → GND

10K Potentiometer

  • Left → 5V
  • Middle → V0
  • Right → GND

MLX90614 Infrared Thermometer

  • VIN → 5V
  • GND → GND
  • SDA → 20
  • SCL → 21

Bluefruit LE UART Friend

  • GND → GND
  • VIN → 5V
  • RX1 → 18
  • TX0 → 19
  • CTS → GND

Analog 2-Axis Joystick

  • GND → GND
  • SEL → 4
  • HOR → A1
  • VER → A0
  • VCC → 5V

Common Cathode RGB LED

  • B → 100K Resistor → 16
  • G → 100K Resistor →15
  • OUT → GND
  • R → 100K Resistor → 17

When you have wired each one, you can use the test code below to test the individual components with the corresponding code:

  • Infrared Thermometer - IRThermometerDemo.ino
  • Bluefruit LE UART Friend - BluefruitConfig.h and hidkeyboard.ino
  • LCD Screen - testLCD.ino
  • Joystick - joystickTest.ino
  • LED - LEDtest.ino
  • Audio (VS1053 Codec, Amplifier and Speaker) - audioTest.ino

3D Printing and Design

design3.PNG
design1.PNG
design2.PNG
AE5C3EE1-136E-4115-AA1B-A5662CF2A0B4_1_105_c.jpeg

We utilized Meshmixer to make our 3D housing.

  1. Open Meshmixer and create a new project.
  2. Add a half-spherical shape that has a slightly smaller radius than the COVID plush. This will allow the 3D housing to fit nicely into the plush.
  3. Slice the sphere so that the base of the shape is approximately the size of the prototyping board and Arduino.
  4. Cut circular holes that are slightly larger than the LED, IR thermometer, and speaker on the curved portion of the shape.
  5. Cut rectangular holes that are slightly larger than the LCD screen and joystick on the curved portion of the shape.
  6. Cut a rectangular hole for the Arduino cord on the right side of the shape.
  7. To create the bottom of the 3D housing, laser cut an acrylic rectangle that is 200mm x 140mm.
  8. Export the file as an stl file.

We utilized the Ultimaker 2+ Extended to print our design. Since our design was too large for the printer, we sliced the print into two pieces using the plane slice in Meshmixer. Then, we exported the two pieces into two stl files. We uploaded the files to the 3D printer and began printing our pieces. Each print should take from 3 to 8 hours.

Soldering

Screen Shot 2021-05-10 at 8.10.09 PM.png
Screen Shot 2021-05-10 at 8.19.22 PM.png
Screen Shot 2021-05-10 at 8.19.49 PM.png
Screen Shot 2021-05-10 at 8.19.43 PM.png
Screen Shot 2021-05-10 at 8.14.07 PM.png
Screen Shot 2021-05-10 at 8.19.32 PM.png
  1. Acquire a 46 x 36 breadboard with 1,656 holes.
  2. Solder the speaker onto the audio amplifier (some versions may have this machine soldered which is fine). Solder the VS1053 Codec breakout board into the edge of the breadboard. Solder the Audio amplifier next to the VS1053 Codec board. Solder a wire for each SD card pin being used, except for any going to ground and power and AGND and LOUT. On the underside of the breadboard, use white wires to connect everything using ground and red wires to connect everything using power. Use wires to connect these to GND and 5V on the Arduino Due. On the top of the breadboard, use small wires to connect AGND to A- and LOUT to A+ solder apply solder underneath to connect. Use test code to play audio out of the speaker.
  3. Solder 12 female to male pins to the diagonal of the VS1053 Codec board. Solder the potentiometer across from the LCD screen. Solder wires to every LCDR pin except those not in use, VO and any going to power and ground. On the underside of the breadboard solder connect all ground and power to both the LCD screen and the potentiometer. In this step you may want to create a power and ground stations in the middle underneath the breadboard so it is easy to connect everything. Solder VO to the middle pin of the potentiometer. Be very careful so that none of these wires are touching. When you can, use plastic coated wire so that nothing is exposed. Use test code to make sure the LCDR screen works after this step.
  4. Solder the Bluefruit LE UART device next to the LCD screen. Only solder wires for TX0 and RX1. On the underside of the breadboard solder power and ground. Use test code to test the bluetooth device.
  5. Solder four female to male pins next to the bluefruit device. Solder one side of three 220 resistors to three of these pins and solder wires to the other side of each of these resistors. On the underside of the breadboard solder GND on the LED to GND. Test the LED. Use female to male pins to connect VIN and GND of the thermometer to 5V and GND. Test the thermometer. Finally solder a wire to GND on the joystick and connect this to GND. Do not solder the thermometer or Joystick directly to the breadboard, use wires to connect them so that they have mobility.

Assembly and Final Code

Screen Shot 2021-05-06 at 12.03.03 PM.png
F09ZU81KNELX94P.jpeg

Now we will begin to assemble our system:

  1. Glue the two pieces of the 3D printed housing together with strong superglue.
  2. Place the completed circuit inside of the 3D printed housing.
  3. Pull the wires and components through their designated holes.
  4. Use double-sided tape to attach the 3D printed housing to the acrylic rectangle base.
  5. Make an incision in the COVID plush and sew a zipper in that location for future easy access to the system.
  6. Cut an LCD sized shape in the front of the COVID plush.
  7. Cut off one of the spores of the COVID plush and create a circular hole for the joystick.
  8. Cut circular holes for the speaker, LCD screen, thermometer, and Arduino cord.
  9. Insert the 3D printed housing with the circuit inside into the plush.
  10. Place the components in their designated holes.
  11. Plug the cord into a computer and you're ready to go!

Operating Instructions

  1. Check you have a bluetooth device that is ready to pair.

  2. Plug the COVID Tracker into a computer to power it on. Wait a few seconds. If the plushie does not begin to introduce itself either unplug and plug it back in or reach into the plushie behind the LCD screen and press the reset button on the Arduino DUE.

  3. Make sure your bluetooth device has connected to the covid tracking plushie. The plushie will be listed as “COVID Checker”.

  4. Answer symptom questions. Once you press the joystick to begin the plushie will ask you if you have headaches. The question will be read aloud and displayed on the LCD Screen. To answer the symptom question move the joystick along the x axis to the left to select no and to the right to select yes. Once you have pointed at the answer you wish to select, wait until the plushie has finished saying out loud the selected answer, then press down on the center of the joystick. The tracker will then move on to the next symptom. Continue answering the rest of the symptom questions.

  5. Take temperature. After answering all the symptom questions, the plushie will read aloud and display instructions on how to take your temperature. Move your forehead to hover about a centimeter above the thermometer and wait for two to three seconds. Once you are ready, press the joystick while your forehead is still above the thermometer.

  6. Advice about symptoms. After the plushie has taken your temperature it will evaluate the symptoms you have. The LED will turn either green or red based on your symptoms. Keep your bluetooth connected device on and in a setting where text can be typed. The plushie will type the symptom evaluation and advice onto the bluetooth device. Wait while the plushie reads aloud your symptom evaluation and displays the results on the screen.

  7. Reevaluation. After evaluating your symptoms you can use the tracker again or someone else can use the tracker. The plushie will read aloud instructions on how to start tracking symptoms again. To track your symptoms again wait until the plushie has finished talking and then press the joystick. This will take you back to step five where you answer symptom questions.

  8. Turn off. Once you are done tracking your symptoms unplug the plushie to turn it off.

Potential Improvements

The biggest improvement we would want to make is the addition of a back option. Every symptom question after the first question should have the option to backtrack in case the user entered the wrong symptom. This would make the tracker less tedious to use.


Allowing the user to take temperature without using the joystick to select their answer would make the tracker easier to use. Instead of having the user hold the thermometer to their forehead and press the joystick to lock in their temperature, the thermometer should wait until the temperature reading has stabilized and save the stabilized temperature reading. This would give a more accurate reading and would make taking the temperature easier on the user.

The symptom evaluation system used in this project is very rudimentary. To improve upon the current system of summing the number of symptoms weighted by severity, machine learning could be used to evaluate the symptoms to give the user more reliable results. Knowledge from a qualified medical professional would also allow for a more accurate assessment.