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
Deska spojů
Seznam součástek
* 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)
Rozšíření pro měření teploty a vlhkosti (ve stavovém okně teplota označené jako DS0)
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.
Označení vodičů čidla (VCC 5V, GND 0V, DQ data)