A simple NodeMCU / BME280 Weatherstation with WaveShare E-Paper 1.54 inch Display




A couple of months ago I wrote an article about the WaveShare 1.54 inch e-paper display connected to an Arduino MKR1000. At some point of time, and for unknown reasons, the MKR1000 stopped working, and I didn’t want to shell out another freakin‘ 35 bucks for a new one. In the meantime, I learned to love the ESP8266 platform, because it is dirt cheap and it comes along in many flavors, from the ESP-01 basic Wifi module up to the ESP32 dual core and highly integrated MCU.
The Arduino IDE has been extended to support almost all of the ESP8266 boards, with very little configuration necessary. So, two of the most popular platforms team up, and you can develop really funky stuff for the ESP8266 platform and just continue using the Arduino IDE for development. What’s also worth mentioning is that the ESP8266 modules have a lot more flash memory than even the Arduino Mega, plus a matching number of digital pins, I2C, SPI, but only a few (well, just one) analog input.

This article is about collecting weather data from a BME280 sensor (temperature, humidity, air pressure), display the data on a WaveShare e-paper display, and running a web server which provides a web page with the current weather data. We connect the BME280 sensor via I2C and the e-paper module connects via SPI and a few other signals / pins.

Parts list:

1 x BME280 sensor
1 x NodeMCU WIFI micropocessor module
1 x WaveShare 1.54 inch e-paper display module
1 x Breadboard
12 x Jumper Cable

What makes this setup a bit special is that we use Adafruit GFX libraries to control the e-paper display module instead of the vendor’s EDP libraries. And choosing the right pins for connecting the display to the NodeMCU module proved to be critical.
If you want to run the whole setup on batteries, using the e-paper module is a good choice, as its power consumption is really low. On the other hand, the NodeMCU’s design is not very battery friendly. Although its deep sleep mode is intuitively to use, it still consumes around 10mA of current due to the USB controller chip and the voltage regulator which are soldered on the module. There are a few articles on the internet how you can get rid of them.

One Reply to “A simple NodeMCU / BME280 Weatherstation with WaveShare E-Paper 1.54 inch Display”