Sadržaj:

Raspberry Pi / DHT11 - Mjerenje vlažnosti i temperature: 4 koraka
Raspberry Pi / DHT11 - Mjerenje vlažnosti i temperature: 4 koraka

Video: Raspberry Pi / DHT11 - Mjerenje vlažnosti i temperature: 4 koraka

Video: Raspberry Pi / DHT11 - Mjerenje vlažnosti i temperature: 4 koraka
Video: Temperature and Humidity Sensor DHT11 connected to Raspberry Pi Pico 2024, Novembar
Anonim
Raspberry Pi / DHT11 - Izmjerite vlažnost i temperaturu
Raspberry Pi / DHT11 - Izmjerite vlažnost i temperaturu

Htio sam mjeriti temperaturu i vlažnost pomoću svog Raspberry Pi. Odabrao sam DHT11 senzor jer je robustan i jeftin. Konfiguriranje je također dobro dokumentirano, ali na putu bih se htio usredotočiti na brojne zamke.

DHT11 ima 4 pina. Krajnji lijevi dio je za Vcc ili pozitivni (+) pin koji je spojen na pin 3.3V Raspberry Pi. Sljedeći pin preko je pin za podatke koji mora biti spojen na GPIO pin na Raspberry Pi. Ova dva pina moraju biti povezana pomoću 4,7K otpornika.

3. iglica s lijeve strane se ne koristi. Krajnji desni i četvrti pin je uzemljeni ili negativni pin koji mora biti spojen na jedan od uzemljnih pinova na Raspberry Pi -u.

Korak 1: Potrebne komponente

Potrebne komponente
Potrebne komponente

1. Malina Pi

2. DHT11

3. 4.7k otpornik

4. Različite žice za matične ploče

5. Oglasna ploča

Korak 2: Povezivanje stvari

Povezivanje stvari
Povezivanje stvari
Povezivanje stvari
Povezivanje stvari

Povežite Raspberry Pi i DHT11 na sljedeći način:

DHT11 (+ pin) RaspberryPi (pin 3.3V)

DHT11 (pin za podatke) RaspberryPi (GPIO pin - koristio sam GPIO22)

DHT11 (3. pinski) Nema veze

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

Korak 3: Instaliranje softvera

U komandnoj liniji RaspberryPi učinite sljedeće: (NAPOMENA, ne izostavljajte SUDO)

klon sudo git

Trebali biste vidjeti - Kloniranje u 'Adafruit_Python_DHT' … daljinski: Brojanje objekata: 249, gotovo. daljinski: Ukupno 249 (delta 0), ponovno korišteno 0 (delta 0), ponovno pakiranje 249 Objekti koji primaju: 100% (249/249), 77,01 KiB, učinjeno. Rješavanje delta: 100% (142/142), učinjeno.

cd Adafruit_Python_DHT/

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

ls

Trebali biste vidjeti - Adafruit_DHT primjeri ez_setup.py LICENCA README.md setup.py izvor

cd Adafruit_DHT/

Trebali biste vidjeti -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py install

(Napomena: ako zaobiđete ovaj korak, možda ćete vidjeti grešku nailaska - Traceback (posljednji zadnji poziv):

Datoteka "./AdafruitDHT.py", red 24, u uvozu Adafruit_DHT ImportError: Nema modula po imenu Adafruit_DHT)

cd primjeri

sudo./AdafruitDHT.py 11 22 (11 = DHT11 i 22 = GPIO22 koje ste ranije odabrali)

Trebali biste vidjeti Temp = 18,0* Vlažnost = 46,0% (tj. Temperatura i vlažnost za vašu okolinu)

Korak 4: Šta uraditi sa izlazom

Dakle, kao što smo vidjeli, izlaz je "Temp = 18,0* Vlažnost = 46,0%"

Postoji nekoliko načina na koje možete upotrijebiti ovaj izlaz, na primjer pomoću ove testne php datoteke, datoteke test_dht11.php

Prvo sam preselio skriptu AdafruitDHT.py u/var/www/.

Da biste testirali i pokrenuli php skriptu, promijenite na /var /www, a zatim sudo php test_dht11.php

Izlaz prikazuje dva broja koji predstavljaju temperaturu i vlažnost. Ti se brojevi mogu zapisati u bazu podataka ili uporediti s ograničenjima upozorenja i poslati upozorenje itd

// <? php // raskomentirajte gornju liniju - instructables ne voli naredbu php start //test_dht11.php

// izvršava python datoteku za očitavanje temperaturnog senzora DHT11

// i izdvaja vrijednosti temperature i vlažnosti $ temperature = 0; $ vlažnost = 0; $ my_pos = 0; $ exec_msg = "sudo /var/www/AdafruitDHT.py 11 22 2> & 1"; $ test = shell_exec ($ exec_msg); // ekstrahira temperaturu $ my_pos = strpos ($ test, "Temp =", 0); $ temperature = substr ($ test, $ my_pos+5, 4); echo "\ n". $ temperature; // izvlači vlažnost $ my_pos = strpos ($ test, "Humidity =", $ my_pos); $ vlažnost = substr ($ test, $ my_pos+9, 4); echo "\ n". $ vlažnost; ?>

Preporučuje se: