Arduino Uno e-ink home weather station
A simple Arduino Uno weather station with a Waveshare 4.3in e-ink display, BME280 and DS3231 clock.

Key Facts
- Board: Arduino Uno
- Display: Waveshare 4.3in e-ink (UART)
- Sensors: BME280 + DS3231 RTC
- Features: local pressure-based forecast
About This Project
This compact project wires an Arduino Uno to a Waveshare 4.3in UART e-ink panel, an Adafruit BME280 and a DS3231 RTC. The screen shows time, date, temperature, humidity, station and sea-level pressure, a short-term local forecast derived from pressure trends, and a pressure-tendency indicator. Parts are few and the code is straightforward, so it is a good first e-ink build on classic Arduino hardware. Note the repo has not been updated since 2018.
Source & Attribution

Illustration
Parts Needed
- Arduino Uno
- Waveshare 4.3in e-Paper UART display
- BME280 breakout
- DS3231 RTC module
- 5V supply, jumper wires
Steps
- 1
Wire the display
The 4.3in Waveshare module uses UART. Connect it to the Uno's serial (or SoftwareSerial) pins as defined in the sketch, and power it from 5V.
- 2
Wire the sensors
The BME280 and DS3231 both use I2C, so connect both to A4 (SDA) and A5 (SCL), plus power and GND.
- 3
Install libraries
Install the BME280, RTClib (DS3231) and Waveshare e-paper serial libraries named in the sketch's #include lines.
- 4
Set the clock and upload
Set the RTC time once, using the RTClib example or the sketch's setup code, then upload the weather station sketch.
- 5
Tips
The README has no instructions, so check the pin definitions in the source before wiring. The pressure-based forecast needs a few hours of history before it becomes meaningful.
Not included: 3D-printed case, wire, solder, USB cable
Related Projects


