Raspberry Pi - Koelsysteem met DHT Sensor

Deze handleiding leert u hoe u een Raspberry Pi, een ventilator en een DHT11 of DHT22 sensor gebruikt om de temperatuur te regelen.

Wilt u in plaats van een DHT sensor een DS18B20 sensor gebruiken, bekijk dan Raspberry Pi - Koelsysteem met DS18B20 sensor voor meer informatie.

Hardware Benodigd

1×Raspberry Pi 5
1×DHT11 Temperatuur- en Vochtigheidssensor
1×Relais
1×12V DC Koelventilator
1×(Alternatief) 5V DC Koelventilator
1×12V Voeding
1×DC Stroomconnector
1×Jumperdraden

U kunt in plaats van de DHT11 sensor ook een DHT22 sensor gebruiken.

1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over Koelventilator en DHT Sensor

De ventilator die in deze handleiding wordt gebruikt, heeft een 12V voeding nodig. Zodra er spanning op staat, gaat de ventilator draaien; zonder spanning blijft deze uit. Om de ventilator aan te sturen met een Raspberry Pi, moet er een relay tussen geplaatst worden.

Als u niet vertrouwd bent met temperatuur sensoren en ventilatoren (inclusief pinouts, werking en programmering), kunnen de onderstaande handleidingen van pas komen:

Bedradingsschema

  • Bedradingsschema met DHT11
Raspberry Pi DHT11 koelsysteem bedrading schema

This image is created using Fritzing. Click to enlarge image

  • Bedradingsschema met DHT22
Raspberry Pi DHT22 koelsysteem bedrading schema

This image is created using Fritzing. Click to enlarge image

Hoe Werkt het Systeem

  • De Raspberry Pi haalt de temperatuur op van de temperatuursensor.
  • Wanneer de temperatuur boven de ingestelde bovengrens komt, schakelt de Raspberry Pi de ventilator in.
  • Als de temperatuur onder de ingestelde ondergrens daalt, schakelt de Raspberry Pi de ventilator weer uit.

Deze cyclus wordt continu herhaald.

Wilt u dat de ventilator aan- en uitgaat bij een exacte temperatuur, stel dan de boven- en ondergrens op hetzelfde punt in.

Raspberry Pi Code

Raspberry Pi Code voor Koelsysteem met DHT11 sensor

Laten we een Python-script schrijven voor de Raspberry Pi waarmee de ventilator wordt ingeschakeld zodra de temperatuur boven de 25°C stijgt. De ventilator blijft aan totdat de temperatuur daalt tot 20°C of lager.

Snelle Stappen

  • Zorg dat u Raspbian of een ander Raspberry Pi-compatibel besturingssysteem op uw Pi heeft geïnstalleerd.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw pc.
  • Zorg dat uw Raspberry Pi verbinding heeft met internet, indien u nog libraries moet installeren.
  • Als dit uw eerste keer is dat u een Raspberry Pi gebruikt, bekijk dan hoe u Raspberry Pi instelt.
  • Verbind uw pc via SSH met de Raspberry Pi met behulp van de ingebouwde SSH-client op Linux en macOS of PuTTY op Windows. Zie hoe verbind ik mijn pc met Raspberry Pi via SSH.
  • Controleer of de RPi.GPIO library geïnstalleerd is. Is dit niet het geval, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Installeer de library voor de DHT11 temperatuur- en vochtigheidssensor met het commando:
sudo pip3 install Adafruit_DHT
  • Maak een Python-scriptbestand aan met de naam cooling.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-cooling-system-using-dht-sensor import Adafruit_DHT import RPi.GPIO as GPIO import time # Constants THRESHOLD_ON = 25 # Upper threshold of temperature, change to your desired value THRESHOLD_OFF = 20 # Lower threshold of temperature, change to your desired value FAN_PIN = 12 # GPIO pin connected to relay, change to your desired GPIO pin DHT11_PIN = 4 # GPIO pin connected to DHT11, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(FAN_PIN, GPIO.OUT) def read_temperature(): try: humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT11, DHT11_PIN) return temperature except Exception as e: print(f"Error reading temperature: {e}") return None def control_fan(temperature): if temperature is not None: if temperature > THRESHOLD_ON: print("The fan is turned on") GPIO.output(FAN_PIN, GPIO.HIGH) elif temperature < THRESHOLD_OFF: print("The fan is turned off") GPIO.output(FAN_PIN, GPIO.LOW) try: while True: temperature = read_temperature() control_fan(temperature) time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup()
  • Sla het bestand op en start het script door in de terminal het volgende commando uit te voeren:
python3 cooling.py
  • Verander de temperatuur in de omgeving van de sensor.
  • Controleer de status van de ventilator op de seriële monitor.

Het script draait continu in een oneindige lus tot u Ctrl + C indrukt in de terminal.

Raspberry Pi Code voor Koelsysteem met DHT22 sensor

Net als bij de DHT11 kunnen we het koelsysteem ook maken met de DHT22 sensor door onderstaande Python-code te gebruiken op de Raspberry Pi:

# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-cooling-system-using-dht-sensor import Adafruit_DHT import RPi.GPIO as GPIO import time # Constants THRESHOLD_ON = 25 # Upper threshold of temperature, change to your desired value THRESHOLD_OFF = 20 # Lower threshold of temperature, change to your desired value FAN_PIN = 12 # GPIO pin connected to relay, change to your desired GPIO pin DHT22_PIN = 14 # GPIO pin connected to DHT22, change to your desired GPIO pin # Setup GPIO.setmode(GPIO.BCM) GPIO.setup(FAN_PIN, GPIO.OUT) def read_temperature(): try: humidity, temperature = Adafruit_DHT.read_retry(Adafruit_DHT.DHT22, DHT22_PIN) return temperature except Exception as e: print(f"Error reading temperature: {e}") return None def control_fan(temperature): if temperature is not None: if temperature > THRESHOLD_ON: print("The fan is turned on") GPIO.output(FAN_PIN, GPIO.HIGH) elif temperature < THRESHOLD_OFF: print("The fan is turned off") GPIO.output(FAN_PIN, GPIO.LOW) try: while True: temperature = read_temperature() control_fan(temperature) time.sleep(0.5) except KeyboardInterrupt: pass finally: GPIO.cleanup()

Gevorderde Kennis

De hierboven beschreven regelmethode is een aan-uitregelaar, ook wel signaalregelaar of "bang-bang" controller genoemd. Deze techniek is eenvoudig in gebruik.

Er bestaat een alternatieve methode, de PID-controller. Deze methode is effectiever in het constant houden van een gewenste temperatuur, maar is complexer en moeilijker te begrijpen en toe te passen. Daarom wordt de PID-controller minder vaak gebruikt voor temperatuurregeling.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u stap voor stap door het proces heen.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!