The weather station I built consists of three sensor modules: one outdoor and two indoor.
Each of these modules runs on an ESP32 that sends data to Home Assistant via ESPHome.
The outdoor module is, in effect, a weather station with a decent array of sensors; in fact, it is equipped with:
- An ambient Humidity and Temperature sensor
- A Humidity and Temperature sensor for the enclosure housing the ESP32
- A Humidity and Temperature sensor for a porch
- An outdoor Light sensor
- A Capacitive Rain sensor
- A Cooling fan for the enclosure housing the ESP32
- A Wi-Fi Access Point to extend the internet network outside the house





The first indoor module is equipped with:
- Two status LEDs programmable via Home Assistant
- An ambient humidity and temperature sensor
- A display to show the data collected by the outdoor module


The display on internal module 1 shows the current outdoor temperature and humidity, as well as the maximum and minimum outdoor temperatures over the past 24 hours. It also displays the current power consumption of the server UPS and the rain sensor status (rain/sun icon)
The second indoor module is housed inside a Fingbox case and is equipped with:
- Ambient Humidity and Temperature sensor
- Ambient Light sensor
- Two status LEDs programmable via Home Assistant




ESP32 code and Home Assistant Dashboard
![]()