BMP388 luchtdruk meten met ESP32

Als je een weerstation bouwt, wil je natuurlijk niet alleen weten hoe warm het is. Luchtdruk vertelt vaak veel meer over wat er met het weer aan het gebeuren is.

Op deze pagina laat ik zien hoe ik de BMP388 luchtdruksensor toevoeg aan mijn modulaire ESP32 weerstation. Deze sensor meet luchtdruk, temperatuur en hoogte, en vormt daarmee een belangrijke stap richting een completer weerbeeld in Home Assistant.

Voor mijn modulaire weerstation gebruik ik een ESP32, Arduino code, MQTT en Home Assistant. De BMP388 stuurt zijn gegevens via I2C naar de ESP32. Daarna kunnen de meetwaarden via MQTT naar Home Assistant worden verzonden, zodat je ze kunt tonen in een dashboard en gebruiken voor trends of automatiseringen.

BMP388 luchtdruk sensor · ESP32 weerstation · Arduino MQTT · Home Assistant dashboard

BMP388 luchtdruk sensor aangesloten op een ESP32 voor een modulair weerstation

Wat is dit precies?

De BMP388 is een kleine maar nauwkeurige luchtdruksensor. Naast luchtdruk kan deze sensor ook temperatuur en hoogte berekenen. In een weerstation is vooral de luchtdruk interessant, omdat veranderingen in luchtdruk vaak iets zeggen over de ontwikkeling van het weer.

Een stijgende luchtdruk wijst meestal op rustiger en stabieler weer. Een dalende luchtdruk kan juist een aanwijzing zijn dat er slechter weer of meer wind aankomt. Juist daarom is dit onderdeel handig binnen een zelfgebouwd weerstation.

De sensor communiceert via I2C. Dat betekent dat je maar een paar draden nodig hebt tussen de BMP388 en de ESP32. Hierdoor blijft de bedrading overzichtelijk en kun je later eenvoudig extra sensoren toevoegen aan hetzelfde project.

Waarom heb ik gekozen voor de BMP388?

Voordelen van de BMP388

  • Hoge nauwkeurigheid bij het meten van luchtdruk.
  • Geschikt voor gebruik in een zelfgebouwd weerstation.
  • Meet naast luchtdruk ook temperatuur en hoogte.
  • Werkt via I2C en is daardoor eenvoudig aan te sluiten.
  • Goed te combineren met een ESP32, Arduino code en MQTT.

Voor mijn modulaire weerstation wil ik niet alleen losse meetwaarden tonen, maar ook trends kunnen volgen. Daar past de BMP388 goed bij.

Waarom niet een eenvoudiger alternatief?

Er zijn goedkopere en eenvoudigere luchtdruksensoren beschikbaar. Voor een snelle test kan dat prima zijn, maar voor een weerstation vind ik nauwkeurigheid belangrijker.

Omdat ik de luchtdruk later wil gebruiken voor trends, grafieken en mogelijk een eenvoudige weersverwachting, kies ik liever voor een sensor die daar beter bij past.

Zo ontstaat stap voor stap een compleet weerstation dat niet alleen waarden laat zien, maar ook iets vertelt over de verandering van het weer.

Benodigdheden

Voor dit onderdeel van het weerstation heb je niet veel nodig. De basis bestaat uit een ESP32, de BMP388 sensor en een verbinding met je Wi-Fi netwerk en MQTT broker.

  • ESP32 ontwikkelbord
  • BMP388 luchtdruksensor
  • Jumper wires of andere bedrading
  • Eventueel een weerhut, behuizing of montagemateriaal
  • Wi-Fi netwerk
  • MQTT broker in Home Assistant
  • Arduino IDE met de benodigde libraries

Aansluiten op de ESP32

De BMP388 wordt aangesloten via I2C. Daarbij gebruik je voeding, massa en twee communicatielijnen. Bij een ESP32 worden hiervoor vaak GPIO 21 en GPIO 22 gebruikt, maar dit kan per bord of project verschillen.

  • VCC naar 3.3V op de ESP32
  • GND naar GND op de ESP32
  • SDA naar GPIO 21
  • SCL naar GPIO 22
Let op: controleer altijd of jouw BMP388 module geschikt is voor 3.3V of 5V. De ESP32 werkt met 3.3V logica. Bij twijfel is 3.3V de veilige keuze.

In mijn project gebruik ik de BMP388 als onderdeel van een groter weerstation. Het is daarom handig om de bedrading netjes en modulair te houden, zodat je later eenvoudig andere sensoren kunt toevoegen.

Aansluitschema van de BMP388 luchtdruksensor op een ESP32 via I2C

Wat kun je met deze meting berekenen of bepalen?

Alleen de actuele luchtdruk tonen is al nuttig, maar de echte waarde ontstaat wanneer je de meting combineert met tijd, trends en Home Assistant.

Luchtdruktrend

Door de luchtdruk over meerdere uren te volgen, kun je zien of de druk stijgt, daalt of stabiel blijft. Dat zegt vaak meer dan één losse meting.

Eenvoudige weerindicatie

Een dalende luchtdruk kan wijzen op verslechterend weer. Een stijgende luchtdruk kan juist passen bij rustiger en stabieler weer.

Dashboard en waarschuwingen

In Home Assistant kun je de luchtdruk tonen in grafieken en eventueel waarschuwingen maken bij een snelle luchtdrukdaling.

Arduino code

Bij dit soort sensoren begin ik het liefst eenvoudig. Eerst test ik of de BMP388 goed wordt herkend door de ESP32 en of de basiswaarden worden uitgelezen.

Daarna breid ik de code stap voor stap uit met Wi-Fi, MQTT en eventueel OTA updates. Zo blijft het project overzichtelijk en weet je precies waar een eventuele fout ontstaat.

In de projectcode worden de meetwaarden van de BMP388 gebruikt voor onder andere:

  • actuele luchtdruk
  • luchtdruk omgerekend naar zeeniveau
  • temperatuur van de sensor
  • hoogteberekening
  • luchtdruktrend voor gebruik in Home Assistant

Meer algemene informatie over deze sensor vind je ook op mijn aparte sensorpagina: BMP388 sensorinformatie .

Code en bestanden

De Arduino code en projectbestanden voor dit onderdeel plaats ik op GitHub. Daar kun je de code bekijken, downloaden en eventueel aanpassen voor je eigen weerstation.

Bekijk de BMP388 code op GitHub

Home Assistant en MQTT

De ESP32 stuurt de meetwaarden via MQTT naar Home Assistant. Daarna kun je deze waarden gebruiken als normale sensoren in je dashboard, automatiseringen of grafieken.

Een mogelijke topic-structuur kan er bijvoorbeeld zo uitzien:

  • sensor/weerstation/luchtdruk
  • sensor/weerstation/luchtdruk_zeeniveau
  • sensor/weerstation/bmp388_temperatuur
  • sensor/weerstation/hoogte

Een voorbeeld voor je mqtt.yaml kan er zo uitzien:

- name: "Weerstation luchtdruk"
  unique_id: "weerstation_luchtdruk"
  state_topic: "sensor/weerstation/luchtdruk"
  unit_of_measurement: "hPa"
  device_class: pressure
  state_class: measurement
  icon: mdi:gauge

- name: "Weerstation luchtdruk zeeniveau"
  unique_id: "weerstation_luchtdruk_zeeniveau"
  state_topic: "sensor/weerstation/luchtdruk_zeeniveau"
  unit_of_measurement: "hPa"
  device_class: pressure
  state_class: measurement
  icon: mdi:gauge

- name: "Weerstation BMP388 temperatuur"
  unique_id: "weerstation_bmp388_temperatuur"
  state_topic: "sensor/weerstation/bmp388_temperatuur"
  unit_of_measurement: "°C"
  device_class: temperature
  state_class: measurement
  icon: mdi:thermometer

- name: "Weerstation hoogte"
  unique_id: "weerstation_hoogte"
  state_topic: "sensor/weerstation/hoogte"
  unit_of_measurement: "m"
  state_class: measurement
  icon: mdi:image-filter-hdr
Tip: gebruik voor weersinformatie bij voorkeur de luchtdruk omgerekend naar zeeniveau. Daardoor kun je de waarde beter vergelijken met weerberichten en andere weerstations.

Dashboard in Home Assistant

In Home Assistant kun je de luchtdruk op verschillende manieren tonen. Zelf vind ik vooral een grafiek interessant, omdat je daarmee direct ziet of de luchtdruk stijgt, daalt of stabiel blijft.

Geschikte kaarten zijn bijvoorbeeld:

  • Mini Graph Card voor een compacte trendgrafiek.
  • Mushroom Entity Card voor een nette actuele waarde.
  • ApexCharts voor uitgebreidere grafieken en langere trends.

In het dashboard zie je niet alleen de actuele luchtdruk, maar vooral ook het verloop over tijd. Dat maakt de BMP388 veel nuttiger dan wanneer je alleen een losse waarde bekijkt.

Home Assistant dashboard met BMP388 luchtdrukmeting en luchtdruktrend

Volgende stap in dit weerstation

Met de BMP388 krijgt het weerstation een belangrijke extra laag. Naast temperatuur en luchtvochtigheid kan het systeem nu ook luchtdruk meten en veranderingen in het weerbeeld beter volgen.

De volgende logische stappen zijn bijvoorbeeld het toevoegen van lichtmeting met een VEML7700, windmeting met een anemometer, windrichting of regenmeting. Zo ontstaat stap voor stap een compleet weerstation dat steeds meer informatie geeft aan Home Assistant.

Video

In de video laat ik stap voor stap zien hoe dit onderdeel past binnen het modulaire ESP32 weerstation.

Zelf je weerstation uitbreiden?

Ik ben benieuwd hoe jij jouw weerstation zou uitbreiden. Gebruik je vooral temperatuur en luchtvochtigheid, of wil je ook luchtdruk, regen, wind en licht gaan meten?

Laat het vooral weten onder de video. Daar ontstaan vaak leuke ideeën voor nieuwe uitbreidingen en verbeteringen.

Vind je dit project waardevol en wil je mijn werk ondersteunen? Dan kun je een kop koffie doneren via Buy Me a Coffee .