
In deze tutorial gebruiken we een DHT11 temperatuur en vochtigheidsensor. Aan de hand van een Python-script op je Raspberry Pi meten we de omgevingstemperatuur en vochtigheid. Wanneer je deze tutorial hebt voltooid, kan je de DHT11-sensor via de GPIO-pinnen op je Pi aansluiten. Je hebt ook de basiscode om het outputsignaal van de sensor om te zetten naar bruikbare informatie. Deze tutorial kan ook gebruikt worden voor de DHT22 sensor.

De Rock 4C+ is het perfecte alternatief voor de Raspberry Pi 4
Onze starterkits zijn onmiddellijk beschikbaar en klaar om verzonden te worden!
Je Raspberry Pi voorbereiden
Allereerst dien je een Raspberry Pi te hebben die op de nieuwste versie van Raspberry Pi OS draait. Deze versie bevat “Thonny”. We zullen deze gebruiksvriendelijke IDE gebruiken om onze Python-code te schrijven. Als je niet bekend bent met Python of met Thonny en de GPIO-pinnen, raad ik je aan onze volgende tutorials te bekijken “Hoe je eerste Python programma op de Raspberry Pi schrijven” en “Hoe de GPIO pinnen van de Raspberry Pi gebruiken” voor een snelle introductie.
De extra hardware voorbereiden
Vervolgens heb je wat extra hardware nodig:
- een breadboard (we gebruiken een breadboard van 400 punten)
- een DHT11 of DHT22 temperatuur en vochtigheidsensor
- Dupont jumper kabels
- een T-cobbler (optioneel)
- een 40 pins GPIO-kabel (optioneel)
Indien je dingen zou missen, aarzel dan niet om onze shop te bezoeken. We hebben een goed bedachte kit die alle nodige componenten bevat .
Maak kennis met de DHT11 temperatuur en vochtigheidsensor

De DHT11 is een goedkope en populaire sensor voor het meten van temperatuur en vochtigheid. De module vereist 3 verbindingen met de Raspbery Pi: 3,3 V; GND en een GPIO-invoerpin. Aangezien het uitgangssignaal 3,3 V is, kan dit rechtstreeks worden aangesloten op een GPIO-ingangspin van de Raspberry Pi. Temperatuurbereik is 0-50 ° C (+/- 2 ° C) en vochtigheidsbereik is 20-90% (+/- 5%). De sensor is vrij langzaam en heeft een beperkte nauwkeurigheid, maar het is een ideale sensor voor je experimenten.
Stel de hardware op
Let op! Voordat je begint met het aansluiten van draden op de GPIO-pinnen van je Raspberry Pi, dien je ervoor te zorgen dat je de Pi goed afsluit en de voedingskabel van het bordje hebt verwijderd!

- sluit de 40-pins kabel op de GPIO-pinnen van je Pi aan (verwijder indien nodig eerst het deksel van je Pi)
- sluit de T-cobbler op het breadboard aan zoals wordt weergegeven in de afbeelding hierboven of hieronder
- sluit het andere uiteinde van de 40-pins kabel aan op de T-cobbler
- verbind de VCC pin van de sensor met de 3,3V pin (rode kabel)
- verbind de OUTPUT pin van de sensor met pin 23 (gele kabel)
- verbind de GND van de sensor met een GPIO GND pin (zwarte kabel)

Installeer de Python-bibliotheken
De DHT11-sensor communiceert met een specifiek protocol. Gelukkig hebben we niet met deze details te maken en dankzij Adafruit kunnen we Python-bibliotheken gebruiken om de metingen eenvoudig op te halen. Zorg ervoor dat je Pi toegang heeft tot internet om de bibliotheken te downloaden. Het duurt even voordat de installatie van deze bibliotheken is voltooid. Maar wees geduldig, op dit moment en voor zover we weten, is dit de gemakkelijkste manier om via je Pi de metingen van de DHT11-sensor te bekomen.
Bereid de installatie van CircuitPython-bibliotheken voor
Om op een eenvoudige manier met sensoren te kunnen communiceren werd CircuitPython ontwikkeld. Dus voordat we de specifieke DHT-bibliotheek installeren, moeten we wat voorbereidend werk doen.
Open een terminalvenster en voer volgende opdrachten in:
In ons geval is het erg belangrijk om de nieuwste versie van Raspberry Pi OS te gebruiken! Ook al duurt het even, sla de volgende stap niet over!
sudo apt update sudo apt full-upgrade sudo apt install python3-pip sudo pip3 install --upgrade setuptools sudo reboot
Installeer en voer vervolgens een door Adafruit ontwikkelde script uit:
sudo pip3 install --upgrade adafruit-python-shell wget https://raw.githubusercontent.com/adafruit/Raspberry-Pi-Installer-Scripts/master/raspi-blinka.py sudo python3 raspi-blinka.py
Het script zal je waarschijnlijk vragen om je python-versie bij te werken naar versie 3. Kies : y

Aan het einde van het proces wordt u gevraagd om opnieuw op te starten. Kies: ja
Na de reboot zijn we klaar om de DHT-bibliotheek te installeren. Als je problemen hebt, ga dan eens naar “Installing CircuitPython Libraries on Raspberry Pi“. Deze Adafruit-webpagina heeft meer uitleg.
Installeer de CircuitPython-DHT-bibliotheek
Open een terminalvenster en voer volgende opdrachten in:
pip3 install adafruit-circuitpython-dht sudo apt-get install libgpiod2
We zijn er, de benodigde bibliotheken zouden nu moeten geïnstalleerd zijn. Als je meer informatie nodig hebt, ga dan naar “Installing the CircuitPython-DHT Library“.
Schrijf de code
Het doel is om hier een heel eenvoudig Python-programma te schrijven dat ons in staat stelt om temperatuur en vochtigheid op ons scherm weer te geven. Om de code te schrijven, gebruiken we de Thonny IDE. Je kan Thonny vinden in het applicatiemenu van je Raspberry Pi.
Schrijf of plak de volgende code in de IDE:
import time import board import adafruit_dht import psutil # We first check if a libgpiod process is running. If yes, we kill it! for proc in psutil.process_iter(): if proc.name() == 'libgpiod_pulsein' or proc.name() == 'libgpiod_pulsei': proc.kill() sensor = adafruit_dht.DHT11(board.D23) while True: try: temp = sensor.temperature humidity = sensor.humidity print("Temperature: {}*C Humidity: {}% ".format(temp, humidity)) except RuntimeError as error: print(error.args[0]) time.sleep(2.0) continue except Exception as error: sensor.exit() raise error time.sleep(2.0)
Wat verklaringen over de code:
import board
deze bibliotheek zal worden gebruikt om te definiëren met welke GPIO-pin we de DHT11-sensor hebben aangesloten.import adafruit_dht
DHT-sensor-specifieke bibliotheek.import psutil
bibliotheek voor het ophalen van informatie omtrent de lopende processen.- Wees voorzichtig, Python is gevoelig voor witruimte. Verwijder dus niet de “tab” voor de coderegels na de for, if, … commando’s!
- Na de import-sectie moeten we wat code schrijven om te voorkomen dat ons script na de eerste run blokkeert. Inderdaad, nadat we het script voor het eerst met Thonny hebben uitgevoerd, blijven sommige sensorprocessen op de achtergrond draaien. En als we ons script opnieuw willen uitvoeren, blokkeert het script en geeft het een foutmelding. Om dit te voorkomen, gebruiken we een workaround oplossing. We controleren dus eerst of de sensorgerelateerde processen lopen. Als dit het geval is, stoppen we ze. Ter info, we hebben die workaround oplossing niet nodig als we ons Python-script vanuit het terminalvenster starten.
sensor = adafruit_dht.DHT11(board.D23)
Hier definiëren we het type sensor en het pinnummer. Wijzig naar DHT22 als je dit type DHT-sensor gebruikt. En verander het pinnummer als je een andere pin gebruikt.temp = sensor.temperature
lezen van de temperatuurwaarde van de sensor.humidity = sensor.humidity
lezen van de vochtigheidswaarde van de sensor.print("Temperature: {}*C Humidity: {}% ".format(temp, humidity))
afdrukken van de resultaten op het scherm. Gezien de beperkte nauwkeurigheid van de sensor zijn de resultaten opgemaakt zonder decimalen.- DHT-sensoren zijn moeilijk te lezen voor op Linux gebaseerde besturingssystemen. Daarom komen leesfouten vrij vaak voor (zie het voorbeeld hieronder). Nadat we het type fout hebben afgedrukt, gaan we verder met de volgende meting.
time.sleep(2.0)
: wacht gedurende 2 seconden.
Voer het script uit
Vooraleer je het programma laat uitvoeren, dien je het een naam te geven en op te slaan.

Eens opgeslagen, klik je op de Run knop. Je ziet de huidige temperatuur en luchtvochtigheid om de 2 seconden verschijnen.
Gefeliciteerd! Met deze opstelling kan je nu temperatuur en vochtigheid lezen. Je kan het script verder gebruiken om het resultaat te verwerken in een toepassing waarin je temperatuur en vochtigheid wil monitoren. Nog veel plezier ermee!