Přeskočit na hlavní obsah

Externí teplotní senzory (1-Wire / DS18B20)

GLIDER podporuje až 8 digitálních teploměrů DS18B20 připojených přes sběrnici 1-Wire. Senzory se připojují k jednomu ze dvou portů 1-Wire na svorkovnici zařízení GLIDER (W1 nebo W2).

Tato stránka popisuje, jak sondy zapojit, vyhledat a jak z nich číst teplotu.

tip

Konfiguraci alarmů svázaných s těmito senzory najdete v části Konfigurace → Alarmy.

Hardware​

GLIDER vyvádí sběrnici 1-Wire na dva fyzické porty. Oba jsou elektricky rovnocenné a obsluhuje je stejný interní master 1-Wire Maxim DS2484:

PortNapájeníDataZem
W1W1VW1DW1G
W2W2VW2DW2G

Standardní kabelové sondy DS18B20 od HARDWARIO mají tři vodiče:

Barva vodičeFunkcePřipojit k
🔴 ČervenýVCC (napájení)W1V nebo W2V
🟡 ŽlutýDataW1D nebo W2D
⚫ ČernýGNDW1G nebo W2G
tip

Oba porty sdílejí uvnitř zařízení GLIDER stejnou logickou sběrnici 1-Wire. Osm logických „slotů“, které firmware spravuje, nezávisí na tom, do kterého fyzického portu sondu zapojíte. Sondy se ke slotům přiřazují podle kódu ROM, ne podle portu.

Krok 1 – Zapojení sond​

  1. Před zapojováním zařízení GLIDER vypněte.
  2. Odizolujte tři vodiče každého kabelu DS18B20 a připojte je k W1 nebo W2 podle tabulky výše.
  3. Zařízení znovu zapněte.

Sondy můžete mezi W1 a W2 libovolně rozdělit, protože oba porty obsluhují stejnou sběrnici. Osm slotů je čistě softwarových a každý se váže na sériové číslo ROM jednoho senzoru DS18B20.

Krok 2 – Prohledání sběrnice​

Po zapnutí nechte firmware vyhledat připojené senzory.

Přes konzoli RTT​

therm scan

Přes konzoli AT​

AT$SHELL="therm scan"

Ukázkový výstup:

Found 1 sensor(s):
[1] 28ff12b05316031d <- NEW
Slot 2: (empty)
Slot 3: (empty)
Slot 4: (empty)
Slot 5: (empty)
Slot 6: (empty)
Slot 7: (empty)
Slot 8: (empty)

Save changes? [y/N]

Značka <- NEW označuje kód ROM, který firmware dosud neviděl. Stiskem y + Enter nové senzory přiřadíte k navrženým slotům a zařízení se restartuje.

Potvrzení můžete přeskočit (hodí se pro skripty nebo zprovoznění ve výrobě):

therm scan --save

Příkaz senzory přiřadí a zařízení restartuje v jednom kroku.

Pokud chcete zároveň smazat sloty, jejichž kódy ROM už na sběrnici nejsou:

therm scan --clear-missing

Krok 3 – Čtení teploty​

Teplotu senzoru přiřazeného ke slotu přečtete příkazem:

therm read 1

(místo 1 zadejte číslo slotu 1–8). Všechny obsazené sloty najednou přečtete příkazem:

therm readall

Ukázkový výstup:

Slot 1: 23.50 °C
Slot 2: 24.62 °C

Teplota se udává ve °C s rozlišením 0,01 °C. Neúspěšné čtení (odpojená sonda, chyba CRC, …) vrátí NaN a do payloadu pro cloud se odešle jako null.

Krok 4 – Kontrola stavu slotů​

therm state

Zobrazí aktuální přiřazení slotů, poslední naměřenou teplotu a čítače čtení a chyb.

Ruční přiřazení senzoru ke slotu​

Pokud znáte kód ROM sondy (například ze štítku), můžete ji přiřadit přímo bez vyhledávání:

therm config 1 28ff12b05316031d

…a pak konfiguraci uložit:

AT&W

Jak se teploty zobrazují v cloudu​

Každý obsazený slot je součástí pole thermometers v payloadu CBOR:

thermometers:
- slot: 1
temperature: 23.50
- slot: 2
temperature: 24.62

Prázdné sloty se do payloadu nezahrnují (neobjeví se ani jako null). Neúspěšné čtení se odešle jako temperature: null.

Úplné schéma najdete na stránce CBOR payload.

Kombinace s alarmy​

Každý slot teploměru lze svázat s jedním nebo více pravidly alarmu, která se aktivují, když teplota překročí nastavitelnou prahovou hodnotu:

alarm config 1-enabled true
alarm config 1-therm 1 # watch slot 1
alarm config 1-threshold 30 # trigger at 30 °C
alarm config 1-hysteresis 5 # release at 30 − 5 = 25 °C
AT&W

Úplný popis alarmů najdete na stránkách Konfigurace a Příkazy shellu.