Sommario:

Raspberry Pi / DHT11 - Misura umidità e temperatura: 4 passaggi
Raspberry Pi / DHT11 - Misura umidità e temperatura: 4 passaggi

Video: Raspberry Pi / DHT11 - Misura umidità e temperatura: 4 passaggi

Video: Raspberry Pi / DHT11 - Misura umidità e temperatura: 4 passaggi
Video: Humidity and Temperature Monitoring with Raspberry Pi and New Blynk2.0 IoT App and Web Dashboard 2024, Dicembre
Anonim
Raspberry Pi / DHT11 - Misura l'umidità e la temperatura
Raspberry Pi / DHT11 - Misura l'umidità e la temperatura

Volevo misurare la temperatura e l'umidità usando il mio Raspberry Pi. Ho scelto un sensore DHT11 perché è robusto ed economico. Anche la sua configurazione è ben documentata, ma ci sono una serie di insidie su cui vorrei concentrarmi.

Il DHT11 ha 4 pin. Il più a sinistra è per il pin Vcc o positivo (+) che è collegato al pin Raspberry Pi 3.3V. Il pin successivo è il pin dati che deve essere collegato a un pin GPIO sul Raspberry Pi. Questi due pin devono essere collegati utilizzando un resistore da 4,7K.

Il 3° pin da sinistra non viene utilizzato. Il pin più a destra e il quarto è il pin di terra o negativo che deve essere collegato a uno dei pin di terra sul Raspberry Pi.

Passaggio 1: componenti necessari

Componenti richiesti
Componenti richiesti

1. Lampone Pi

2. DHT11

3. Resistenza da 4,7k

4. Vari fili della breadboard

5. Tagliere

Passaggio 2: collegare le cose

Collegare le cose
Collegare le cose
Collegare le cose
Collegare le cose

Collega Raspberry Pi e DHT11 come segue:

DHT11 (+ pin) RaspberryPi (pin 3.3V)

DHT11 (pin dati) RaspberryPi (pin GPIO - ho usato GPIO22)

DHT11 (3° pin) Nessuna connessione

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

Passaggio 3: installazione del software

Dalla riga di comando RaspberryPi, fai quanto segue: (NOTA, non omettere SUDO)

sudo git clone

Dovresti vedere - Clonazione in 'Adafruit_Python_DHT'… remoto: Conteggio oggetti: 249, fatto. remoto: Totale 249 (delta 0), riutilizzato 0 (delta 0), pacchetto riutilizzato 249 Ricezione di oggetti: 100% (249/249), 77,01 KiB, fatto. Risoluzione dei delta: 100% (142/142), fatto.

cd Adafruit_Python_DHT/

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

ls

Dovresti vedere - Esempi di Adafruit_DHT ez_setup.py LICENSE README.md setup.py source

cd Adafruit_DHT/

Dovresti vedere -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py install

(Nota, se ignori questo passaggio, potresti vedere un errore di incontro - Traceback (la chiamata più recente è l'ultima):

File "./AdafruitDHT.py", riga 24, in import Adafruit_DHT ImportError: nessun modulo chiamato Adafruit_DHT)

esempi di cd

sudo./AdafruitDHT.py 11 22 (11 = DHT11 e 22=GPIO22 che hai selezionato in precedenza)

Dovresti vedere Temp=18.0* Humidity=46,0% (cioè la temperatura e l'umidità per il tuo ambiente)

Passaggio 4: cosa fare con l'output?

Quindi, come abbiamo visto, l'output è "Temp=18.0* Humidity=46,0%"

Esistono diversi modi in cui è possibile sfruttare questo output, ad esempio utilizzando questo file php di prova, file test_dht11.php

In primo luogo, ho riposizionato lo script AdafruitDHT.py in /var/www/.

Per testare ed eseguire lo script php, passa a /var/www quindi sudo php test_dht11.php

L'output mostra due numeri che rappresentano la temperatura e l'umidità. Questi numeri possono essere scritti in un database o confrontati con limiti di avviso e inviare un avviso, ecc

//<? php // togli il commento dalla riga sopra - a instructables non piace il comando di avvio php //test_dht11.php

// esegue il file python per leggere il sensore di temperatura DHT11

//ed estrae i valori di temperatura e umidità $temperature=0; $umidità=0; $my_pos=0; $exec_msg="sudo /var/www/AdafruitDHT.py 11 22 2>&1"; $test = shell_exec($exec_msg); //estrae la temperatura $my_pos = strpos($test, "Temp=", 0); $temperatura = substr($test, $my_pos+5, 4); echo "\n ".$temperatura; //estrae l'umidità $my_pos = strpos($test, "Humidity=", $my_pos); $umidità = substr($test, $my_pos+9, 4); echo "\n ".$umidità; ?>

Consigliato: