AM2302/DHT22
Népszerű és nem túl drága szenzor, az előd DHT11-nél (feltűnő kék színű, óvakodom tőle) sokkal pontosabban mér: +/-0,5 pontossággal -40 és +80 fok Celsius között.
E mellett a relatív páratartalmat is méri 2-5% pontossággal. A nagy elektronikus piactérről 700-800 Ft körül beszerezhető, itthon kissé drágábban. Az adatokat egyvezetékes protokollal továbbítja, 2 másodpercenként legfeljebb egy alkalommal lehet hozzá fordulni. Hobbiprojektekhez kiváló, én személy szerint nem hiszem, hogy 60 másodpercnél sűrűbben kellene a lakás hőmérsékletét vizsgálni, így ez bőven jó. A fehér színű AM2302 egy másik változata a fekete AM2320, ami I2C buszos kétvezetékes csatlakozást igényel, de elvileg ugyanolyan paraméterű, mint az AM2302. (Biztos vagyok benne, hogy semmivel sem rosszabb választás, de egyelőre 2302-m érkezett.)
Aki ennél profibb és drágább eszközre vágyik, a BME280 szenzort keresi, ami mindezek mellett légnyomásadatokat is ad. A DHT széria legszimpatikusabb tulajdonsága a szenzort védő műanyag ház, mert én speciel nem a vezérlő és egyéb szenzorok rögzítésére szolgáló dobozon belül található hőmérsékletre vagyok kíváncsi, ezért a doboz külsejére szándékozom szerelni a hőmérőt, így praktikus a rácsos műanyag háza.
A DHT széria nem kifejezetten kültéri megoldás, kintre inkább a vízálló DS18B20 a megfelelő választás.
De visszatérve az AM2302-höz, felfogatásra egy M3 csavar fogadására alkalmas rögzítőfurat található a tetején, és így néz ki:Csatlakoztatásra négy (igazából három) tű szolgál, melyek szemből nézve balról jobbra haladva:
- 1. VCC: 3.3-5.5V DC táp
- 2. DATA: egyvezetékes adatláb, GPIO-ra köthető
- 3. NC: nem bekötendő
- 4. GND: Raspberry GND
Fontos!
Raspberry-re kötés előtt az 1 VCC és 2 DATA láb közé egy 4.7K-10K közti ellenállást kell forrasztani! Nekem 4.7K volt kéznél, teljesen jól bevált.
Vizuális típusok kedvéért valahogy így.
MÉG FONTOSABB!
Néha hajmeresztő dolgokat írnak a blog kedves olvasói nekem, pl van aki tök nyugodtan ráküldi az 5V-os tápfeszültséget a VCC-n keresztül a DHT-re, majd ugyanezt a DATA-ra tolja a 4.7k-s ellenállás segítségével, ami közvetlen kapcsolatba kerül a Raspberry Pi GPIO-ival, amik KIZÁRÓLAG 3.3V-os jelszinttel tudnak dolgozni! Ezt lehetőség szerint kerüljük, és ismerkedjünk meg azzal a hardverrel, amit használni akarunk, mielőtt bekötjük. Raspberry-t használva szigorúan 3.3V tápot használunk az eszközökre, amik visszaküldhetnek TTL feszültségszintet a Raspberry felé, VAGY ha valamiért mégis 5V tápot kell használnunk szintillesztőt használunk a GPIO-k előtt, amiről már szintén írtam!
Aki bizonytalan, annak itt az adatlap.
Python-ból történő eléréséhez az Adafruit_DHT függvénykönyvtárat kell először telepíteni, valahogy így:
git clone https://github.com/adafruit/Adafruit_Python_DHT.git
cd Adafruit_Python_DHT.git
sudo python setup.py install
Python3 esetén az utolsó sor természetesen:
sudo python3 setup.py install
Megjegyzés: mivel 2 másodpercenként lehet csak mérést kérni, a read_retry() függvény, bár elvileg jó lenne, nekem sokszor eredmény nélkül tért vissza, ennél jobban jártam ha a read()-el olvastam be egy tömbbe és a végén átlagoltam, ha már volt pár eredmény, legalább nem blokkolja a program futását!
Egyszerűbben is használható persze...
RPIEasy mintabeállítás:
Először is belépünk a Hardware/Pinout&Ports menübe, majd azt a GPIO-t amire az érzékelőnk van kötve, megkeressük - ez esetben ez a GPIO22 - és beállítjuk, hogy Input legyen a típusa, - mivel a felhúzóellenállás már rajta van hardveresen, ezért sima Inputra érdemes állítani szoftveresen - majd Submit gomb és újraindítás következik. (NEM 1WIRE KOMPATIBILIS!)
Ez után a Devices menüben valamelyik EDIT gombra kattintva felvehetünk egy DHT11/22/AM2302 típusú eszközt. (Ha nem sikerül felvennünk az eszközt, kapunk egy hibaüzenetet, amire kattintva az RPIEasy megpróbálja feltelepíteni az Adafruit DHT22 drivert, ez egy darabig eltarthat...)
A Name-Név beállítás kötelező elem, az Enabled bepipálásával engedélyezzük az eszköz működését, a 1st GPIO legördülő menüből pedig kiválasztjuk a megfelelő pint, amit már előzetesen beállítottunk, valamint a Sensor type-nél a DHT22-t. Az Oversampling beállítása nagyon ajánlott!!! Ugyanis a DHT22 kiolvasásához nagyon pontos időzítés szükséges, a multitaszking Linuxnak és a Pythonnak pedig ez nem erőssége, viszont több olvasásból átlagolva az eredmények tűrhetőek.
Ha felvettük a Controllers menüben már a Domoticz HTTP/MQTT közül valamelyiket, akkor a Send to Controller engedélyezése után, ha Submit-ot nyomunk, beírható a Domoticz-ban szereplő virtuális IDX azonosító szám.
Az Interval-t érdemes 30-500 másodperc közé állítani, nem érdemes túl gyakorira, mivel ritka eset, hogy fél percenként változzon a szoba hőmérséklete...
A bejegyzés trackback címe:
Kommentek:
A hozzászólások a vonatkozó jogszabályok értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a Felhasználási feltételekben és az adatvédelmi tájékoztatóban.
lacy03 2019.12.16. 12:17:32
eNeS 2019.12.16. 17:59:27
lacy03 2019.12.16. 18:13:39
eNeS 2019.12.16. 19:55:14
"A GPIO portokra csak megfelelő körültekintéssel, a dokumentáció elolvasása után kössünk rá bármit is, a legtöbb bemenete ugyanis 3.3V jelszinttel kompatibilis, ennél magasabb feszültség ráengedése esetén tönkremegy."
bitekmindenhol.blog.hu/2017/07/14/raspberry_pi_zero_w
lacy03 2019.12.16. 22:23:02
Kommentezéshez lépj be, vagy regisztrálj! ‐ Belépés Facebookkal