I built the Covid-19 tracker during quarantine to provide a distraction to help alleviate anxiety of a loved one showing all symptoms of a corona virus (all clear as of this writing!).
Data is retrieved from https://covidapi.info using an ESP32, parsed using ArduinoJson 6, repacked, then stored onto the SD card. Once the SD card is up to date, the tracker checks for new data every hour.
The world map contains 32 countries and the brightness of the LED indicators are relative to the amount of confirmed cases of that country to the other 31 countries.
The Animate button starts Animate mode which cycles the data from the first record to the most recent. The country LED indicators turn on as each individual country has their first confirmed Covid-19 case.
The Select Country encoder selects the country that will be displayed in the bottom portion of the data displays.
The frame is made from 2020 extrusions for rigidity and mounting points. TFT and LED indicators mounting brackets are made from a combination of 3D printed parts and laser cut parts.
2x TFT ST7735
2x TM1637 driven 7-Segment LED displays
2x PCA9685 PWM drivers
WS2812b LED strip
micro SD card module
The linked git repo contains all the source code for the project as well as CAD drawings.
If the SD card does not contain the Covid-19 data file, the tracker will create the file and begin retrieving the oldest records from the API.
The WiFi credentials are stored on the SD card for relative ease of connecting the tracker to new access points. A WiFi Manager (captive portal) was not implemented due to the short term nature of the project.
The tracker checks for new data every hour to reduce strain on the API which is currently free with no restrictions (Thank you https://github.com/pomber/covid19 and https://github.com/CSSEGISandData/COVID-19)
The TFT's are terribly slow to refresh, especially since they are software driven. The slow refresh causes lag in the Select Country encoder which was mitigated to a small degree by refreshing the display after the encoder has ceased to provide new input.
The SD card must be inserted for the tracker to start-up.