ESP32 weerstation met temperatuur en luchtvochtigheid meten via SHT41

Meet jij de buitentemperatuur nog “zomaar ergens” tegen een muur of schutting? Dan is de kans groot dat je niet de temperatuur van de lucht meet, maar vooral de invloed van zon, straling en opgewarmde materialen.

Op deze pagina laat ik zien hoe ik voor mijn modulaire weerstation de SHT41 gebruik om temperatuur en luchtvochtigheid betrouwbaar te meten met een ESP32, inclusief Arduino code, MQTT en de eerste koppeling met Home Assistant.

ESP32 weerstation SHT41 temperatuur luchtvochtigheid Home Assistant MQTT Arduino dauwpunt absolute luchtvochtigheid


Wat is dit precies?

Dit is het eerste meetdeel van mijn modulaire weerstation: het betrouwbaar meten van temperatuur en relatieve luchtvochtigheid. Daarvoor gebruik ik een SHT41 sensor op een breakoutboard, aangesloten op een ESP32 via I2C.

De sensor wordt geplaatst in de weerhut die ik eerder heb gebouwd, zodat zoninstraling, regen en opwarming van de behuizing de meting zo min mogelijk beïnvloeden. Juist dat maakt het verschil tussen “een sensor die iets aangeeft” en een meting waar je echt op kunt vertrouwen.

Waarom heb ik gekozen voor de SHT41?

Voor een weerstation wil ik drie dingen: een betrouwbare temperatuurmeting, een nauwkeurige luchtvochtigheid en een sensor die ook op langere termijn stabiel blijft. Daarom heb ik gekozen voor de SHT41.

Voordelen van de SHT41

  • Hoge nauwkeurigheid voor temperatuur en luchtvochtigheid
  • Stabiele metingen over langere tijd
  • Lage energieconsumptie
  • Snelle meettijd
  • I2C communicatie, dus eenvoudig aan te sluiten
  • Prima te combineren met andere I2C sensoren

Waarom niet zomaar een goedkopere sensor?

Je kunt natuurlijk ook een andere sensor gebruiken, maar voor een buitenopstelling en een project waar ik later verder op wil bouwen, wilde ik een degelijk uitgangspunt. De SHT41 past daar voor mij beter bij dan bijvoorbeeld eenvoudigere of goedkopere modules.

Benodigdheden

Later in dit weerstation voeg ik ook andere I2C sensoren toe, zoals een BMP388 voor luchtdruk en een VEML7700 voor lichtmeting. Juist daarom is I2C zo handig: meerdere sensoren kunnen dezelfde bus delen.

SHT41 aansluiten op de ESP32

Omdat de SHT41 via I2C werkt, heb je in de basis maar vier verbindingen nodig:

Let op: ik heb hier zelf een stomme fout gemaakt door gaatjes groter te boren in de print / sensorverbinding. Daardoor ging de verbinding met de printbaan verloren en heb ik sensoren én een ESP32 gesloopt. Mijn advies: niet uitboren, maar netjes aan de pootjes of juiste aansluitpunten solderen.
SHT41 aansluiten op ESP32 via I2C

Wat kun je met temperatuur en luchtvochtigheid berekenen?

De ruwe metingen zijn interessant, maar juist de afgeleide waarden maken zo’n sensor in Home Assistant echt bruikbaar.

Gevoelstemperatuur

Temperatuur en luchtvochtigheid samen bepalen hoe warm of benauwd het echt aanvoelt.

Dauwpunt

Handig voor condens, mist, gladheid en het beoordelen van vochtproblemen.

Absolute luchtvochtigheid

Vooral nuttig als je wilt bepalen of ventileren op dat moment zinvol is.

Zeker voor automatiseringen in huis is absolute luchtvochtigheid vaak interessanter dan alleen de relatieve luchtvochtigheid, omdat je dan binnen en buiten beter met elkaar kunt vergelijken.

Arduino code voor de SHT41

Ik gebruik eerst een eenvoudige testcode om te controleren of de sensor goed werkt. Daarna breid ik die code uit met Wi-Fi, MQTT en OTA updates, zodat de ESP32 uiteindelijk zelfstandig data naar Home Assistant stuurt.

Deze code kan je op deze pagina vinden: Sensoren SHT41

In mijn volledige projectcode voeg ik ook berekeningen toe voor:

Daarnaast gebruik ik een interval-structuur met millis(), zodat temperatuur/luchtvochtigheid en bijvoorbeeld wifi-signaal niet allemaal op hetzelfde moment verstuurd hoeven te worden.

Code en bestanden

GitHub site met code

Home Assistant en MQTT

De ESP32 stuurt temperatuur, luchtvochtigheid en de extra berekende waardes via MQTT naar Home Assistant. In Home Assistant maak ik hiervoor aparte MQTT sensors aan, zodat ik ze in dashboards en automatiseringen kan gebruiken.


mqtt:
  sensor:
    - name: "Weerstation temperatuur"
      unique_id: "weerstation_temperatuur"
      state_topic: "weerstation/temperatuur"
      unit_of_measurement: "°C"
      icon: "mdi:thermometer"

    - name: "Weerstation luchtvochtigheid"
      unique_id: "weerstation_luchtvochtigheid"
      state_topic: "weerstation/luchtvochtigheid"
      unit_of_measurement: "%"
      icon: "mdi:water-percent"
        

Op dezelfde manier kun je ook sensoren toevoegen voor dauwpunt, absolute luchtvochtigheid, gevoelstemperatuur en wifi-signaal.

Dashboard in Home Assistant

Voor het dashboard gebruik ik onder andere:

Daarmee kun je zowel de actuele waarden als trends over 24 uur of 7 dagen netjes weergeven. Dat maakt het weerstation niet alleen technisch interessant, maar ook echt bruikbaar in de praktijk.

Home Assistant dashboard voor temperatuur en luchtvochtigheid van het weerstation

Volgende stap in dit weerstation

Dit is het begin van mijn modulaire weerstation. In volgende stappen breid ik het verder uit met extra sensoren, zoals luchtdruk, lichtmeting en andere weerdata.

Zo ontstaat stap voor stap een compleet weerstation dat niet alleen data meet, maar die informatie ook bruikbaar maakt binnen Home Assistant.


Video

Gebruik je dit project? Superleuk. Laat vooral weten hoe jij jouw weerstation verder hebt uitgebreid.

Vond je het nuttig? ☕ Steun via Buy Me a Coffee