Inhoudsopgave:

Raspberry Pi / DHT11 - Vochtigheid en temperatuur meten - Ajarnpa
Raspberry Pi / DHT11 - Vochtigheid en temperatuur meten - Ajarnpa

Video: Raspberry Pi / DHT11 - Vochtigheid en temperatuur meten - Ajarnpa

Video: Raspberry Pi / DHT11 - Vochtigheid en temperatuur meten - Ajarnpa
Video: 🇳🇱 DHT11 / DHT22 TEMPERATUUR EN LUCHTVOCHTIGHEID SENSOR - Arduino les #13 2024, Juli-
Anonim
Raspberry Pi / DHT11 - Vochtigheid en temperatuur meten
Raspberry Pi / DHT11 - Vochtigheid en temperatuur meten

Ik wilde temperatuur en vochtigheid meten met mijn Raspberry Pi. Ik koos voor een DHT11-sensor omdat deze robuust en goedkoop is. Het configureren ervan is ook goed gedocumenteerd, maar er zijn een aantal valkuilen onderweg waar ik me op wil concentreren.

De DHT11 heeft 4 pinnen. De meest linkse is voor Vcc of positieve (+) pin die is aangesloten op de Raspberry Pi 3.3V pin. De volgende pin is de datapin die moet worden aangesloten op een GPIO-pin op de Raspberry Pi. Deze twee pinnen moeten worden aangesloten met een weerstand van 4,7 K.

De 3e pin van links wordt niet gebruikt. De meest rechtse en vierde pin is de grond- of negatieve pin die moet worden aangesloten op een van de grondpinnen op de Raspberry Pi.

Stap 1: Vereiste componenten

Vereiste componenten
Vereiste componenten

1. Raspberry Pi

2. DHT11

3. 4.7k weerstand

4. Verschillende breadboard-draden

5. Breadboard

Stap 2: Dingen verbinden

Dingen verbinden
Dingen verbinden
Dingen verbinden
Dingen verbinden

Sluit de Raspberry Pi en DHT11 als volgt aan:

DHT11 (+-pin) RaspberryPi (3,3V-pin)

DHT11 (gegevenspin) RaspberryPi (GPIO-pin - ik gebruikte GPIO22)

DHT11 (3e pin) Geen verbinding

DHT11 (- pin) ------ Raspberry Pi (gnd-pin)

Stap 3: De software installeren

Doe het volgende vanaf de RaspberryPi-opdrachtregel: (LET OP, laat SUDO niet weg)

sudo git clone

Je zou het moeten zien - Klonen in 'Adafruit_Python_DHT'… afstandsbediening: Objecten tellen: 249, klaar. remote: Totaal 249 (delta 0), hergebruikt 0 (delta 0), pack-hergebruikt 249 Objecten ontvangen: 100% (249/249), 77.01 KiB, klaar. Oplossen van delta's: 100% (142/142), klaar.

cd Adafruit_Python_DHT/

sudo apt-get update sudo apt-get install build-essentiële python-dev python-openssl

ls

Je zou moeten zien - Adafruit_DHT voorbeelden ez_setup.py LICENTIE README.md setup.py source

cd Adafruit_DHT/

Je zou moeten zien -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py installeren

(Let op, als u deze stap overslaat, ziet u mogelijk een ontmoetingsfout - Traceback (meest recente oproep als laatste):

Bestand "./AdafruitDHT.py", regel 24, in import Adafruit_DHT ImportError: Geen module met de naam Adafruit_DHT)

cd-voorbeelden

sudo./AdafruitDHT.py 11 22 (11 = DHT11 en 22=GPIO22 die je eerder hebt geselecteerd)

U zou Temp=18.0* Vochtigheid=46,0% moeten zien (d.w.z. de temperatuur en vochtigheid voor uw omgeving)

Stap 4: Wat te doen met de uitvoer?

Dus, zoals we zagen, is de uitvoer "Temp = 18,0 * Vochtigheid = 46,0%"

Er zijn een aantal manieren waarop u deze uitvoer kunt gebruiken, bijvoorbeeld met behulp van dit test-php-bestand, test_dht11.php-bestand

Ten eerste heb ik het script AdafruitDHT.py verplaatst naar /var/www/.

Om het php-script te testen en uit te voeren, gaat u naar /var/www en vervolgens sudo php test_dht11.php

De uitvoer toont twee getallen die de temperatuur en vochtigheid vertegenwoordigen. Deze nummers kunnen naar een database worden geschreven, of worden vergeleken met waarschuwingslimieten en een waarschuwing sturen enz

//<? php // verwijder commentaar op de bovenstaande regel - instructables houdt niet van de php startopdracht //test_dht11.php

// voert python-bestand uit om DHT11-temperatuursensor te lezen

// en extraheert de temperatuur- en vochtigheidswaarden $temperature=0; $vochtigheid=0; $mijn_pos=0; $exec_msg="sudo /var/www/AdafruitDHT.py 11 22 2>&1"; $test = shell_exec($exec_msg); //extracten temperatuur $my_pos = strpos($test, "Temp=", 0); $temperatuur = substr($test, $my_pos+5, 4); echo "\n ".$temperatuur; //extracten vochtigheid $my_pos = strpos($test, "Humidity=", $my_pos); $vochtigheid = substr($test, $my_pos+9, 4); echo "\n ".$vochtigheid; ?>

Aanbevolen: