Hőmérséklet szenzor (DS18b20)
2019. január 05. írta: eNeS

Hőmérséklet szenzor (DS18b20)

Röviden bemutatnám a sokak által preferált, a gyártó által +/-0.5 fok Celsius (-10 és +85 fok Celsius között) pontosságúnak ígért hőmérő szenzort, a Dallas DS18b20-at. Az eszköz 1 adatlábon kommunikál és a fantáziadús "1-Wire" névre keresztelt protokollal, mely a Maxim Integrated Products védjegyoltalma alatt áll.
(Nem tévesztendő össze a szintén 1 adatlábon kommunikáló DHT22-vel, ami csak hasonlóan működik, de nem 1-Wire kompatibilis!)

Van belőle kis méretű beltéri modell is, de a leginkább keresett a vízálló, kültéri modell, mely megjelenési formáját tekintve nagyjából ilyen:

ds18b20.jpg

Hátránya az általam használt többi hőmérő eszközhöz képest, hogy nem tud páratartalmat mérni, ám kültéren mondhatni nincs párja. Árát tekintve e-bayen 200-500Ft körül beszerezhető, így nem nevezném drágának, persze azonnal itthonról is kapható, kicsit többért.

Látható, hogy az egy vezeték igazából három, egy 1: GND (fekete), 2: adatláb (sárga/kék), 3: táp - piros (3-5.5V között)

(Létezik úgynevezett parazita módja is, ami összesen két vezetékkel megoldja mindezt, a 3-ast is GND-re kötve, bár ahogy olvastam, ez különböző problémákat okozhat, főleg ha több érzékelő van egy körön)

Nyilván, ha Raspberry vagy ESP8266 eszközzel kívánjuk használni, akkor 3V-al tápoljuk meg, mivel a képen látható módon egy 4k7-es (hardveres) felhúzó ellenállást is tenni kell a táp és adatláb közé, ebben is nagyon hasonlít a DHT22-höz. Hosszabb távolságon pl 50 méteres kábelszakaszon már érdemes csökkenteni az ellenállás méretét, pl 2k7 vagy akár 1000 ohmig is. Az elméleti maximum 5.5V esetén 200méter, ideális körülmények és überfrankó "Master" eszköz esetén 500 méter (*Forrás: MaximIntegrated). Nekem személy szerint vannak fenntartásaim ezekkel a számokkal kapcsolatban, mivel 100méteres táv felett az 5V-ból elég sok "esik" a vezeték ellenállása miatt, de az 50-70 métert még el tudom képzelni.

A DHT22-től eltérő módon itt egy adatlábra több érzékelő is felfűzhető, ezek közül a gyári számuk alapján választhatjuk ki, melyikről történjen az adatkérés, felhúzó ellenállás viszont csak egy kell a vonalra, akkor is, ha több eszközről van szó.

ds18b20-normal-power.jpg

(Nagyobb távnál úgy trükközhetünk még, hogy tápként feladjuk az 5V-ot a szenzoroknak a kábelen, viszont a bejövő adatlábat nem erre, hanem pl az RPI 3.3V-os táplábra húzzuk fel, ez azért működhet, mert az eszköz lehúzza 0-ra az adatlábat, amikor kommunikál, és csak a felhúzó ellenállás miatt megy vissza 1-re, amit ha csak 3.3V-ig húzunk vissza, nem tesszük tönkre a Raspberrynket...) "Lapzárta" után érkezett extra tipp: a szenzoroknál közvetlenül a GND és VDD közé helyezett 100nF kondenzátor stabilizálhatja a működésüket, ha valami probléma merülne fel kiolvasáskor.

Használata: ESP8266-on az ESPEasy alapból támogatja egy pluginon keresztül.

Raspberryn pedig a Linux kernelbe integrált w1-gpio driveren keresztül az RPIEasy:

Először is belépünk a Hardware/Pinout&Ports menübe, majd azt a GPIO-t amire az érzékelő(k) adatlába van kötve, megkeressük - ez esetben ez a GPIO22 - és beállítjuk, hogy 1WIRE legyen a típusa majd Submit gomb és újraindítás következik.

rpi_ds0.jpg

UPDATE: Előfordulhat, hogy a /boot partíció csak olvasható (ro), vagy csak a memóriában lett csatolva (tmpfs). Ebben az esetben ezt a fenti beállítás idejére meg kell szüntetnünk, vagy kézzel beállítani a config.txt tartalmát..

Ez után a Devices menüben valamelyik EDIT gombra kattintva felvehetünk egy DS18b20 típusú eszközt.

rpi_ds1.jpg

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 Device Address pedig egy lenyitható lista, amiben minden érzékelő szerepel, ebből kiválasztható, melyikről szeretnénk hőmérsékletadatokat. (érdemes egyesével felfűzni őket először, ha nem tudjuk melyik érzékelő melyik)
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-ban beállított időközönként lejelenti a kiválasztott Controller-ek felé a kinyert adatokat.

A bejegyzés trackback címe:

https://bitekmindenhol.blog.hu/api/trackback/id/tr5314538710

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.

asbi` 2019.01.17. 12:40:12

A 10 darab 700HUF körül elírás, vagy csak én nem találom? :)

karolyia 2019.05.03. 10:52:31

legjobb hőmérő szenzor. a külsö pullup miatt pláne. a nodemcu hajlamos a dht-nál "elfelejteni", hogy müködik. gondolom a belső pullup ellenállás nem olyan jó minőség, mint egy külső. kazán vezérlésre ez a legmegbízhatóbb. ráadásul akár 4 tizedesig pontos. ahol nem kell a páratartalom, csak ilyet rakok. ahol meg kell, oda is inkább si7021. a dht olcsó, de megbízhatatlan, inkább csak időjárás állomáshoz jó. a dht11 meg nem is tudom mire jó. 0 tizedesig pontos...