I here would like to describe a very simple and compact, Raspberry Pi Zero-based weather station, which displays the values measured by a BME280 temperature/pressure/humidity sensor on a Pimoroni Inky pHAT e-paper/e-ink display. To allow the connection of sensors and the pHAT to the GPIO of the Pi I placed a Pimorini Pico HAT hacker with two female headers attached between the GPIO and the display. The device has been used to attach several sensors, so the BME280 version described here is just an example.
Unlike LCD displays, e-ink displays keep the image even if power has been switched off. Therefore they are a very good solution if you want to display information that is updated just from time to time, especially to build low energy devices. The major benefit of the monochrome/black version of the Inky pHAT is that updating the display takes just about one second, instead of ten to fifteen seconds required by the three-color versions. See movie.
Adafruit’s Blinka library allows to run Circuit Python code on the Raspberry Pi, and Circuit Python samples for a wide variety of sensors are available from Adafruit. A detailed description how to install Blinka and the Circuit Python codes can be found at the Adafruit website. The libraries I tested so far (BMP280, BME280, TSL2591, TCS34785, VEML7065, …) were working very well, while there were minor problems in some of the example codes.
BME280 is a sensor to measure temperature, humidity and atmospheric pressure. BMP280 breakouts are available from many vendors, including Adafruit, but I here was using a cheap Chinese version. Please be aware that these are using different i2c addresses (Adafruit: 0x77, others: 0x76).
The breakout is connected to the Pi by i2c, and reading the sensor is very simple using the library and example code.”