A DHT17 hőmérséklet- és páratartalom-érzékelő egy népszerű és olcsó érzékelő, amely a hőmérséklet és a relatív páratartalom meglehetősen széles tartományában használható. Lássuk, hogyan lehet csatlakoztatni az Arduinóhoz, és hogyan lehet róla adatokat olvasni.
Szükséges
- - Arduino;
- - DHT17 hőmérséklet- és páratartalom-érzékelő.
Utasítás
1. lépés
Tehát a DHT11 érzékelő a következő tulajdonságokkal rendelkezik:
- a mért relatív páratartalom tartománya - 20..90%, legfeljebb 5% -os hibával, - a mért hőmérséklet tartománya - 0..50 Celsius fok, legfeljebb 2 fokos hibával;
- a páratartalom változására adott válaszidő - legfeljebb 15 másodperc, a hőmérséklet - legfeljebb 30 másodperc;
- a szavazás minimális időtartama 1 másodperc.
Amint láthatja, a DHT11 érzékelő nem túl pontos, és a hőmérséklet-tartomány nem fedi le a negatív értékeket, ami éghajlatunkban alig alkalmas kültéri mérésekre a hideg évszakban. Alacsony költsége, kis mérete és könnyű kezelhetősége azonban részben ellensúlyozza ezeket a hátrányokat.
Az ábra az érzékelő megjelenését és méreteit mutatja milliméterben.
2. lépés
Tekintsük a DHT11 hőmérséklet- és páratartalom-érzékelő és a mikrovezérlő, különösen az Arduino csatlakozási rajzát. A képen:
- MCU - mikrovezérlő (például Arduino vagy hasonló) vagy egypaneles számítógép (Raspberry Pi vagy hasonló);
- DHT11 - hőmérséklet- és páratartalom-érzékelő;
- DATA - adatbusz; ha az érzékelőtől a mikrovezérlőig tartó összekötőkábel hossza nem haladja meg a 20 métert, akkor ajánlott ezt a buszt az áramellátáshoz 5, 1 kOhm ellenállással húzni; ha több mint 20 méter, akkor egy másik megfelelő érték (kisebb).
- VDD - érzékelő tápegysége; megengedett feszültségek ~ 3,0-5,5 volt DC; ~ 3,3 V tápellátás esetén ajánlatos legfeljebb 20 cm hosszú tápvezetéket használni.
Az egyik érzékelő vezeték - a harmadik - nem csatlakozik semmihez.
A DHT11 érzékelőt gyakran komplett szerelvényként értékesítik a szükséges csövekkel - felhúzható ellenállással és szűrőkondenzátorral.
3. lépés
Állítsuk össze a figyelembe vett sémát. Csatlakoztatok egy logikai elemzőt is az áramkörhöz, hogy tanulmányozhassam az érzékelővel folytatott kommunikáció időzítési diagramját.
4. lépés
Menjünk az egyszerű módon: töltsük le a könyvtárat a DHT11 érzékelőhöz (link a "Források" szakaszban), telepítsük a szokásos módon (kicsomagoljuk az Arduino fejlesztői környezet / könyvtárak / könyvtárába).
Írjunk ilyen egyszerű vázlatot. Töltsük be az Arduino-ba. Ez a vázlat 2 másodpercenként kiadja a DHT11 érzékelőből olvasott páratartalom és hőmérséklet üzeneteket a számítógép soros portjára.
5. lépés
Most a logikai analizátorból kapott időzítési diagram segítségével találjuk ki, hogyan zajlik az információcsere.
A DHT11 hőmérséklet- és páratartalom-érzékelő egyvezetékes soros interfészt használ a mikrovezérlővel való kommunikációhoz. Egy adatcsere körülbelül 40 ms-ot vesz igénybe, és tartalmaz: 1 kérési bitet a mikrovezérlőtől, 1 bitet az érzékelő válaszától és 40 adatbitet az érzékelőtől. Az adatok tartalmazzák: 16 bit nedvességtartalmú információt, 26 bit hőmérsékleti információt és 8 ellenőrző bitet.
Vizsgáljuk meg közelebbről az Arduino és a DHT11 érzékelő kommunikációjának időzítési diagramját.
Az ábrán látható, hogy kétféle impulzus létezik: rövid és hosszú. A rövid impulzusok ebben a csereprotokollban nullákat, a hosszú impulzusokat jelölnek.
Tehát az első két impulzus az Arduino kérése a DHT11-hez, és ennek megfelelően az érzékelő válasza. Ezután 16 bit páratartalom következik. Sőt, bájtokra vannak osztva, magasra és alacsonyra, balra magasra. Azaz ábra szerint a nedvességi adatok a következők:
0001000000000000 = 00000000 00010000 = 0x10 = 16% relatív páratartalom.
Hőmérséklet adatok hasonlóak:
0001011100000000 = 00000000 00010111 = 0x17 = 23 Celsius fok.
Ellenőrző bitek - az ellenőrző összeg csak 4 fogadott adatbájt összegzése:
00000000 +
00010000 +
00000000 +
00010111 =
00100111 bináris formátumban, vagy 16 + 23 = 39 decimálisban.