Cuprins:

Raspberry Pi / DHT11 - Măsurați umiditatea și temperatura: 4 pași
Raspberry Pi / DHT11 - Măsurați umiditatea și temperatura: 4 pași

Video: Raspberry Pi / DHT11 - Măsurați umiditatea și temperatura: 4 pași

Video: Raspberry Pi / DHT11 - Măsurați umiditatea și temperatura: 4 pași
Video: Măsurare temperatură și umiditate cu arduino 2024, Noiembrie
Anonim
Raspberry Pi / DHT11 - Măsurați umiditatea și temperatura
Raspberry Pi / DHT11 - Măsurați umiditatea și temperatura

Am vrut să măsoar temperatura și umiditatea folosind Raspberry Pi. Am ales un senzor DHT11 pentru că este robust și ieftin. Configurarea acestuia este, de asemenea, bine documentată, dar există o serie de capcane pe care aș dori să mă concentrez.

DHT11 are 4 pini. Cel mai stâng este pentru Vcc sau pinul pozitiv (+) care este conectat la pinul Raspberry Pi de 3,3V. Următorul pin este pinul de date care trebuie conectat la un pin GPIO de pe Raspberry Pi. Acești doi pini trebuie conectați utilizând un rezistor de 4.7K.

Al 3-lea pin din stânga nu este utilizat. Cel mai drept și al patrulea pin sunt pinul de masă sau negativ care trebuie conectat la unul dintre pinii de masă de pe Raspberry Pi.

Pasul 1: Componente necesare

Componente necesare
Componente necesare

1. Raspberry Pi

2. DHT11

3. Rezistor 4.7k

4. Diferite fire de panouri

5. Pană de pâine

Pasul 2: conectarea lucrurilor

Conectarea lucrurilor
Conectarea lucrurilor
Conectarea lucrurilor
Conectarea lucrurilor

Conectați Raspberry Pi și DHT11 după cum urmează:

DHT11 (+ pin) RaspberryPi (pin 3.3V)

DHT11 (pin de date) RaspberryPi (pin GPIO - am folosit GPIO22)

DHT11 (al treilea pin) Fără conexiune

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

Pasul 3: Instalarea software-ului

Din linia de comandă RaspberryPi, efectuați următoarele: (NOTĂ, nu omiteți SUDO)

clona sudo git

Ar trebui să vedeți - Clonarea în „Adafruit_Python_DHT”… la distanță: Numărarea obiectelor: 249, gata. la distanță: Total 249 (delta 0), reutilizat 0 (delta 0), pachet reutilizat 249 Obiecte primitoare: 100% (249/249), 77,01 KiB, gata. Rezolvarea deltelor: 100% (142/142), gata.

cd Adafruit_Python_DHT /

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

eu sunt

Ar trebui să vedeți - Exemple Adafruit_DHT ez_setup.py LICENȚĂ README.md sursa setup.py

cd Adafruit_DHT /

Ar trebui să vedeți -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py instalare

(Notă, dacă ocoliți acest pas, este posibil să vedeți o eroare de întâlnire - Traceback (ultimul apel cel mai recent):

Fișier „./AdafruitDHT.py”, linia 24, în import Adafruit_DHT ImportError: Niciun modul numit Adafruit_DHT)

exemple cd

sudo./AdafruitDHT.py 11 22 (11 = DHT11 și 22 = GPIO22 pe care l-ați selectat mai devreme)

Ar trebui să vedeți Temp = 18,0 * Umiditate = 46,0% (adică temperatura și umiditatea pentru mediul dvs.)

Pasul 4: Ce să faceți cu ieșirea

Deci, după cum am văzut, rezultatul este „Temp = 18,0 * Umiditate = 46,0%”

Există mai multe moduri în care puteți exploata această ieșire, de exemplu folosind acest fișier php test, fișier test_dht11.php

În primul rând, am mutat scriptul AdafruitDHT.py în / var / www /.

Pentru a testa și rula scriptul php, schimbați în / var / www apoi sudo php test_dht11.php

Ieșirea arată două numere reprezentând temperatura și umiditatea. Aceste numere pot fi scrise într-o bază de date sau comparate cu limitele de avertizare și pot trimite o alertă etc

// <? php // decomentează linia de mai sus - instructables nu-i place comanda php start //test_dht11.php

// execută fișierul python pentru a citi senzorul de temperatură DHT11

// și extrage valorile de temperatură și umiditate $ temperature = 0; $ umiditate = 0; $ my_pos = 0; $ exec_msg = "sudo /var/www/AdafruitDHT.py 11 22 2> & 1"; $ test = shell_exec ($ exec_msg); // extrage temperatura $ my_pos = strpos ($ test, "Temp =", 0); $ temperature = substr ($ test, $ my_pos + 5, 4); ecou "\ n". $ temperatura; // extrage umiditatea $ my_pos = strpos ($ test, "Umiditate =", $ my_pos); $ umiditate = substr ($ test, $ my_pos + 9, 4); ecou "\ n". $ umiditate; ?>

Recomandat: