Geplaatst op Geef een reactie

DHT11 temperatuur en vochtigheidsensor met Raspberry Pi gebruiken

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 uw 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.

Wat je nodig hebt voor deze tutorial

Allereerst moet je een Raspberry Pi 3 hebben die op de nieuwste versie van Raspbian 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 “Eerste Python programma op de Raspberry Pi” en “Starten met GPIO op de Raspberry Pi” voor een snelle introductie.

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)

Raspberry Pi GPIO discovery kit

 

Indien je dingen zou missen, aarzel dan niet om onze shop te bezoeken. We hebben een goed bedachte kit die alle nodige dingen bevat .

 

 

 

Over de DHT11 temperatuur en vochtigheidsensor

DHT11 sensor

De DHT11 is een goedkope en populaire sensor voor het meten van temperatuur en vochtigheid. Het 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 uw experimenten.

Het hardware gedeelte opzetten

Voordat je begint met het aansluiten van kabels 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!

DHT11 sensor met Raspberry Pi aansluiten
  • 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)
DHT11 sensor met Raspberry Pi aansluiten

Installeer de Python library

De DHT11-sensor communiceert met een specifiek protocol. Gelukkig hoeven we niet met deze details om te gaan en dankzij Adafruit kunnen we een Python-library gebruiken. Om de library te downloaden, moet je ervoor zorgen dat je Pi toegang heeft tot internet. Open een terminalvenster en schrijf volgende opdrachten:

sudo apt update
sudo apt install build-essential python-dev
git clone http://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT

Nu kunnen we de library installeren. Voor deze tutorial hoeven we het enkel voor Python 3 te installeren, maar terwijl we er nu toch mee bezig zijn, is het eenvoudig om het te installeren voor beide Python-versies:

sudo python setup.py install
sudo python3 setup.py install

De code schrijven

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 Adafruit_DHT
sensor = Adafruit_DHT.DHT11
DHT11_pin = 23

humidity, temperature = Adafruit_DHT.read_retry(sensor, DHT11_pin)
if humidity is not None and temperature is not None:
  print('Temperature={0:0.1f}*C  Humidity={1:0.1f}%'.format(temperature, humidity))
else:
  print('Failed to get reading from the sensor. Try again!')

Wat verklaringen over de code:

  • import Adafruit_DHT We starten met de Adafruit_DHT library te importeren
  • sensor = Adafruit_DHT.DHT11 We definiëren het type sensor. Wijzig naar DHT22 indien je dit type DHT-sensor gebruikt.
  • DHT11_pin = 23: We wijzen de ingangspin aan GPIO 23 toe
  • humidity, temperature = Adafruit_DHT.read_retry(sensor, DHT11_pin) We lezen de sensor
  • if humidity is not None and temperature is not None: als we een meetwaarde van de sensor binnenkrijgen
  • Wees voorzichtig, Python is witruimte gevoelig. Verwijder de “tab” niet voor de regel die na de “if” opdracht volgt.
  • print('Temperature={0:0.1f}*C Humidity={1:0.1f}%'.format(temperature, humidity)) de resultaten worden op het scherm weergegeven. Deze worden met 1 cijfer na de comma weergegeven.
DHT11 Python script

Wanneer je klaar bent met de code, klik je op de Run knop. Je ziet een bericht met de huidige temperatuur en luchtvochtigheid. Klik opnieuw op de knop als je een nieuwe meting wilt.

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!