Mundarija:

Raspberry Pi / DHT11 - namlik va haroratni o'lchash: 4 qadam
Raspberry Pi / DHT11 - namlik va haroratni o'lchash: 4 qadam

Video: Raspberry Pi / DHT11 - namlik va haroratni o'lchash: 4 qadam

Video: Raspberry Pi / DHT11 - namlik va haroratni o'lchash: 4 qadam
Video: Farangeyt va Kelvinda haroratni o'lchash uchun LM35-dan qanday foydalanish kerak 2024, Iyul
Anonim
Raspberry Pi / DHT11 - namlik va haroratni o'lchash
Raspberry Pi / DHT11 - namlik va haroratni o'lchash

Men Raspberry Pi yordamida harorat va namlikni o'lchashni xohlardim. Men DHT11 sensorini tanladim, chunki u mustahkam va arzon. Uni konfiguratsiya qilish ham yaxshi hujjatlashtirilgan, lekin men e'tibor qaratmoqchi bo'lgan yo'lda bir qator kamchiliklar mavjud.

DHT11 4 pinli. Eng chap tomonda Raspberry Pi 3.3V piniga ulangan Vcc yoki musbat (+) pin bor. Keyingi pin - bu Raspberry Pi -dagi GPIO piniga ulanishi kerak bo'lgan ma'lumotlar pinidir. Bu ikkita pin 4.7K rezistor yordamida ulangan bo'lishi kerak.

Chapdagi 3 -pin ishlatilmaydi. O'ng va to'rtinchi pin - bu Raspberry Pi ustidagi pinlardan biriga ulanishi kerak bo'lgan er yoki manfiy pin.

1 -qadam: zarur komponentlar

Majburiy komponentlar
Majburiy komponentlar

1. Raspberry Pi

2. DHT11

3. 4,7 k qarshilik

4. Har xil non paneli simlari

5. Non paneli

2 -qadam: narsalarni ulash

Birlashtiruvchi narsalar
Birlashtiruvchi narsalar
Birlashtiruvchi narsalar
Birlashtiruvchi narsalar

Raspberry Pi va DHT11 ni quyidagicha ulang:

DHT11 (+ pinli) RaspberryPi (3.3V pinli)

DHT11 (ma'lumot pin) RaspberryPi (GPIO pin - men GPIO22 ishlatganman)

DHT11 (3 -pin) Ulanish yo'q

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

3 -qadam: Dasturiy ta'minotni o'rnatish

RaspberryPi buyruq satridan quyidagilarni bajaring: (QAYD, SUDO ni o'tkazib yubormang)

sudo git klon

Siz ko'rishingiz kerak - "Adafruit_Python_DHT" ga klonlash … masofadan boshqarish: Ob'ektlarni sanash: 249, bajarildi. masofadan boshqarish: Hammasi bo'lib 249 (delta 0), qayta ishlatilgan 0 (delta 0), qayta ishlatilgan 249 Qabul qilish ob'ektlari: 100% (249/249), 77.01 KiB, bajarildi. Deltalarni hal qilish: 100% (142/142), bajarildi.

CD Adafruit_Python_DHT/

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

ls

Siz ko'rishingiz kerak - Adafruit_DHT misollari ez_setup.py LICENSE README.md setup.py manba

CD Adafruit_DHT/

Siz ko'rishingiz kerak -Beaglebone_Black.py common.py _init_.py platform_detect.py Raspberry_Pi_2.py Raspberry_Pi.py Test.py

sudo python setup.py ni o'rnating

(E'tibor bering, agar siz bu qadamni chetlab o'tib qo'ysangiz, siz uchrashish xatosini ko'rishingiz mumkin - Traceback (oxirgi qo'ng'iroq oxirgi):

Fayl "./AdafruitDHT.py", 24 -satr, import qilingan Adafruit_DHT ImportError: Adafruit_DHT nomli modul yo'q)

cd misollar

sudo./AdafruitDHT.py 11 22 (11 = DHT11 va 22 = siz ilgari tanlagan GPIO22)

Siz ko'rishingiz kerak Temp = 18.0* Namlik = 46.0% (ya'ni sizning muhitingiz uchun harorat va namlik)

4 -qadam: Chiqish bilan nima qilish kerak

Ko'rib turganimizdek, chiqish "Harorat = 18.0* Namlik = 46.0%"

Siz bu chiqishdan foydalanishning bir qancha usullari bor, masalan, bu php test testi, test_dht11.php faylidan foydalanish.

Birinchidan, men AdafruitDHT.py skriptini/var/www/ga ko'chirdim.

PHP skriptini sinab ko'rish va ishga tushirish uchun /var /www ga o'zgartiring, keyin sudo php test_dht11.php

Chiqish harorat va namlikni ifodalovchi ikkita raqamni ko'rsatadi. Bu raqamlar ma'lumotlar bazasiga yozilishi yoki ogohlantirish chegaralari bilan taqqoslanishi va ogohlantirish yuborishi mumkin

// <? php // yuqoridagi satrga izoh bermang - instruktorlarga php start buyrug'i yoqmaydi //test_dht11.php

// DHT11 harorat sensori o'qish uchun python faylini bajaradi

// va harorat va namlik qiymatlarini chiqaradi $ temperatur = 0; $ namlik = 0; $ my_pos = 0; $ exec_msg = "sudo /var/www/AdafruitDHT.py 11 22 2> & 1"; $ test = shell_exec ($ exec_msg); // haroratni chiqaradi $ my_pos = strpos ($ test, "Temp =", 0); $ harorat = substr ($ test, $ my_pos+5, 4); echo "\ n". $ harorat; // namlikni chiqaradi $ my_pos = strpos ($ test, "Namlik =", $ my_pos); $ namlik = substr ($ test, $ my_pos+9, 4); echo "\ n". $ namlik; ?>

Tavsiya: