Eindproject — De Werkplaats-klimaatmonitor
Breng led, drukknop en BME280 samen in een ESPHome-klimaatmonitor voor De Werkplaats en test hardware, integratie en uitval.
We hebben de afzonderlijke onderdelen leren kennen. Nu gaan we ze combineren. Niet om zo veel mogelijk functies op één ESP32 te zetten, maar om een klein apparaat te maken waarvan we iedere functie begrijpen.
Het ontwerp
Onze klimaatmonitor meet temperatuur, luchtvochtigheid en luchtdruk met een BME280. Een drukknop bedient lokaal een status-led. Home Assistant ontvangt de klimaatwaarden via de native API en kan bij een te hoge temperatuur een melding tonen.
De ESP32 werkt lokaal door als de verbinding met Home Assistant ontbreekt: de sensor blijft uitleesbaar door de firmware en de knop kan de led blijven omschakelen. We claimen hiermee niet dat metingen tijdens een netwerkstoring automatisch historisch worden bewaard; voor lokale buffering zou extra configuratie nodig zijn.
Dit heb je nodig
Een ESP32-WROOM-32-ontwikkelbord, BME280-module die op 3,3 volt werkt, led, 330-ohmweerstand, drukknop, breadboard, jumperdraden, USB-datakabel en een geschikte USB-voeding. Een multimeter helpt bij het controleren van de verbindingen.
Het aansluitschema in woorden
| Onderdeel | Aansluiting | ESP32 |
|---|---|---|
| Led | Anode via 330 Ω | GPIO23 |
| Led | Kathode | GND |
| Drukknop | Eerste zijde | GPIO18 |
| Drukknop | Tweede zijde | GND |
| BME280 | Voeding, geschikt voor 3,3 V | 3V3 |
| BME280 | GND | GND |
| BME280 | SDA | GPIO21 |
| BME280 | SCL | GPIO22 |
Controleer of de twee kanten van de drukknop daadwerkelijk de contactpunten zijn die bij indrukken met elkaar worden verbonden. Controleer de BME280-pinnen op je eigen module. Koppel de USB-voeding los tijdens het aansluiten.
De configuratie samenbrengen
Maak in de Device Builder een nieuw apparaat
werkplaats-klimaatmonitor. Gebruik de wizard om de
volledige basisconfiguratie voor jouw bord, wifi, API-beveiliging en
OTA-instellingen te genereren. Vervang die basis niet
door onderstaande tekst: voeg de volgende secties toe aan het door de
wizard aangemaakte YAML-bestand.
# Klimaatsensor via de I²C-bus
i2c:
sda: GPIO21
scl: GPIO22
scan: true
sensor:
- platform: bme280_i2c
address: 0x76
temperature:
name: "Werkplaats temperatuur"
id: werkplaats_temperatuur
humidity:
name: "Werkplaats luchtvochtigheid"
pressure:
name: "Werkplaats luchtdruk"
update_interval: 30s
# De led wordt bij het opstarten uitgeschakeld
switch:
- platform: gpio
name: "Werkplaats statusled"
id: werkplaats_statusled
pin: GPIO23
restore_mode: ALWAYS_OFF
# De knop werkt lokaal, zonder tussenkomst van Home Assistant
binary_sensor:
- platform: gpio
name: "Werkplaats drukknop"
pin:
number: GPIO18
mode:
input: true
pullup: true
inverted: true
filters:
- delayed_on: 20ms
- delayed_off: 20ms
on_press:
then:
- switch.toggle: werkplaats_statusled
Gebruik address: 0x77 wanneer jouw sensor daarop
reageert. Controleer de configuratie en installeer hem. Verander niet
meteen meerdere onderdelen wanneer je een foutmelding krijgt.
De eerste test: werkt de hardware?
Controleer de opstartlogs. Zie je dat de BME280 op het ingestelde adres wordt gevonden? Kijk daarna of temperatuur, luchtvochtigheid en luchtdruk verschijnen. Noteer de waarden. Druk vervolgens eenmaal op de knop en kijk of de led van toestand verandert.
Wanneer de led werkt maar de sensor niet, hoeven we de knopschakeling niet opnieuw te bouwen. De fout bevindt zich waarschijnlijk bij de sensor, I²C-bus of bijbehorende configuratie.
De tweede test: werkt de integratie?
Voeg het apparaat toe via Instellingen → Apparaten en diensten → ESPHome. Controleer de meetwaarden en de toestand van de drukknop en led. Vergelijk de temperatuur met een thermometer in dezelfde ruimte.
Maak pas daarna de temperatuurautomatisering uit het vorige hoofdstuk. Test eerst de actie en daarna de echte overgang over de drempelwaarde.
De derde test: wat gebeurt er wanneer iets wegvalt?
Laat de ESP32 aanstaan en maak Home Assistant gecontroleerd tijdelijk onbereikbaar. Controleer of de drukknop nog steeds de led bedient. Herstel daarna de verbinding en kijk of Home Assistant de actuele waarden opnieuw ontvangt.
Test ook een stroomonderbreking door de USB-voeding los te koppelen en daarna opnieuw aan te sluiten. De led hoort volgens onze keuze bij het opstarten uit te zijn. De BME280 moet weer worden gevonden en het apparaat hoort weer op het netwerk te verschijnen.
Van breadboard naar een blijvend project
Een breadboard is geschikt om te leren en te testen. Voor langdurig gebruik verdient een stevigere verbinding de voorkeur. Zorg voor trekontlasting van kabels, een geschikte voeding, een veilige behuizing en voldoende luchtcirculatie rond de BME280.
Plaats de sensor niet strak tegen de ESP32 en niet vlak bij warmtebronnen. Anders meet je mogelijk de warmte van het apparaat in plaats van de temperatuur van De Werkplaats.
Leg in een projectnotitie vast welke pinnen je hebt gebruikt, welk I²C-adres werkt, waar de definitieve YAML is opgeslagen en hoe je de hardware kunt herstellen als OTA ooit niet meer werkt.
Wat je uit dit hoofdstuk kunt meenemen
Je hebt nu een complete route doorlopen: een idee bedenken, onderdelen selecteren, veilig aansluiten, YAML opbouwen, firmware installeren, metingen controleren, koppelen aan Home Assistant en storingen bewust testen. Het is geen eindpunt. In het volgende hoofdstuk bekijken we hoe je vanuit deze basis je eigen projecten ontwerpt.