INHOUDSOPGAWE:

Framboos Pi / DHT11 - Meet humiditeit en temperatuur: 4 stappe
Framboos Pi / DHT11 - Meet humiditeit en temperatuur: 4 stappe

Video: Framboos Pi / DHT11 - Meet humiditeit en temperatuur: 4 stappe

Video: Framboos Pi / DHT11 - Meet humiditeit en temperatuur: 4 stappe
Video: Vid009 #shorts #dht11 #dht22 #temperature #humidity #sensor 2024, Julie
Anonim
Framboos Pi / DHT11 - Meet humiditeit en temperatuur
Framboos Pi / DHT11 - Meet humiditeit en temperatuur

Ek wou temperatuur en humiditeit meet met my Raspberry Pi. Ek het 'n DHT11 -sensor gekies omdat dit robuust en goedkoop is. Die konfigurasie daarvan is ook goed gedokumenteer, maar daar is 'n aantal slaggate waarop ek wil fokus.

Die DHT11 het 4 penne. Die linkerkantste is vir Vcc of positiewe (+) pen wat gekoppel is aan die Raspberry Pi 3.3V -pen. Die volgende pen is die datapennetjie wat aan 'n GPIO -pen op die Raspberry Pi gekoppel moet word. Hierdie twee penne moet met 'n weerstand van 4,7K verbind word.

Die derde pen van links word nie gebruik nie. Die regterkantste en vierde pen is die grond- of negatiewe pen wat aan een van die grondpenne op die Raspberry Pi gekoppel moet word.

Stap 1: Vereiste komponente

Komponente benodig
Komponente benodig

1. Framboos Pi

2. DHT11

3. 4.7k weerstand

4. Verskeie broodborddrade

5. Broodbord

Stap 2: Verbind dinge

Verbind dinge
Verbind dinge
Verbind dinge
Verbind dinge

Koppel die Raspberry Pi en DHT11 soos volg:

DHT11 (+ pen) FramboosPi (3.3V pen)

DHT11 (dataspeld) FramboosPi (GPIO -pen - ek het GPIO22 gebruik)

DHT11 (3de pen) Geen verbinding nie

DHT11 (-pen) ------ Framboos Pi (gnd pen)

Stap 3: Installeer die sagteware

Doen die volgende vanaf die RaspberryPi -opdragreël: (LET WEL, laat SUDO nie weg nie)

sudo git kloon

U behoort te sien - Kloning in 'Adafruit_Python_DHT' … afstandsbediening: voorwerpe tel: 249, klaar. afgeleë: Totaal 249 (delta 0), hergebruik 0 (delta 0), hergebruik in pak 249 Ontvangsvoorwerpe: 100% (249/249), 77,01 KiB, klaar. Die oplos van deltas: 100% (142/142), klaar.

cd Adafruit_Python_DHT/

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

ls

U behoort te sien - Adafruit_DHT voorbeelde ez_setup.py LISENSIE README.md setup.py bron

cd Adafruit_DHT/

U behoort -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py te sien

sudo python setup.py installeer

(Let op: as u hierdie stap omseil, kan u 'n fout ondervind - Traceback (mees onlangse oproep laas):

Lêer "./AdafruitDHT.py", reël 24, in invoer Adafruit_DHT ImportError: Geen module met die naam Adafruit_DHT)

cd voorbeelde

sudo./AdafruitDHT.py 11 22 (11 = DHT11 en 22 = GPIO22 wat u vroeër gekies het)

U moet Temp = 18,0 sien* Humiditeit = 46,0% (dit wil sê die temperatuur en humiditeit vir u omgewing)

Stap 4: Wat om te doen met die uitset

Dus, soos ons gesien het, is die uitset "Temp = 18,0* Humiditeit = 46,0%"

Daar is 'n aantal maniere waarop u hierdie outpu kan gebruik, byvoorbeeld met behulp van hierdie toets php -lêer, test_dht11.php -lêer

Eerstens het ek die script AdafruitDHT.py hervestig na/var/www/.

Om die php -script te toets en uit te voer, verander na /var /www dan sudo php test_dht11.php

Die uitset toon twee getalle wat temperatuur en humiditeit voorstel. Hierdie getalle kan in 'n databasis geskryf word, of vergelyk word met waarskuwingsperke en 'n waarskuwing stuur, ens

// <? php // los die bostaande reël op - instruksies hou nie van die php start -opdrag //test_dht11.php

// voer python -lêer uit om die DHT11 -temperatuursensor te lees

// en onttrek die temperatuur- en humiditeitswaardes $ temperatuur = 0; $ humiditeit = 0; $ my_pos = 0; $ exec_msg = "sudo /var/www/AdafruitDHT.py 11 22 2> & 1"; $ toets = shell_exec ($ exec_msg); // onttrek temperatuur $ my_pos = strpos ($ toets, "Temp =", 0); $ temperatuur = substraat ($ toets, $ my_pos+5, 4); eggo "\ n". $ temperatuur; // onttrek humiditeit $ my_pos = strpos ($ toets, "Humidity =", $ my_pos); $ humiditeit = substraat ($ toets, $ my_pos+9, 4); eggo "\ n". $ humiditeit; ?>

Aanbeveel: