Git Product home page Git Product logo

esp32-e-paper-weather-display's Introduction

ESP32-e-Paper-Weather-Display

NOTE:

April 2024

From June 2024 you may have to pay for API (Wx Data) access. You will need to add a payment method to your account, so that OWM can charge you should you exceed 1000 calls/day. Also the API call in the source code may need to be changed from /2.5/ to /3.0/ as yet details are unknown, my best guess is: http://api.openweathermap.org/data/2.5/weather?q=Melksham,UK&APPID=your_OWM_API_key&mode=json&units=metric&cnt=1 Becomes: http://api.openweathermap.org/data/**3.0**/weather?q=Melksham,UK&APPID=your_OWM_API_key&mode=json&units=metric&cnt=1 #############

API

April 2024

OpenWeatherMap have depreciated City names and now calls to their API need to includeLatitude and Longitude data. The examples have been updated to include LAT and LON variables in the credentials file and the associate API Call in Common.h has been modified to use the new format. This is the new format: https://api.openweathermap.org/data/2.5/weather?lat={lat}&lon={lon}&appid={API key}

ALSO NOTE: Most of the API 2.5 calls will still function, only those to the ONECALL variant will fail from June 2024 #############

FONTS

April 2024

If you wish to use extended font characters for language accents, then simply change all instances of a Font selection in the source code from: u8g2_font_helvB08_tf to: u8g2_font_helvB08_te #############

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

    • Waveshare_1_54
    • Waveshare_2_13
    • Waveshare_2_7
    • Waveshare_2_9
    • Waveshare_3_7
    • Waveshare_4_2
    • Waveshare_7_5
    • Waveshare_7_5_T7 (newer 800x480 version of the older 640x384)

    Code requires GxEPD2 library

  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. If your are using the older style Waveshare HAT then you need to use:

**display.init(); //for older Waveshare HAT's

In the InitialiseDisplay() function, comment out the variant as required

  1. 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! Both 2.13" TTGO T5 and 2.7" T5S boards come pre-wired. The 3.7" FireBeetle example contains wiring details.

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. The TTGO T5 and T5S boards already contain the resistor divider on the correct pin. The FireBeetle has a battery monitor on GPIO-36.

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" 400x300 E-Paper Layout

alt_text, width="400"

3.7" 480x280 E-Paper Layout

alt_text, width="400"

2.7" 264x176 E-Paper Layout

alt_text, width="400"

2.13" 250x122 E-Paper Layout

alt_text, width="200"

1.54" 200x200 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/

Modify this line in the code:

display.init(115200, true, 2); // init(uint32_t serial_diag_bitrate, bool initial, uint16_t reset_duration, bool pulldown_rst_mode)

Wiring Schematic for ALL Waveshare E-Paper Displays alt_text, width="300"

esp32-e-paper-weather-display's People

Contributors

andymule avatar battosai30 avatar dtorner avatar fixxcz avatar g6ejd avatar grahamwhaley avatar jeanrobertjs avatar kretzp avatar lyusupov avatar maditnerd avatar mr-const avatar nicolas-f avatar pakequis avatar reiyawea avatar rmoravcik avatar sbonaime avatar simper00 avatar skiphansen avatar squeakyneb avatar systeembeheerder avatar televator avatar thehefi avatar tomaszdom avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

esp32-e-paper-weather-display's Issues

ESP32 freezing after WiFi conection is established

Hi all,

my TTGO Mini32 is sporadically freezing after it's woke up from deep sleep. The last print on serial console is, that WiFi connection was established.

I was able to trace down, that function call display.init() from InitialiseDisplay() sometimes never return.

I added some trace prints to GxEPD2 library and it looks like GxEPD2 is trying to initialize serial port if the first argument of display.init() is greater than 0. And this Serial.begin() inside of GxEPD2 sometimes never return.

I don't see any reason, why another Serial.begin() should hang ESP32, but there is a probably a bug in esp32-arduino or ESP SDK. I'm using version 1.0.4 of esp32-arduino.

So, after I've change code to:

display.init(0);

and my ESP32 started running stable.

What do you think about this modification?

Thank you,
Roman

e-Paper Display - contrast

I use the Waveshare 7,5" e-Paper Display with e-Paper HAT (SPI) as Interface to the ESP32 and the software package ESP32-e-Paper-Weather-Display/German/ changed by me.

At the beginning I have a very good black and white contrast. After a few days, the contrast will always be less and less until it's still "white".
I changed the e-Paper Display and e-Paper HAT interface PCB, but the result was the same thing.

If I switch off for same days and switch on I've also a very good black and white contrast. After a few days, the contras
2019-05-17 08 36 08
t will always be less and less

Any idea's what could be the reason for this problem?

[4.2" v12.2] Temperature: numeric forecast does not match forecast graph?

Hi David,
I didn't dig yet into OWM json or your Arduino code, but as you can see in the attached picture the numeric temperature forecast (+9°|-4°) does not match the graph below, which shows circa +7°|+3° .
Also, the rainfall graph at bottom doesn't show the rain now (10:30) expected for the next 3 hours on top (12:00).
Is this intentional? Did I miss something?
Thank you,
Piero

DSC02146s

Using ESP8266 instead of ESP32

Hello,

is it possible to use an ESP8266 instead of an ESP32? I ask because there is an ESP8266 E-Paper Driver Board from Waveshare and this would be perfect for use with the 7.5" Display.

Which changes must be do on the code to run it on the ESP8266?

I changed #include <Wifi.h> to #include <ESP8266Wifi.h> and commend out the lines

esp_sleep_enable_timer_wakeup(UpdateInterval);

and

esp_deep_sleep_start(); // Sleep for e.g. 30 minutes

also the function UpdateLocalTime();

void UpdateLocalTime() {
 struct tm timeinfo;
  while (!getLocalTime(&timeinfo)) {
    Serial.println(F("Failed to obtain time"));
  }
  //See http://www.cplusplus.com/reference/ctime/strftime/
  //Serial.println(&timeinfo, "%a %b %d %Y   %H:%M:%S");      // Displays: Saturday, June 24 2017 14:05:49
  Serial.println(&timeinfo, "%H:%M:%S");                      // Displays: 14:05:49
  char output[30], day_output[30];
  if (Units == "M") {
    strftime(day_output, 30, "%a  %d-%b-%y", &timeinfo);      // Displays: Sat 24/Jun/17
    strftime(output, 30, "( Updated: %H:%M:%S )", &timeinfo); // Creates: '@ 14:05:49'
  }
  else {
    strftime(day_output, 30, "%a  %b-%d-%y", &timeinfo);      // Creates: Sat Jun/24/17
    strftime(output, 30, "( Updated: %r )", &timeinfo);       // Creates: '@ 2:05:49pm'
  }
  Day_time_str = day_output;
  time_str     = output;
}

and the call of the function:

UpdateLocalTime();

Pin- Setting changed to:

static const uint8_t EPD_BUSY = 16;
static const uint8_t EPD_SS   = 15;
static const uint8_t EPD_RST  = 5;
static const uint8_t EPD_DC   = 4;
static const uint8_t EPD_SCK  = 18;
static const uint8_t EPD_MISO = 19; // Master-In Slave-Out not used, as no data from display
static const uint8_t EPD_MOSI = 23;

The Display is updating but without any data...

I would be nice if anyone can help me to get it working!

Thanks a lot, Regards

Darkmelman

connection lost with last release of ..._75_epaper_v11

I downloaded the last release of ESP32_OWM_Current_Forecast_75_epaper_v11 and get a connection lost.
It works without a "connection lost" >> with an older release of ..._75_epaper_v11 >> downloaded 30-May-2019

output serial monitor.
Connecting to: WLAN_xxxxxx
[D][WiFiGeneric.cpp:342] _eventCallback(): Event: 0 - WIFI_READY
[D][WiFiGeneric.cpp:342] _eventCallback(): Event: 2 - STA_START
.[D][WiFiGeneric.cpp:342] _eventCallback(): Event: 4 - STA_CONNECTED
[D][WiFiGeneric.cpp:342] _eventCallback(): Event: 7 - STA_GOT_IP
[D][WiFiGeneric.cpp:385] _eventCallback(): STA IP: 192.168.xxx.xxx, MASK: 255.255.255.0, GW: 192.168.xxx.1
.WiFi connected at: 2365630656
19Creating object...and Decoding weather data
13.72
52.56
Clear
Klarer Himmel
01d

30.89
1007.00
33.00
28.89
32.22
6.70
90.00
0
10000
DE
1559702731
1559762513
connection failed, error: connection lost
_PowerOff : 3
Awake for : 6911mS
Starting deep-sleep period...

deep sleep

'esp_sleep_enable_timer_wakeup' was not declared in this scope:

/Users/Juergen-S/Desktop/ESP32-e-Paper-Weather-Display/ESP32-e-Paper-Weather-Display.ino: In function 'void setup()':
ESP32-e-Paper-Weather-Display:127: error: 'esp_sleep_enable_timer_wakeup' was not declared in this scope
esp_sleep_enable_timer_wakeup(UpdateInterval);

not working with Waveshare ESP32 board

Waveshare have a rather nice driver board:
https://www.waveshare.com/wiki/E-Paper_ESP32_Driver_Board

So I've got one of those and their 7.5 mono display. They have demos code that allows sending an image to the display using a web browser and I've ran that and it works fine, so the board and connections are good.

The Weather Display code does nothing though. I've got the pin assignments set to the same values as their demo code, the output in the serial console seems fine (gets the data from web service, calls update screen code) but no data is reaching the screen.

Any ideas on the cause or how I can investigate?
Thanks.

[EDIT: Changed first line to clarify the driver-board hardware, not software driver]

a minor issues with Waveshare_4_2 V11

Hello G6EJD,
with the current Waveshare_4_2 V11 sketch I get an compiler error.

Waveshare_4_2:268:50: error: 'Sunrise' was not declared in this scope
Waveshare_4_2:269:50: error: 'Sunset' was not declared in this scope

after declaration of Sunrise, Sunset as int
int wifisection, displaysection, Sunrise, Sunset;
the displayed values are 01:00.

2019-06-22 13 46 23

Release management

The current procedure for updates to this library is to copy one of the example directories, change the version number and ultimately delete the old example files.
This approach is pretty unique to this repo and comes with a couple a drawbacks, namely:

  • The current version strings have no meaning, and are even not consistent over the different display sizes (e.g. v11 of 7.5" has no connection to v11 of 4.2")
  • Updates to the "core" library don't result in a new version bump, so the date of download is highly relevant.
  • It is unclear which old versions can be considered outdated, which need to be maintained and which can be deleted.
  • There is no usable git history of the files.
  • The user cannot simply choose his/her display size but also needs to choose among different versions, which have no meaning and the latest is always considered best anyways.
  • and so on...

I opened this issue to start a discussion on how a better release management could look like and to hear what is important to you.

UnixTime

The Time is hardcodet for your local country,
setenv("TZ","GMT0BST,M3.5.0/01,M10.5.0/02", 1);
Please can you add some other, btw: MET-1METDST ?

Enhancement request - Get weather by City ID instead of City Name

My city name is shared thus making getting valid results is often a challenge. As stated in your notes in the owm_credentials "Takes the first result for a city name. choose wisely. "

I amended the owm_credentials.h to add
String CityID = "xxxxxxx";

I amended the common.h line 114 from

String uri = "/data/2.5/" + RequestType + "?q=" + City + "," + Country + "&APPID=" + apikey + "&mode=json&units=" + units + "&lang=" + Language;

to

String uri = "/data/2.5/" + RequestType + "?id=" + CityID + "&APPID=" + apikey + "&mode=json&units=" + units + "&lang=" + Language;

This produces results for only the city weather station that I want. There is no longer any gess work or choosing wisely :)

OWM recommends this method also
"We recommend to call API by city ID to get unambiguous result for your city."
Get your OpenWeatherMap City ID
Go to www.openweathermap.org.
Type the nearest city or town name into the Search field and click the Search button.
Locate your city in the search results, and click on its name.
The City ID can be found in your browser's address bar.
example https://openweathermap.org/city/2642786

Typo in Waveshare_7_5.ino

Hello, I've been hunting and pecking around and found a typo in Waveshare_7_5.ino. The tri color displays will not work. Line 60 is missing a couple of c's.

Consider changing GxEPD2_3C<GxEPD2_750, GxEPD2_750:: to GxEPD2_3C<GxEPD2_750c, GxEPD2_750c::

This was found by looking at the GxEPD2_example line 137

Enjoy your evening

Compilation of Waveshare_7_5_T7.ino fails for GxEPD2_750c_Z08 (7.5" b/w/r 800x480)

I'm having issues compiling for Waveshare 7.5" color display using PlatformIO. The compilation fails with the below message:

|-- <WiFi> 1.0
|-- <Wire> 1.0.1
Building in release mode
Compiling .pio/build/esp32dev/src/main.cpp.o
Linking .pio/build/esp32dev/firmware.elf
/home/ristomatti/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: .pio/build/esp32dev/firmware.elf section `.dram0.bss' will not fit in region `dram0_0_seg'
/home/ristomatti/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: DRAM segment data does not fit.
/home/ristomatti/.platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0/../../../../xtensa-esp32-elf/bin/ld: region `dram0_0_seg' overflowed by 17200 bytes
collect2: error: ld returned 1 exit status
*** [.pio/build/esp32dev/firmware.elf] Error 1
========================================== [FAILED] Took 7.75 seconds ==========================================

So it appears the code doesn't fit to DRAM. Any tips on reducing the memory consumption?

I was able to compile it with #include <GxEPD2_BW.h> and using the GxEPD2_3C<GxEPD2_750c_Z08, GxEPD2_750c_Z08::HEIGHT> display constructor. However using the graphics/text end up being dim red. When the screen refreshes it goes through a nice crisp black which it then replaces with dark red and eventually a pale red color.

To compile I have done the following changes:

  1. Added library dependencies to platformio.ini:
lib_deps =
  [email protected]
  [email protected]
  [email protected]
  https://github.com/G6EJD/ESP32-e-Paper-Weather-Display.git
  1. Added forward declarations to functions (PIO compiles as .cpp)

  2. Included GxEPD2_3C.h:

// #include <GxEPD2_BW.h>
#include <GxEPD2_3C.h>
  1. Changed display initialization:
// GxEPD2_BW<GxEPD2_750_T7, GxEPD2_750_T7::HEIGHT> display(GxEPD2_750_T7(/*CS=*/ EPD_CS, /*DC=*/ EPD_DC, /*RST=*/ EPD_RST, /*BUSY=*/ EPD_BUSY));   // B/W display
GxEPD2_3C<GxEPD2_750c_Z08, GxEPD2_750c_Z08::HEIGHT> display(GxEPD2_750c_Z08(/*CS=*/ EPD_CS, /*DC=*/ EPD_DC, /*RST=*/ EPD_RST, /*BUSY=*/ EPD_BUSY)); // 3-colour displays

Failed to obtain time

Hello,
i use your V16.3 Waveshare_7_5 and get this error: (an 1 year old Version is running)

Connecting to: FRITZ2
WiFi connected at: 192.168.8.110
Failed to obtain time
Entering 1800-secs of sleep time
Awake for : 9.110-secs
Starting deep-sleep period...

Please can you tell me, what's wrong?

error: stray '\302' in program

Hello,
compiling your code gave the following errors.
Pleas can you help me?
BR
Juergen

In file included from /Users/Juergen-S/Desktop/ESP32-e-Paper-Weather-Display/ESP32-e-Paper-Weather-Display.ino:20:0:
credentials.h:13: error: stray '\302' in program
const char * host    = "api.wunderground.com";
^
credentials.h:13: error: stray '\240' in program
credentials.h:13: error: stray '\302' in program
credentials.h:13: error: stray '\240' in program
credentials.h:13: error: stray '\302' in program
credentials.h:13: error: stray '\240' in program
credentials.h:14: error: stray '\302' in program
String      City    = "Kassel";             // Your home city
^
credentials.h:14: error: stray '\240' in program
credentials.h:14: error: stray '\302' in program
credentials.h:14: error: stray '\240' in program
credentials.h:14: error: stray '\302' in program
...
...
..

Updated Graphs: Some code

Hi,

I've used your code to write a weather station that does not only display the forecast, but also prints some data from (homemade) temp/humidity sensors. Most of the code is pretty specific, but I think one piece of code you might be interested in is an updated graph-drawing method.

grafik

Improvements:

  • Allow multiple datasets per graph (one struct reading per dataset)
  • Allow to set color per dataset (reading.color)
  • Show midnight-spacers (the small lines coming from the bottom into the graph)
  • Print the actual date on the bottom (instead of 0, 1, 2). bool historicalData can be set to print dates from the past.
  • Make the dotted lines finer

Since the integration of this changes need some changes on the calling functions, I don't want to simply open a pull request. I put the code there: https://gist.github.com/charno/cc8dcf5443a5760c63d0384358b395b4

Best regards
Christof

error in compile

hello
i followed your instructions.
after compiling ..
Error compiling for board ESP32 Dev Module

Multiple Refreshes

I have my Weather station running perfectly now on the 4.2in display and a custom ESP32 board.
While its not missed a beat since I got it working, I have now noticed some odd behaviour and was wondering if anyone else has the same..
I've noticed on the hour that the first refresh will run at for example 11:59:30 and then the refresh will run again at 12:00:05. While this isn't a problem for the use of the device, it must be using extra power and resource ?
Thanks for a great project, loving having it on my desk especially while having to work from home !

Paul
G1ROK

stuck on "Creating object..."

...the display shows only "Getting data from Weather Onderground". Nothing more...

.....WiFi connected at: 1286777024
17:04:19
Connecting to api.wunderground.com
Requesting URL: http://api.wunderground.com/api/b3d60ab21601c97e/conditions/q/DE/Kassel.json
Receiving API weather data.................
Closing connection
Bytes received: 981
Creating object...
Connecting to api.wunderground.com
Requesting URL: http://api.wunderground.com/api/b3d60ab21601c97e/forecast/astronomy/q/DE/Kassel.json
Receiving API weather data.................
Closing connection
Bytes received: 1000
Creating object...

ESP32 Arduino compile issue

Not had a chace to have a good look but im getting this error.

"no matching function for call to 'GxEPD2_BW<GxEPD2_420, 300u>::getTextBounds(String&, int&, int&, int16_t*, int16_t*, uint16_t*, uint16_t*)'"

Im using the 4.2 Waveshare display version

Waveshare_4_2: error: 'EPD_CS' was not declared in this scope

Error until compiling:
Waveshare_4_2:889:42: error: 'EPD_CS' was not declared in this scope
SPI.begin(EPD_SCK, EPD_MISO, EPD_MOSI, EPD_CS);

in line 40 you wrote:
static const uint8_t EPD_SS = 5; // to EPD CS
ist must be:
static const uint8_t EPD_CS = 5; // to EPD CS

output error of WiFi.localIP in serial monitor

Serial.println("WiFi connected at: " + String(WiFi.localIP()));
create the following output
WiFi connected at: 2365630656

you could use the following line

`Serial.printf("\r\nWiFi connected at: %s\n", WiFi.localIP().toString().c_str());`    

WiFi connected at: 192.168.0.141

Battery level not correct or showing

Good evening Dave,

I'm currently using your Streaming V1 ino and i'm having issues with displaying the correct battery voltage. When the default ino file is loaded there isn't any battery reading at all even when my battery voltage is reading 4.03v. At times it will read the battery and will only show 0.15V on the screen as I changed the if (voltage >1) to 0.000. The battery i'm currently using is a 3.7v 10000mAh.

forecast_record.h is missing

Great project, thank you!
It seems as if, in the last commit, you forgot to commit forecast_record.h, because it is missing when i clone & try to compile the project.

Greetings from Berlin!

Busy Timeout!

Hello,
i use your newest V16.4 and have problems to connect. 16.3 works correct.
It runs on a TTGO ESP32-WROVER.

ets_ Jun 8 2016 00:22:57
rst:0x10 (RTCWDT_RTC_RESET),boot:0x33 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1100
load:0x40078000,len:9232
load:0x40080400,len:6400
entry 0x400806a8
Connecting to: FRITZ2
WiFi connected at: 192.168.8.102
Busy Timeout!
Entering 157-secs of sleep time
Awake for : 19.987-secs
Starting deep-sleep _period...

and here:
....
Icon name: 04n
Icon name: 04d
Voltage = 4.17
Busy Timeout!
_PowerOn : 10001028
Busy Timeout!
_Update_Full : 10001015
Busy Timeout!
_PowerOff : 10001015
Entering 860-secs of sleep time
Awake for : 41.301-secs
Starting deep-sleep period...

defined twice

"api.wunderground.com" is defined twice, in the main and in credential.h

ESP32-e-Paper-Weather-Display:90: error: redefinition of 'const char* host'
const char* host = "api.wunderground.com";
^
In file included from /Users/Juergen-S/Desktop/ESP32-e-Paper-Weather-Display/ESP32-e-Paper-Weather-Display.ino:22:0:
sketch/credentials.h:13:13: note: 'const char* host' previously defined here
const char* host = "api.wunderground.com";

Json?

Hello,
i get this errors on compiling. ArdoinoJon 6.0.1.a is installed.
Please, can you help?
BR
Juergen
PS: with ESP32_OWM_Current_Forecast_29_epaper_v7 i have the same errors!

ESP32_WU_Current_Forecast_29_epaper_v5a:351: error: 'DynamicJsonBuffer' was not declared in this scope
DynamicJsonBuffer jsonBuffer(101024);
^
ESP32_WU_Current_Forecast_29_epaper_v5a:420: error: 'DynamicJsonBuffer' was not declared in this scope
DynamicJsonBuffer jsonBuffer(13
1024);
^
exit status 1
'DynamicJsonBuffer' was not declared in this scope

You forgot a curly brace

Hello,
You forgot a curly brace in your library:

C:\Dummy\Arduino\portable\sketchbook\libraries\ESP32-e-Paper-Weather-Display-master\src/lang_gr.h:73:78: error: expected '}' before ';' token

const char* weekday_D[] = { "So.", "Mo.", "Di.", "Mi.", "Do.", "Fr.", "Sa." ;

WiFi - authentication failure

On the serial monitor I've seen a faw WiFi - authentication failure.
For testing I reduced the sketch - and changed the deep sleep mechanism

  • wakeup every minute (later for a BME280 extension) and every 30 min download of OWM - data.

Sketch:
WakeUpTimer_WLAN.zip

The StartWiFi() produce a lot of ...
_eventCallback(): Event: 5 - STA_DISCONNECTED
_eventCallback(): Reason: 202 - AUTH_FAIL.

I've tested with different boards, but get the same "AUTH_FAIL".
- NodeMCU ESP32
- HIMALAYA ESP32 Dev Board
- Universal e-Paper Raw Panel Driver Board, ESP32.

Monitor output:
Monitor output.zip

Color support? (and partial refresh)

The project looks great, I'm hovering over a "Buy" button on a 7.5" display :)
Before buying the mono display, The "color" ones, yellow or red commonly, look interesting. I know they are horribly slow, but it may be worth it depending on the results.

Is this project really to support a third color in any way, or should I just get the mono display ?

Also, does it handle partial-refresh at all?

Many thanks, I'm going to continue browsing the code trying to get a handle on it.

800x480 update?

Waveshare updated the 7.5" inch e-Paper from 640x384 pixels to 800x480. The current code does not work for this version. Changing:

GxEPD2_BW<GxEPD2_750, GxEPD2_750::HEIGHT> display(GxEPD2_750(/*CS=*/ EPD_CS, /*DC=*/ EPD_DC, /*RST=*/ EPD_RST, /*BUSY=*/ EPD_BUSY)); // B/W display
to
GxEPD2_BW<GxEPD2_750_T7, GxEPD2_750_T7::HEIGHT> display(GxEPD2_750_T7(/*CS=*/ EPD_CS, /*DC=*/ EPD_DC, /*RST=*/ EPD_RST, /*BUSY=*/ EPD_BUSY)); // B/W display
makes it works, but does not use the extra pixels. Is seems all the dimensions are hard coded.

Confusing wiring jpg

https://raw.githubusercontent.com/G6EJD/ESP32-e-Paper-Weather-Display/master/Schematic.jpg

The diagram shows ESP pin 19 connected to ePaper busy. The table also says 19. The text on the left however shows pin 4 for busy and 19 as not used.

https://raw.githubusercontent.com/G6EJD/ESP32-e-Paper-Weather-Display/master/Lolin32_Wiring.JPG
and
https://raw.githubusercontent.com/G6EJD/ESP32-e-Paper-Weather-Display/master/Lolin32_Lite_Wiring.JPG

Both use pin 4 for busy.

Please fix Schematic or remove it in favour of the both Lolin32 jpg's.

Some minor issues with version 13

Hello G6EJD,

first of all: Thank you very much for this project and all the hard work you put into it. :)

I updated yesterday from v8 to v13 and found some minor issues which I like to report to you, just to let you know:

  • The "owm_credentials.h" file was missing in the v13 folder, so I put it there from v12. Maybe it would be good to store this in the src-folder where the rest of the common files are?

  • The file "ESP32_OWM_Current_Forecast_75_epaper_v13.ino" contains the wifi settings as "ssid" and "password". The "owm_credentials.h" file contains them as "ssid1" and "password1". So a small change here to perform.

  • I could not find the file "lang_gr.h" for localization into German, so I will put you mine here, if you like to overtake it? I am still searching for the replacement chars to support the in German often used umlauts like "ä, ü, ö, ß". Actually I used "ae, ue, oe, ss" instead for now.
    lang_gr.h.zip

  • If you don't mind I would like to integrate my improved version of this IOT installation method to add the wifi credentials on first startup called Basecamp. Link: https://github.com/merlinschumacher/Basecamp
    I used and enhanced it for some other projects I use in the below showed frames. I want to give these frames away for some friends and family as present and then they can setup their wifi connection on first startup themselves. ;)
    If you like I can give it a shot and you have a look afterwards if you like it of not?

Also I have a little question: Why is the condition text mixed as "Clear (Klarer Himmel)". I think this comes from open weather map data and is not translated there, right? I set all settings to "DE" in the "owm_credentials.h" file...
img

Thanks a lot and have a nice day. :) 8)

AWSW

WxConditions change to uppercase letter

In the DisplayForecastTextSection function you use for WxConditions the toLowerCase() function.

e.g. the OWM download for WxConditions "Klarer Himmel" (if String Language = "DE";) that is correct and Himmel have a uppercase letter.

(no issue) resolution independent?

You know, there are ePaper-displays with different resolutions.
It would be nice, to modify your code independent the resolution.
gfx.drawLine(0,77,296,77); --> High=384; With=640`; gfx.drawLine(0,(High / 100*77), (With / 100*296), (High/100*77));**

Compile error: GxEPD2_BW.h

Hi,

I wanted to flash my SBC-NodeMCU-ESP32 and get the error GxEPD2_BW.h: No such file or directory
Heres the error message:

Arduino: 1.8.10 (Windows 10), Board: "DOIT ESP32 DEVKIT V1, 80MHz, 921600, None"

Waveshare_4_2:43:23: error: GxEPD2_BW.h: No such file or directory

Multiple libraries were found for "Carousel.h"
compilation terminated.

Used: C:\Users\B0IIE\Documents\Arduino\libraries\minigrafx-master
Multiple libraries were found for "FS.h"
Used: C:\Users\B0IIE\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\FS
Multiple libraries were found for "SPIFFS.h"
Used: C:\Users\B0IIE\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\SPIFFS
Multiple libraries were found for "SPI.h"
Used: C:\Users\B0IIE\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\SPI
Multiple libraries were found for "ArduinoJson.h"
Used: C:\Users\B0IIE\Documents\Arduino\libraries\ArduinoJson-6.x
Multiple libraries were found for "WiFi.h"
Used: C:\Users\B0IIE\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
Not used: e:\Arduino\libraries\WiFi
exit status 1
GxEPD2_BW.h: No such file or directory

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

What am I missing / doing wrong?

GxEDP font availability

The GxEPD2 (or GxEPD2_32) library support U8g2 font use. List of standard ones:
https://github.com/olikraus/u8g2/wiki/fntlistall

Right the way down to 4 pixels.
Not been able to check for a degree symbol at the moment, due to breaking the driver board for the screen while removing the factory installed pin headers :/

Possibly this library may provide other benefits?
I do have a (most times) working 2.9" display, and testing it with GxEDP2_32 seemed to provide very fast screen updates, perhaps three frames per second.

error when compiling

hello,
i get an error when compiling :
Waveshare_7_5.ino: 92:44: error: 'alignment' has not been declared
Waveshare_7_5.ino: 93:77: error: 'alignment' has not been declared

but when i edit around the line 92 i find this code :

#define max_readings 24  // line 88
 //89
Forecast_record_type  WxConditions[1];   // 90
Forecast_record_type  WxForecast[max_readings]; //91
                 //92
#include "common.h"    //93
                                   //94
#define autoscale_on  true
#define autoscale_off false
#define barchart_on   true
#define barchart_off  false

and the alignment enum is declared at line 42

enum alignment {LEFT, RIGHT,CENTER};

please some help...

compile error no matching function to call

Hello, I'm trying to compile for the LolinD32. Error is --- no matching function for call to 'GxEPD2_3C<GxEPD2_750, 384u>::getTextBounds(String&, int&, int&, int16_t*, int16_t*, uint16_t*, uint16_t*)'

Any ideas??? It's 2am and I'm fresh out of brain.

Variables not declared in scope

I have donwloaded the .zip, installed the library and while compiling there are errors of variables "not declared in scope". I´ve tried to fix it but I do not know the type of variables they are.

Error for Waveshare_2_9.ino:

Waveshare_2_9:398:3: error: 'CurrentHour' was not declared in this scope
CurrentHour = timeinfo.tm_hour;
^
Waveshare_2_9:399:3: error: 'CurrentMin' was not declared in this scope
CurrentMin = timeinfo.tm_min;
^
Waveshare_2_9:400:3: error: 'CurrentSec' was not declared in this scope
CurrentSec = timeinfo.tm_sec;
^
Waveshare_2_9:406:48: error: 'weekday_D' was not declared in this scope
sprintf(day_output, "%s, %02u. %s %04u", weekday_D[timeinfo.tm_wday], timeinfo.tm_mday, month_M[timeinfo.tm_mon], (timeinfo.tm_year) + 1900); // day_output >> So., 23. Juni 2019 <<
^
Waveshare_2_9:406:95: error: 'month_M' was not declared in this scope
sprintf(day_output, "%s, %02u. %s %04u", weekday_D[timeinfo.tm_wday], timeinfo.tm_mday, month_M[timeinfo.tm_mon], (timeinfo.tm_year) + 1900); // day_output >> So., 23. Juni 2019 <<
^
Waveshare_2_9:410:46: error: 'weekday_D' was not declared in this scope
sprintf(day_output, "%s %02u-%s-%04u", weekday_D[timeinfo.tm_wday], timeinfo.tm_mday, month_M[timeinfo.tm_mon], (timeinfo.tm_year) + 1900);
^
Waveshare_2_9:410:93: error: 'month_M' was not declared in this scope
sprintf(day_output, "%s %02u-%s-%04u", weekday_D[timeinfo.tm_wday], timeinfo.tm_mday, month_M[timeinfo.tm_mon], (timeinfo.tm_year) + 1900);
^
Waveshare_2_9:413:35: error: 'TXT_UPDATED' was not declared in this scope
sprintf(time_output, "%s %s", TXT_UPDATED, update_time);
^
Waveshare_2_9:419:35: error: 'TXT_UPDATED' was not declared in this scope
sprintf(time_output, "%s %s", TXT_UPDATED, update_time);
^
Waveshare_2_9:421:3: error: 'date_str' was not declared in this scope
date_str = day_output;
^

Forecasted Weather

Hi G6EJD !!

Thank you for your amazing work !!
I've got an issue with the forecasted weather... My graphs stay empty as hourly forecast:

img_2803

Do you have a solution for this ?

Thank you !!

Accidental .ino.ino

Hi,

there is an accidentally committed Waveshare_7_5.ino.ino, I could clean that up, but in this case a rebase and force push would probably the better option.
Simply renaming and overwriting the .ino will delete my changes.

If you need help, you could also give me force-push rights for master for an hour or two.

Version String Missing Terminating Character

Line 75 of Waveshare_7_5 Example missing "

IS:

//################ VERSION ###########################################
String version = "16.7; // Programme version, see change log at end
//################ VARIABLES ###########################################

SHOULD BE:

//################ VERSION ###########################################
String version = "16.7"; // Programme version, see change log at end
//################ VARIABLES ###########################################

FYI, love the project! Thank you.

--Matt

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.