Geplaatst op Geef een reactie

DHT11 temperatuur en vochtigheidsensor met Raspberry Pi gebruiken

raspberry pi DHT11

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.

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 .Raspberry Pi GPIO kit

Maak kennis met de DHT11 temperatuur en vochtigheidsensor

DHT11 temperature and humidity sensor

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!

raspberry pi DHT11 temperature and humidity sensor
  • 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)
Raspberry Pi DHT11 temperature and humidity sensor

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

Raspberry Pi update CircuitPython

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.

Raspberry Pi Python DHT11 temperature and humidity sensor

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!

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 0 / 5. Aantal stemmen: 0

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *

Hoe nuttig was deze tutorial?

Klik op een ster om deze te beoordelen!

Gemiddelde score 0 / 5. Aantal stemmen: 0

Geen stemmen tot nu toe! Wees de eerste die dit bericht beoordeelt.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

ontdek hier meer producten

Blijf als eerste op de hoogte van onze nieuwste tutorials en producten door u in te schrijven op onze nieuwsbrief

freva.com respecteert uw privacy. Lees ons privacybeleid over hoe wij omgaan met uw persoonlijke gegevens.