- A DHT11 érzékelő áttekintése:
- Előfeltételek:
- Az Adafruit LCD könyvtár telepítése a Raspberry Pi-re:
- Az Adafruit DHT11 könyvtár telepítése a Raspberry Pi-re:
- Kördiagramm:
- Python programozás a DHT11 érzékelőhöz:
- Páratartalom és hőmérséklet mérése Raspberry Pi segítségével:
A hőmérséklet és a páratartalom a leggyakoribb paraméter, amelyet bármilyen környezetben figyelnek. Rengeteg érzékelő közül lehet választani a hőmérséklet és a páratartalom mérésére, de a legmegfelelőbb a DHT11 a megfelelő mérési tartomány és pontosság miatt. Egy érintkezős kommunikációval is működik, ezért nagyon egyszerűen kezelhető a mikrovezérlőkkel vagy mikroprocesszorokkal. Ebben az oktatóanyagban megtanuljuk, hogyan lehet összekapcsolni a népszerű DHT11 érzékelőt a Raspberry Pi-vel, és hogyan lehet megjeleníteni a hőmérséklet és a páratartalom értékét egy 16x2 LCD-képernyőn. Már használtuk az IoT Raspberry Pi meteorológiai állomás megépítésére.
A DHT11 érzékelő áttekintése:
A DHT11 érzékelő a következő specifikációkkal képes mérni a relatív páratartalmat és hőmérsékletet
Hőmérséklet tartomány: 0-50 ° C Hőmérsékleti pontosság: ± 2 ° C Páratartomány: 20-90% RH Páratartalom pontosság: ± 5%
A DHT11 érzékelő modul vagy szenzor formájában kapható. Ebben az oktatóanyagban az érzékelő modulformáját használjuk, az egyetlen különbség mindkettő között az, hogy modul formájában az érzékelőnek van egy szűrőkondenzátora és egy felhúzási ellenállása az érzékelő kimeneti tüskéjéhez. Tehát ha egyedül használja az érzékelőt, győződjön meg arról, hogy ezt a két komponenst adta hozzá. Ismerje meg a DHT11 interfészt az Arduinóval.
Hogyan működik a DHT11 érzékelő:
A DHT11 érzékelő kék vagy fehér színű házzal rendelkezik. Ebben a házban két fontos elem van, amelyek segítenek érzékelni a relatív páratartalmat és hőmérsékletet. Az első komponens egy pár elektróda; a két elektróda közötti elektromos ellenállást nedvességtartó aljzat határozza meg. Tehát a mért ellenállás fordítottan arányos a környezet relatív páratartalmával. Ha magasabb a relatív páratartalom, alacsonyabb lesz az ellenállás értéke és fordítva. Vegye figyelembe azt is, hogy a relatív páratartalom eltér a tényleges páratartalomtól. A relatív páratartalom a levegő víztartalmát méri a levegő hőmérsékletéhez viszonyítva.
A másik alkatrész egy felületre szerelt NTC termisztor. Az NTC kifejezés negatív hőmérsékleti együtthatót jelent, a hőmérséklet növekedése esetén az ellenállás értéke csökken
Előfeltételek:
Feltételezzük, hogy a Raspberry Pi már operációs rendszerrel rendelkezik és képes csatlakozni az internethez. Ha nem, akkor a folytatás előtt kövesse a Raspberry Pi első lépéseit.
Feltételezzük azt is, hogy hozzáférhet a pi-hez akár a terminálablakokon keresztül, akár más olyan alkalmazáson keresztül, amelyen keresztül python programokat írhat és futtathat, valamint használhatja a terminálablakot.
Az Adafruit LCD könyvtár telepítése a Raspberry Pi-re:
A hőmérséklet és a páratartalom értéke egy 16 * 2 LCD kijelzőn jelenik meg. Az Adafruit egy könyvtárat biztosít számunkra, hogy könnyedén kezelhessük ezt az LCD-t 4 bites módban, ezért adjuk hozzá a Raspberry Pi-hez a Pi terminálablak megnyitásával és az alábbi lépések végrehajtásával.
1. lépés: Telepítse a git-et a Raspberry Pi-re az alábbi sor használatával. A Git segítségével bármilyen projektfájlt klónozhat a Githubon, és felhasználhatja a Raspberry pi-n. Könyvtárunk a Githubon van, ezért telepítenünk kell a git-t, hogy a könyvtárat letöltsük a pi-be.
apt-get install git
2. lépés: A következő sor a GitHub oldalra mutat, ahol a könyvtár található, csak végrehajtja a sort a projektfájl klónozásához a Pi otthoni könyvtárban
git klón git: //github.com/adafruit/Adafruit_Python_CharLCD
3. lépés: Az alábbi paranccsal módosíthatja a könyvtár sort, hogy beléphessen az imént letöltött projektfájlba. A parancssor alább látható
cd Adafruit_Python_CharLCD
4. lépés: A könyvtárban lesz egy setup.py nevű fájl, telepítenünk kell a könyvtár telepítéséhez. A könyvtár telepítéséhez használja a következő kódot
sudo python setup.py telepítés
Ez az, hogy a könyvtárat sikeresen telepíteni kellett volna. Most hasonlóképpen folytassuk a DHT könyvtár telepítését is, amely szintén az Adafruit cégtől származik.
Az Adafruit DHT11 könyvtár telepítése a Raspberry Pi-re:
A DHT11 érzékelő az egyvezetékes rendszer elvével működik. A hőmérséklet és a páratartalom értékét az érzékelő érzékeli, majd soros adatokként továbbítja a kimeneti csapon keresztül. Ezután beolvashatjuk ezeket az adatokat az MCU / MPU I / O pin használatával. Ahhoz, hogy megértsük, hogyan olvassák ezeket az értékeket, el kell olvasnia a DHT11 érzékelő adatlapját, de egyelőre a dolgok egyszerűsége érdekében könyvtárat fogunk használni a DHT11 érzékelővel való beszélgetéshez.
Az Adafruit által biztosított DHT11 könyvtár használható a DHT11, DHT22 és más egy vezetékes hőmérséklet-érzékelőkhöz is. A DHT11 könyvtár telepítésének folyamata szintén hasonló az LCD könyvtár telepítéséhez követett eljáráshoz. Az egyetlen sor, amely megváltozik, az a GitHub-oldal linkje, amelyre a DHT-könyvtár mentésre kerül.
Írja be egyenként a négy parancssort a terminálon a DHT könyvtár telepítéséhez
git klón
cd Adafruit_Python_DHT sudo apt-get install build-essential python-dev sudo python setup.py telepítés
Miután ez megtörtént, mindkét könyvtár sikeresen telepítve lesz a Raspberry Pi-re. Most folytathatjuk a hardveres kapcsolatot.
Kördiagramm:
Az alábbiakban bemutatjuk a DH11 és a Raspberry pi összekötésének teljes kapcsolási rajzát, amelyet a Fritzing segítségével készítettünk. Kövesse a csatlakozásokat és hajtsa végre az áramkört
Az LCD és a DHT11 érzékelő + 5 V tápellátással működik, ezért mindkettő áramellátásához a Raspberry Pi 5 V-os csatlakozóit használjuk. 1k értékű felhúzási ellenállást használnak a DHT11 érzékelő kimeneti tűjén, ha modult használ, elkerülheti ezt az ellenállást.
Az LCD kontrasztszintjének szabályozásához egy 10k méretű trimmer edényt adnak az LCD Vee tűjéhez. Ezen kívül az összes kapcsolat elég egyenes. De jegyezze fel, hogy mely GPIO csapokat használja a csapok összekapcsolásához, mivel a programunkban szükségünk lesz rá. Az alábbi diagramnak lehetővé kell tennie a GPIO PIN-kódok kitalálását.
Használja a diagramot, és kösse össze a kapcsolási rajz szerint. A kapcsolataimhoz kenyérlapot és áthidaló vezetékeket használtam. Mivel DHT11 modult használtam, közvetlenül a Raspberry Pi-hez csatlakoztattam. A hardverem alább nézett ki így
Python programozás a DHT11 érzékelőhöz:
Írnunk kell egy programot a hőmérséklet és a páratartalom értékének kiolvasására a DHT11 érzékelőből, majd ezt meg kell jelenítenünk az LCD-n. Mivel letöltöttünk könyvtárakat az LCD és a DHT11 érzékelőhöz, a kódnak nagyjából egyenesnek kell lennie. A python teljes programja az oldal végén található, de tovább olvashatja, hogy megértse a program működését.
Meg kell importálni az LCD könyvtár és DHT11 könyvtár a mi program funkcióinak használatához kapcsolódik hozzá. Mivel már letöltöttük és telepítettük őket a Pi-re, egyszerűen a következő sorokat használhatjuk importálásukhoz. A késleltetési funkció használatához importáljuk az időkönyvtárat is.
import idő # importálás a késleltetés importálásához Adafruit_CharLCD LCD-ként # LCD könyvtár importálása Adafruit_DHT # DHT könyvtár importálása az érzékelőhöz
Ezután meg kell adnunk, hogy az érzékelő melyik csapokra van csatlakoztatva, és milyen típusú hőmérséklet-érzékelőt használunk. Az érzékelő_nev változó az Adafruit_DHT.DHT11 fájlhoz van rendelve, mivel itt használjuk a DHT11 érzékelőt. Az érzékelő kimeneti csatlakozója a Raspberry Pi GPIO 17-hez csatlakozik, ezért a 17-et az sensor_pin változóhoz rendeljük, az alábbiak szerint.
sensor_name = Adafruit_DHT.DHT11 # a DHT11 érzékelőt használjuk sensor_pin = 17 # Az érzékelő csatlakozik a GPIO17-hez a Pi-n
Hasonlóképpen meg kell határoznunk azt is, hogy az LCD mely GPIO csapokhoz kapcsolódik. Itt az LCD-t 4-bites módban használjuk, így négy adat és két vezérlő csapunk lesz a pi GPIO csapjaihoz való csatlakozáshoz. Csatlakoztathatja a háttérvilágítás csapját egy GPIO tűhöz, ha a háttérvilágítást is szeretnénk vezérelni. De egyelőre nem ezt használom, ezért 0-t rendeltem hozzá.
lcd_rs = 7 #RS LCD van kötve GPIO 7 PI lcd_en = 8 #EN LCD van kötve GPIO 8 PI lcd_d4 = 25 # D4 LCD van kötve GPIO 25 a PI lcd_d5 = 24 # D5 LCD csatlakoztatva a GPIO 24-hez a PI-n lcd_d6 = 23 # Az LCD D6-ja csatlakozik a GPIO 23-hoz a PI-n lcd_d7 = 18 # Az LCD D7-je a GPIO 18-hoz csatlakozik a PI- n
Az LCD-t 8 bites módban is csatlakoztathatja a Raspberry pi-hez, de akkor a szabad csapok csökkennek.
Az Adafruit által letöltött LCD könyvtár minden típusú jellegzetes LCD kijelzőhöz használható. Itt a projektünkben egy 16 * 2 LCD-kijelzőt használunk, így megemlítjük a Sorok és Oszlopok számát egy változóra az alábbiak szerint.
lcd_columns = 16 # 16 * 2 LCD-hez lcd_rows = 2 # 16 * 2 LCD-hez
Most, hogy deklaráltuk az LCD csapokat és az LCD sorainak és oszlopainak számát, inicializálhatjuk az LCD kijelzőt a következő sor segítségével, amely az összes szükséges információt elküldi a könyvtárnak.
lcd = LCD.Adafruit_CharLCD (lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight) # Küldje el az összes PIN-kódot a könyvtárba
A program elindításához egy kis intro üzenetet jelenítünk meg az lcd.message () függvény segítségével, majd 2 másodperces késleltetést adunk az üzenet olvashatóvá tételéhez. A nyomtatás a 2 ND vonal a parancsot \ n lehet használni, mint alább látható
lcd .message ('DHT11 with Pi \ n -CircuitDigest') # Adjon meg egy intro üzenetet. alvás (2) # várjon 2 másodpercet
Végül a while hurok belsejében le kell olvasnunk a hőmérséklet és a páratartalom értékét az érzékelőről, és 2 másodpercenként meg kell jelenítenünk az LCD képernyőn. A while cikluson belüli teljes program alább látható
míg 1: #Végtelen hurok
páratartalom, hőmérséklet = Adafruit_DHT.read_retry (szenzor_neve, szenzor_csapja) # olvassa el az érzékelőből és mentse el a megfelelő értékeket a hőmérséklet és a páratartalom változóban
lcd.clear () # Törölje az LCD képernyőt lcd.message ('Temp =%.1f C'% hőmérséklet) # Jelenítse meg a hőmérséklet értékét lcd.message ('\ nHum =%.1f %%'% páratartalom) #Display a Páratartalom ideje.alvás (2) értéke # Várjon 2 másodpercet, majd frissítse az értékeket
Az alábbi egyetlen vonallal könnyen megkapjuk a hőmérséklet és a páratartalom értékét az érzékelőtől. Amint láthatja, két értéket ad vissza, amelyet a változó páratartalom és hőmérséklet tárol. Az érzékelő_neve és az érzékelő_csap részletei paraméterként kerülnek átadásra; ezeket az értékeket a program elején frissítettük
páratartalom, hőmérséklet = Adafruit_DHT.read_retry (érzékelő_neve, érzékelő_csapja)
A változó nevének megjelenítéséhez az LCD képernyőn használhatunk olyan azonosítókat, mint & d,% c stb. Itt, mivel egy lebegőpontos számot jelenítünk meg, a tizedespont után csak egy számjeggyel, a%.1f azonosítót használjuk az érték megjelenítésére a a változó hőmérséklet és páratartalom
lcd .message ('Temp =%.1f C'% hőmérséklet) lcd .message ('\ nHum =%.1f %%'% páratartalom)
Páratartalom és hőmérséklet mérése Raspberry Pi segítségével:
Csatlakoztassa a kapcsolási rajz szerint, és telepítse a szükséges könyvtárakat. Ezután indítsa el az oldal végén megadott python programot. Az LCD-nek egy bevezető üzenetet kell megjelenítenie, majd az aktuális hőmérséklet és páratartalom értékét kell megjelenítenie az alábbi képen látható módon.
Ha nem talál semmit az LCD-n, ellenőrizze, hogy a python héj ablakban vannak-e hibák A képernyőn.
Remélem, hogy megértette a projektet, és élvezte annak felépítését, ha bármilyen problémával szembesült, hogy ezt elkészítette, jelentse be a megjegyzés részben, vagy használja a fórumot technikai segítségre. Igyekszem minden erőmmel reagálni az összes megjegyzésre.
A DHT11 használatával más mikrokontrollerrel is ellenőrizheti más projektjeinket.