Introduction: COVID-19 WHO Dashboard
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:
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
- Download the program at GitHub: (press "Clone or Download" -> "Download ZIP") https://github.com/moononournation/COVID-19_WHO_Da...
- Open COVID-19_WHO_Dashboard.ino with Arduino IDE
- Fill your WiFi AP settings into SSID_NAME and SSID_PASSWORD
- If you are not using ILI9341 LCD, comment out line 125 and uncomment the correct LCD class declaration
- Connect ESP Dev Board to computer
- 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!
20 Comments
Question 1 year 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?
Reply 1 year 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.
Question 1 year 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
Reply 1 year ago
sorry for outdated code, the latest library should use:
#include "Arduino_GFX_Library.h"
Reply 1 year 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
Reply 1 year 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
Reply 1 year ago
remove all #include then add:
#include "Arduino_GFX_Library.h"
Reply 1 year 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
1 year ago
Arduino_SWSPI: No such file or directory
Using platforIo I have included the following libraries:
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
Reply 1 year ago
Try using Arduino IDE
1 year ago
Not clear to me
vcc 5 or 3.3 volt?
Wil try your project for learning
4 my tbermostat
https://youtu.be/lny7J7KXk9w
Reply 1 year ago
The voltage depends on the LCD board using, the ST7796 breakout board can use 5 or 3.3 V.
Tip 2 years ago on Step 1
hi for the url i think its expired, how to get the url? Any advice?
Question 2 years ago on Step 3
Im missing the MOSI / SDA Pin on my screen, is there another name for the Pin?
Answer 2 years ago
Any pins remained? or any photos?
Reply 2 years 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.
Reply 2 years ago
I think this is not a SPI LCD, 8-bit parallel port not yet supported.
Reply 2 years 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?
Reply 2 years ago
Ore use some additional chip or something like that?
2 years 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