Sisällysluettelo:

Raspberry Pi / DHT11 - Mittaa kosteus ja lämpötila: 4 vaihetta
Raspberry Pi / DHT11 - Mittaa kosteus ja lämpötila: 4 vaihetta

Video: Raspberry Pi / DHT11 - Mittaa kosteus ja lämpötila: 4 vaihetta

Video: Raspberry Pi / DHT11 - Mittaa kosteus ja lämpötila: 4 vaihetta
Video: BME280 Sensor Test with Arduino: pressure, humidity and temperature for the New Chronograph Project 2024, Heinäkuu
Anonim
Raspberry Pi / DHT11 - Mittaa kosteus ja lämpötila
Raspberry Pi / DHT11 - Mittaa kosteus ja lämpötila

Halusin mitata lämpötilan ja kosteuden Raspberry Pi -laitteellani. Valitsin DHT11 -anturin, koska se on vankka ja halpa. Sen määrittäminen on myös hyvin dokumentoitu, mutta haluan keskittyä tapaan, jossa on useita sudenkuoppia.

DHT11: ssä on 4 nastaa. Vasemmalla puolella on Vcc tai positiivinen (+) -tappi, joka on kytketty Raspberry Pi 3.3V -tapaan. Seuraava nasta on datatappi, joka on liitettävä Raspberry Pi: n GPIO -nastaan. Nämä kaksi nastaa on kytkettävä käyttämällä 4,7K vastusta.

Kolmas tappi vasemmalta ei ole käytössä. Oikein ja neljäs tappi on maadoitus- tai negatiivinen nasta, joka on kytkettävä yhteen Raspberry Pi -laitteen maadoitusliittimistä.

Vaihe 1: Tarvittavat komponentit

Tarvittavat komponentit
Tarvittavat komponentit

1. Vadelma Pi

2. DHT11

3. 4.7k vastus

4. Erilaiset leipälevyn johdot

5. Leipälauta

Vaihe 2: Yhdistä asioita

Asioiden yhdistäminen
Asioiden yhdistäminen
Asioiden yhdistäminen
Asioiden yhdistäminen

Liitä Raspberry Pi ja DHT11 seuraavasti:

DHT11 (+ nasta) RaspberryPi (3,3 V: n nasta)

DHT11 (datatappi) RaspberryPi (GPIO -nasta - käytin GPIO22)

DHT11 (3. nasta) Ei yhteyttä

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

Vaihe 3: Ohjelmiston asentaminen

Tee RaspberryPi -komentoriviltä seuraava: (HUOMAUTUS, älä jätä pois SUDO)

sudo git klooni

Sinun pitäisi nähdä - Kloonaus "Adafruit_Python_DHT"… etänä: Objektien laskeminen: 249, valmis. kaukosäädin: Yhteensä 249 (delta 0), uudelleenkäytetty 0 (delta 0), pakkaus uudelleenkäytetty 249 Vastaanottava objekti: 100% (249/249), 77,01 KiB, valmis. Deltan ratkaiseminen: 100% (142/142), valmis.

cd Adafruit_Python_DHT/

sudo apt-get update sudo apt-get install build-essential python-dev python-openssl

ls

Sinun pitäisi nähdä - Adafruit_DHT esimerkkejä ez_setup.py LISENSSI README.md setup.py -lähde

cd Adafruit_DHT/

Sinun pitäisi nähdä -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py install

(Huomaa, jos ohitat tämän vaiheen, saatat nähdä virheen - Traceback (viimeisin puhelu viimeksi):

Tiedosto "./AdafruitDHT.py", rivi 24, tuonnissa Adafruit_DHT ImportError: Ei moduulia nimeltä Adafruit_DHT)

cd esimerkkejä

sudo./AdafruitDHT.py 11 22 (11 = DHT11 ja 22 = GPIO22, jonka valitsit aiemmin)

Sinun pitäisi nähdä lämpötila = 18,0* Kosteus = 46,0% (eli ympäristön lämpötila ja kosteus)

Vaihe 4: Mitä tehdä ulostulolla

Joten, kuten näimme, lähtö on "Lämpötila = 18,0* Kosteus = 46,0%"

Voit käyttää tätä outpu -ohjelmaa useilla tavoilla, esimerkiksi käyttämällä tätä testi -php -tiedostoa, test_dht11.php -tiedostoa

Ensinnäkin muutin komentosarjan AdafruitDHT.py kohteeseen/var/www/.

Testaa ja suorita php -komentosarja muuttamalla /var /www ja sitten sudo php test_dht11.php

Lähtö näyttää kaksi numeroa, jotka edustavat lämpötilaa ja kosteutta. Nämä numerot voidaan kirjoittaa tietokantaan tai verrata varoitusrajoihin ja lähettää hälytys jne

// <? php // poista yllä olevan rivin kommentti - instructables ei pidä php -käynnistyskomennosta //test_dht11.php

// suorittaa python -tiedoston DHT11 -lämpötila -anturin lukemiseksi

// ja poimii lämpötila- ja kosteusarvot $ lämpötila = 0; $ kosteus = 0; $ my_pos = 0; $ exec_msg = "sudo /var/www/AdafruitDHT.py 11 22 2> & 1"; $ testi = shell_exec ($ exec_msg); // poimii lämpötilan $ my_pos = strpos ($ test, "Temp =", 0); $ lämpötila = substr ($ testi, $ my_pos+5, 4); echo "\ n". $ lämpötila; // poimii kosteuden $ my_pos = strpos ($ test, "Kosteus =", $ my_pos); $ kosteus = alaraja ($ testi, $ my_pos+9, 4); echo "\ n". $ kosteus; ?>

Suositeltava: