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

Seznam článků

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 6 čidel. Rozšíření umožňuje nastavit od 1 do 6 č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 5 bytů krát počet čidel nastavených pomocí DIP přepínačů na desce (příklad 2 čidla = 2*5 bytů).

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

ZDARMA

  • hex pro procesor ATMEGA328 1.0, 1.1

DONATE

  • deska spojů a gerber (Eagle), zdroj pro Arduino IDE od verze 1.0 výše

Verze FW

  • 1.1 původní verze 1.0 neodesílala zápornou hodnotu teploty, proto změna přenosu dat po I2C směrem do OSPy (každé DS čidlo odesílá 5 bytů), změna počtu čidel na 6 ks (sběrnice může v základu z CPU odeslat max 32 bytů - bez komplikací 6ks DS * 5 bytů = 30 bytů), změna času hlídání chodu I2C z 15 na 30 vteřin. Odesílá se tento formát dat: 5 byte s teplotou jako: př: -125.2 se odešle status, tis, sto, des, jed jako 1,1,2,5,2 a číslo 85.5 se odešle jako 0,0,8,5,5. Aktuální verze OSPy pluginu nepracuje s verzí 1.0, je nutné v procesoru Atmega 328 vyměnit program za verzi 1.1. DIP spínač aktuálně nevyužívá 4 spínač (váha 8), ale pouze váhy 1, 2, 4.
  • 1.0 výchozí verze

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