feed-image Odebírat tento obsah čtečkou
Nabídka
csenderusktr

Moje Raspberry Pi - plugin OSPy měření teploty pomocí DS18B20

Pro měření teploty bazénu jsem potřeboval do OSPy doplnit do stávajícího rozšíření "Air Temperature and Humidity Monitor" měření a logování z teplotního čidla Dallas DS18B20.

Problém nastal ve chvíli když jsem zjistil, že na Raspberry Pi jediný volný pin GPIO 4 (pin 7), který umožňuje funkci one wire je již obsazen signálem CLOCK posuvných registrů OSPy. Než abych desku spojů nějak "bastlil" a hodiny dal na jiný pin (navíc nevím kolik uživatelů již OSPy používá a při vydání nové verze OSPy by jim stávající deska přestala pracovat!), tak jsem šel cestou samostatné HW desky připojené pomocí I2C sběrnice (tak jako ostatní prvky systému - LCD displej, tlačítka, RTC...)

Tato deska slouží jako HW rozšíření pro rozšíření "Air Temperature and Humidity Monitor" v OSPy systému. Pomocí 4 DIP přepínačů nastavíme na desce počet použitých čidel DS18B20 na sběrnici one wire. Deska se po připojení k OSPy objeví na adrese 0X03.

V mém případě jsem k bazénu natáhnul v PVC trubce zemí 50 metrů stíněného kabelu JYTY-O 2x1mm2 , kde jeden konec kabelu je zapojen do desky (+5V, 0V, Data) a druhý konec je připojen k čidlu Dallas DS18B20 (+5V, 0V, Data). Při velké vzdálenosti kabelu nelze použít z důvodů kapacit kabelu více čidel než pouze jedno čidlo. Na pár metrů lze připojit i 8 čidel. Rozšíření umožňuje nastavit od 1 do 8 čidel. Kabel táhnu společně (ve stejné trubce) s kabelem CYKY 3Cx2,5 mm2 pro motor filtrace 300W (také ho ovládám přímo pomocí OSPy). Po cca měsíci používání jsem zjistil, že není problém s rušením od silového kabelu pro čerpadlo.

V procesoru je u měření použito 9-bitové rozlišení teploty čidla Dallas (+ - 0.5 ºC) pro běžný provoz dostačující (teplota bazénu) - nadšencí si mohou ve zdrojovém kódu upravit :-)

  • 9 bitů: přesnost 0.5 ºC, převod trvá 93.75 ms
  • 10 bitů: přesnost 0.25 ºC, převod trvá 187.5 ms
  • 11 bitů: přesnost 0.125 ºC, převod trvá 375 ms
  • 12 bitů: přesnost 0.0625 ºC, převod trvá 750 ms

Z desky se odesílá po I2C sběrnici 6 bytů krát počet čidel nastavených pomocí DIP přepínačů na desce (příklad 2 čidla = 2*6 bytů).

Program obsahuje funkci, že pokud nepřijde z OSPy I2C požadavek na desku do 15 vteřin, tak se procesor restartuje (slouží jako zabránění zatuhnutí I2C registrů v procesoru). Rzšíření v OSPy zasílá požadavek na teplotu po 5 vteřinách, tak by nemělo k restartu CPU docházet.

ZDARMA

  • hex pro procesor ATMEGA328

DONATE

  • deska spojů a gerber (Eagle), zdroj pro Arduino IDE

Pokud připojíme tuto desku k OSPy neosazujeme zkratovací kolíky SCL a SDA (PULL-UP) pro I2C sběrnici! Rezistory jsou již na desce OSPy osazeny. V případě použití v jiné konstrukci můžeme libovolně pomocí zkratovacích jumperů rezistory připojit.

Schéma zapojení desky

schema

Deska spojů

 deska

DSC 1308

DSC 1311

DSC 1321

DSC 1338

DSC 1340

Seznam součástek

Označení Hodnota Prodejce Cena ks Celkem
R1 1 - 4,7K *  http://www.tme.eu/cz/details/mf0204fte52-1k/metalizovane-rezistory-tht-04w/yageo/mf0204fte52-1kl/  0,3,-  0,3,-
R2, R3 4K7  http://www.tme.eu/cz/details/mf0204fte52-4k7/metalizovane-rezistory-tht-04w/yageo/mf0204fte52-4k7l/  0,3,-  0,6,-
R4 Ochrana  http://www.tme.eu/cz/details/b59990c0120a070/termistory-ptc/epcos/  7,9,-  7,9,-
R5 220  http://www.tme.eu/cz/details/m0.4w-220r/metalizovane-rezistory-tht-04w/royal-ohm/mff04ff2200a5/  0,2,-  0,2,-
D1 LED 3 mm  http://www.tme.eu/cz/details/l-934hd/led-diody-tht-3mm/kingbright-electronic/  2,5,-  2,5,-
D2, D3 BA159  http://www.tme.eu/cz/details/ba159/univerzalni-diody-tht/dc-components/  1,2,-  2,4,-
C1, C2 22 pF  http://www.tme.eu/cz/details/cc-22/keramicke-kondenzatory-tht-50v/sr-passives/  0,2,-  0,4,-
C3 100 nF  http://www.tme.eu/cz/details/cm-100n/kondenzatory-mlcc-tht/sr-passives/  0,6,-  0,6,-
Q1 16 MHz  http://www.tme.eu/cz/details/16.00m-hc49-s/krystalove-rezonatory-tht/yic/  14,6,-  14,6,-
SW1, SW2 DIP 2x1  http://www.tme.eu/cz/details/ds-02/prepinace-dip-switch/ninigi/  12,3,-  24,6,-
IC3 ATMEGA328  http://www.tme.eu/cz/details/atmega328-pu/mikroprocesory-atmel-avr-tht/microchip-atmel/  64,-  64,-
IC3 - pat DIL28  http://www.tme.eu/cz/details/gold-28p-w/presne-patice/connfly/ds1001-01-28bt1nsf6s/  17,-  17,-
SCL, SDA 2 pin lámací  http://www.tme.eu/cz/details/zl201-02g/konektory-hrebinky/connfly/ds1021-1_2sf1-1/  0,5,-  1,-
I2C, I2C/2 4 pin samec  http://www.tme.eu/cz/details/280371-1/signalove-konektory-raster-254mm/te-connectivity/  14,9,-  29,8,-
DS konekt 3 pin RM 5mm  http://www.tme.eu/cz/details/dg126-5.0-3p14/svorkovnice-do-plosnych-spoju/degson-electronics/dg126-50-03p-14-00ah/  5,6,-  5,6,-
Celkem   171,-

* Rezistor R1 je nutné vyzkoušet dle délky kabelu (začít od největší hodnoty směrem dolů - v mém případě 50 m kabelu mám R1 = 1K Ohm)

Systémové informace v rozšíření OSPy (deska pro DS18B20 je na adrese 0x03)

info

Rozšíření pro měření teploty a vlhkosti (ve stavovém okně teplota označené jako DS0)

temper

Použitý kabel a čidlo

Čidlo je napájené 5V (bezpečné napětí i v bazénu v případě "čehokoliv") - zároveň je čidlo bezpečně zalité v pryskyřici.

DS2

Označení vodičů čidla (VCC 5V, GND 0V, DQ data)

DS1

jyty o 2x1 0

DSC 0858

DSC 0863

DSC 0868

DSC 1045

DSC 1046

DSC 1054

 

Nemáte oprávnění pro vkládání komentářů (You have no rights to post comments.)