COVID-19 WHO Dashboard

5,424

30

20

Introduction: COVID-19 WHO Dashboard

About: Make it yourself if you cannot buy one!

This instructables show how to use ESP8266/ESP32 and LCD to build a COVID-19 situation WHO dashboard.

Step 1: Data Source: WHO Coronavirus Disease (COVID-19) Situation Dashboard

The project data source is come from The World Health Organization (WHO) Coronavirus disease (COVID-19) Situation Dashboard:

https://experience.arcgis.com/experience/685d0ace5...

Step 2: Hardware Preparation

ESP8266/ESP32 Dev Board

Any ESP8266/ESP32 Dev Board should be ok.

LCD Display

Any Arduino_GFX supported LCD is ok, you may find currently supported display at GitHub readme: https://github.com/moononournation/Arduino_GFX

Breadboard

Any breadboard that can fit for the ESP Dev Board and LCD Display.

Jumper Wire

Some Jumper Wires, depends on the dev board and LCD pins layout. In most case 6-9 male to female jumper wires are enough.

Step 3: Hardware Assembly

Push the ESP32 Dev Board on the breadboard and connect LCD with jumper wires.

Here are the sample connection summary:

ESP8266 -> LCD

Vcc     -> Vcc
GND     -> GND
GPIO 15 -> CS
GPIO  5 -> DC (if available)
RST     -> RST
GPIO 14 -> SCK
GPIO 12 -> MISO (optional)
GPIO  4 -> LED (if available)
GPIO 13 -> MOSI / SDA

ESP32 -> LCD

Vcc     -> Vcc
GND     -> GND
GPIO 5  -> CS
GPIO 16 -> DC (if available)
GPIO 17 -> RST
GPIO 18 -> SCK
GPIO 19 -> MISO (optional)
GPIO 22 -> LED (if available)
GPIO 23 -> MOSI / SDA

Step 4: Software Preparation

Arduino IDE

Download and install Arduino IDE if you are not yet do it:

https://www.arduino.cc/en/main/software

ESP8266 Support

Follow the Installation Instructions to add ESP8266 support if you are not yet do it:

https://github.com/esp8266/Arduino

ESP32 Support

Follow the Installation Instructions to add ESP32 support if you are not yet do it:

https://github.com/espressif/arduino-esp32

Arduino_GFX Library

Download latest Arduino_GFX libraries: (press "Clone or Download" -> "Download ZIP")

https://github.com/moononournation/Arduino_GFX

Import libraries in Arduino IDE. (Arduino IDE "Sketch" Menu -> "Include Library" -> "Add .ZIP Library" -> select downloaded ZIP file)

Step 5: Compile & Upload

  1. Download the program at GitHub: (press "Clone or Download" -> "Download ZIP") https://github.com/moononournation/COVID-19_WHO_Da...
  2. Open COVID-19_WHO_Dashboard.ino with Arduino IDE
  3. Fill your WiFi AP settings into SSID_NAME and SSID_PASSWORD
  4. If you are not using ILI9341 LCD, comment out line 125 and uncomment the correct LCD class declaration
  5. Connect ESP Dev Board to computer
  6. Press Upload button to compile and upload the program to the ESP Dev Board

Step 6: Options

  • who_adm0_url and who_adm0_new_conf_url is retrieving "China" figure, you can change the value near

"where=ADM0_NAME%3D%27China%27" to your country

  • who_adm1_url is retrieving "Hong Kong SAR" figure, you can change the value near "where=ADM1_NAME%3D%27HONG+KONG+SAR%27" to your province, autonomous region, and municipality
  • Arduino_GFX library support many size LCDs, the font sizes auto change according to the screen size. I have tested in ST7735 (128 x 160), ILI9341 (240 x 320), ST7796 (320 x 480). You may need make some adjustments for other screen size.

Step 7: Limitation

WHO dashboard figures are according to Coronavirus disease (COVID-2019) situation reports:

https://experience.arcgis.com/experience/685d0ace5...

The figures are update in daily basis and expected have some delay.

Step 8: Happy Quarantine!

This is the time to avoid social contact and stay at home :(

This is also the best time to study on electronics, programming and IoT!

Be the First to Share

    Recommendations

    • Metal Contest

      Metal Contest
    • Maps Challenge

      Maps Challenge
    • Fandom Contest

      Fandom Contest

    20 Comments

    0
    jbruening
    jbruening

    Question 3 months ago on Step 8

    Hi 陳亮
    after donloaded last Git versions of
    Arduino_GFX_master
    COVID-19_WHO_Dashboard-master
    and #include "Arduino_GFX_Library.h" while deleting all other #includes to source code
    **** I'm still can't compile using Arduinos IDE 1.8.13 **************************************
    This is the error report:
    ________________________________________________________________________
    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp: In member function 'virtual void Arduino_TFT::drawChar(int16_t, int16_t, unsigned char, uint16_t, uint16_t)':
    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp:1125:1: error: a15 cannot be used in asm here
    }
    ^
    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp:1125:1: error: a15 cannot be used in asm here
    _______________________________________________________________________
    Thank-you for your support to bring upand run your famous project.
    Any thing I can do?

    0
    陳亮
    陳亮

    Reply 3 months ago

    I heard this error message, the error seems only appear at Windows platform. But since I am using macOS and Linux right now, I cannot check this in short time. I will try this once got an Windows with Arduino IDE.

    0
    jbruening
    jbruening

    Question 3 months ago on Step 4

    Thank-you for this project and the detailed instructions however
    - useing Arduinos IDE
    - following all instruction e.g.
    - installing the Arduino_GFX-master lib
    (it appears now in my sketchbook folder)
    - compiling results in "Arduino_HWSPI.h: No such file or directory"
    - changing #include "---" to # include <---> does not work

    Any idea what went wrong?
    Thank-you

    0
    陳亮
    陳亮

    Reply 3 months ago

    sorry for outdated code, the latest library should use:
    #include "Arduino_GFX_Library.h"

    0
    jbruening
    jbruening

    Reply 3 months ago

    Hi 陳亮
    did I understand your reply he right way? I've inserted
    #include "Arduino_GFX_Library.h" // Core graphics library
    However the error message remains the same:

    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp: In member function 'virtual void Arduino_TFT::drawChar(int16_t, int16_t, unsigned char, uint16_t, uint16_t)':
    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp:1125:1: error: a15 cannot be used in asm here
    }
    ^
    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp:1125:1: error: a15 cannot be used in asm here

    Is there a code version aviable that compiles under Arduino 1.8.13?
    I would by happy to receive a link to that version
    Thank-you so much
    BTW all the examples provided stop with the same error as mentioned above

    0
    jbruening
    jbruening

    Reply 3 months ago

    Tankks for fast reply.
    Next issue:
    #include "Arduino_HWSPI.h
    #include "Arduino_HWSPI_Library.h dosen't work either pls have a look at all includes
    ---------------------------------------------------------------------------------------------------------
    #include "SPI.h"
    #include "Arduino_HWSPI.h"
    #include "Arduino_ESP32SPI.h"
    #include "Arduino_SWSPI.h"
    #include "Arduino_GFX_Library.h" // Core graphics library
    #include "Arduino_Canvas.h" // Canvas (framebuffer) library
    #include "Arduino_Canvas_Indexed.h" // Indexed Color Canvas (framebuffer) library
    #include "Arduino_HX8347C.h" // Hardware-specific library for HX8347C
    #include "Arduino_HX8352C.h" // Hardware-specific library for HX8352C
    #include "Arduino_HX8357B.h" // Hardware-specific library for HX8357B
    #include "Arduino_ILI9225.h" // Hardware-specific library for ILI9225
    #include "Arduino_ILI9341.h" // Hardware-specific library for ILI9341
    #include "Arduino_ILI9481_18bit.h" // Hardware-specific library for ILI9481
    #include "Arduino_ILI9486_18bit.h" // Hardware-specific library for ILI9486
    #include "Arduino_SEPS525.h" // Hardware-specific library for SEPS525
    #include "Arduino_SSD1283A.h" // Hardware-specific library for SSD1283A
    #include "Arduino_SSD1331.h" // Hardware-specific library for SSD1331
    #include "Arduino_SSD1351.h" // Hardware-specific library for SSD1351
    #include "Arduino_ST7735.h" // Hardware-specific library for ST7735
    #include "Arduino_ST7789.h" // Hardware-specific library for ST7789
    #include "Arduino_ST7796.h" // Hardware-specific library for ST7796
    Thanks a lot

    0
    陳亮
    陳亮

    Reply 3 months ago

    remove all #include then add:
    #include "Arduino_GFX_Library.h"

    0
    jbruening
    jbruening

    Reply 3 months ago

    great! Thank-you for advise.
    Just one error msg remains:

    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp: In member function 'virtual void Arduino_TFT::drawChar(int16_t, int16_t, unsigned char, uint16_t, uint16_t)':
    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp:1125:1: error: a15 cannot be used in asm here
    }
    ^
    C:\Dropbox\ARDUINO sketch book\libraries\Arduino_GFX-master\src\Arduino_TFT.cpp:1125:1: error: a15 cannot be used in asm here

    Btw: compiling for WeMos D1 R1
    Still optimistic and in a good mood

    0
    jbruening
    jbruening

    3 months ago

    Try to compile (ESP8266) got error message:
    Arduino_SWSPI: No such file or directory
    Using platforIo I have included the following libraries:
    ottowinter/ESPAsyncWebServer-esphome@^1.2.7
    arduino-libraries/ArduinoHttpClient@^0.4.0
    me-no-dev/ESP Async WebServer@^1.2.3
    tzapu/WiFiManager@^0.16.0
    adafruit/Adafruit BusIO@^1.7.3
    bodmer/TFT_eSPI@^2.3.64
    adafruit/Adafruit Unified Sensor@^1.1.4
    adafruit/Adafruit SSD1306@^2.4.4
    moononournation/GFX Library for Arduino@^1.1.2

    Any idea? Thank-you
    0
    陳亮
    陳亮

    Reply 3 months ago

    Try using Arduino IDE

    0
    陳亮
    陳亮

    Reply 8 months ago

    The voltage depends on the LCD board using, the ST7796 breakout board can use 5 or 3.3 V.

    0
    CY13
    CY13

    Tip 1 year ago on Step 1

    hi for the url i think its expired, how to get the url? Any advice?

    0
    Christian Emeis
    Christian Emeis

    Question 1 year ago on Step 3

    Im missing the MOSI / SDA Pin on my screen, is there another name for the Pin?

    0
    陳亮
    陳亮

    Answer 1 year ago

    Any pins remained? or any photos?

    0
    Christian Emeis
    Christian Emeis

    Reply 1 year ago

    I tried to connect it but there was only a white screen, but in the console I could see that the code is running fine. Im using an esp32.

    20200402_230901.jpg
    0
    陳亮
    陳亮

    Reply 1 year ago

    I think this is not a SPI LCD, 8-bit parallel port not yet supported.

    0
    Christian Emeis
    Christian Emeis

    Reply 1 year ago

    Ok, thank you, do you think its possible for a new esp32 user like me to modify the code so that it runs on this display?

    0
    Christian Emeis
    Christian Emeis

    Reply 1 year ago

    Ore use some additional chip or something like that?

    0
    jawedsoft
    jawedsoft

    1 year ago

    This is incredibly detailed and very well written. You have commented the code so that noobs can understand.
    Thank you for sharing this. I am very keen to create this, but I guess I have to wait for the Amazon deliveries to start.
    Take care and be safe. regards,Jawed India