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
- ESP32 ontwikkelbord
- SHT41 breakoutboard
- Jumper wires of losse bedrading
- Soldeerbout + tin
- Weerhut / radiation shield
- Wi-Fi netwerk
- MQTT broker in Home Assistant
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:
- 3.3V → voeding
- GND → massa
- SDA → data
- SCL → kloksignaal
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 SHT41In mijn volledige projectcode voeg ik ook berekeningen toe voor:
- dauwpunt
- gevoelstemperatuur
- absolute luchtvochtigheid
- wifi-signaalsterkte
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 codeHome 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:
- Mini Graph Card
- Mushroom Entity Card
- Apex Charts
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.
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