ESP32-e-Paper-Weather-Display

by G6EJD

An ESP32 and 2.9", 4.2" or 7.5" ePaper Display reads Weather Underground data via their API and then...

294 Stars 75 Forks Last release: Not found Other 426 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

ESP32-e-Paper-Weather-Display

An ESP32 and an ePaper Display reads Open Weather Map and displays the weather

For standalone use, download the ZIP file to your desktop.

Go to Sketch > Include Library... > Add .ZIP Library... Then, choose the ZIP file.

After inclusion, Go to File, Examples and scroll down to 'ESP32-e-paperWeather-display' and choose your version/screen size. Make sure to come back to this dialog from time to time to keep each library up to date. Also make sure that you only have one version of each of the libraries installed.

Also see: https://www.arduino.cc/en/Guide/Libraries#toc4

Download the software to your Arduino's library directory.

  1. From the examples, choose depending on your module either

    • Waveshare154
    • Waveshare29
    • Waveshare42
    • Waveshare75 (instead of Mini Grafx requires GxEPD2 library, which needs Adafruit_GFX, additionally requires U8g2forAdafruit_GFX)
    • Waveshare75_T7 (the newer 800x480 version; above is 640x384)
  2. Obtain your OWM API key - it's free

  3. Edit the owm_credentials.h file in the IDE (TAB at top of IDE) and change your Language, Country, choose your units Metric or Imperial and be sure to find a valid weather station location on OpenWeatherMap, if your display has all blank values your location does not exist!

  4. Save your files.

NOTE: See schematic for the wiring diagram, all displays are wired the same, so wire a 7.5" the same as a 4.2", 2.9" or 1.54" display!

The Battery monitor assumes the use of a Lolin D32 board which uses GPIO-35 as an ADC input, also it has an on-board 100K+100K voltage divider directly connected to the Battery terminals. On other boards, you will need to change the analogRead(35) statement to your board e.g. (39) and attach a voltage divider to the battery terminals.

Compile and upload the code - Enjoy!

7.5" 800x480 E-Paper Layout

alt text width="600"

7.5" 640x384 E-Paper Layout

alt text width="600"

4.2" E-Paper Layout

alt_text, width="400"

1.54" E-Paper Layout

alt_text, width="200"

**** NOTE change needed for latest Waveshare HAT versions ****

Ensure you have the latest GxEPD2 library

See here: https://github.com/ZinggJM/GxEPD2/releases/tag/1.2.10

Modify this line in the code:

display.init(115200, true, 2); // init(uint32t serialdiagbitrate, bool initial, uint16t resetduration, bool pulldownrst_mode)

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.