- Open Weather Map Weather Report / Forecast Display (from G6EJD/ESP32-e-Paper-Weather-Display)
- Local Sensor Data Display
- Theengs Decoder Bluetooth Low Energy Sensors Integration
- BME280 Temperature/Humidity/Barometric Pressure Sensor Integration
- Sensirion SCD4x CO2 Sensor Integration
- Remote Sensor Data Display
- MQTT Client Integration (e.g. for BresserWeatherSensorReceiver or BresserWeatherSensorLW)
- Publishing of local Sensor Data via MQTT (separate MQTT Broker Configuration)
- Switching between virtual Screens via TTP223 Touch Sensors
- Sensor Histogram Data stored in ESP32's RTC RAM (persistent in Deep-Sleep Mode)
- Currently only 7.5" e-Paper Displays supported
Note: Display quality is much better in reality than in the images below!
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 Waveshare_7_5_T7_Sensors.ino
. 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 following libraries installed.
Also see: https://www.arduino.cc/en/Guide/Libraries#toc4
- GxEPD2 library by Jean-Marc Zingg
- Adafruit_GFX by Adafruit Industries
- U8g2_for_Adafruit_GFX by Oli Kraus
- Arduino JSON (v6 or above) by Benoît Blanchon
- pocketBME280 by Axel Grewe
- NimBLE-Arduino by h2zero
- Theengs Decoder by Florian Robert
- I2C SCD4x Arduino Library by Sensirion
- Arduino MQTT by Joël Gähwiler
- cQueue by SMFSW
Download the software to your Arduino's library directory.
-
From the examples, choose
- Waveshare_7_5_T7_Sensors
-
Obtain your OWM API key - it's free
-
Edit the
owm_credentials.h
file in the IDE (TAB at top of IDE) and edit- the Bluetooth LE sensor's address
- Language
- Country
- Time Zone
- Units (Metric or Imperial)
- MQTT settings (for remote data)
- OpenWeatherMap API Key
- a valid weather station location on OpenWeatherMap
-
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
- 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.
-
Change the Partition Scheme in the Arduino IDE to "Mnimal SPIFFS (1.9MB APP with OTA/190KB SPIFFS)"
-
Optional: Personalize your display
-
change the text on the start screen (define
TXT_START
inowm_credentials.h
) -
change the screen titles (string
LOCATIONS_TXT
inowm_credentials.h
) -
replace the bitmap images on the local/remote screens (
bitmap_local.h
andbitmap_remote.h
)
-
Compile and upload the code - Enjoy!
7.5" 800x480 E-Paper Layout
7.5" 640x384 E-Paper Layout
**** 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)