Raspberry Pi 15) Teploměr DS18B20
Pro měření teploty jsem použil integrovaný obvod DS18B20. Tady je odkaz na prodejce (GM-elektronics) a katalogový list . Tato součástka přímo komunikuje s Raspíčkem pomocí jednoho GPIO portu. Protože každý takovýto teploměr má vnitřně nastavený unikátní kód, je možné na stejný port připojit několik takovýchto teploměrů. Ovládací program se pak postará o získávání dat z konkrétního teploměru. Když to shrnu, tak je třeba nejdříve připojit čidlo pomocí 3 vodičů (GND, +3,3V, GPIO4). GPIO4 není možné změnit, protože ovladač je napsaný pouze pro tento port. Takže pokud už máte něco připojeno ke GPIO4 (třeba LEDku), tak jí musíte předrátovat na jiný volný port, nebo zajistit její odpojení v případě, že budete měřit teplotu. Mezi vodiči 3,3V a GPIO4 je vřazený odpor 4k7. Pomocí příkazů posílaných konkrétnímu čidlu je možné provádět kromě čtení aktuální teploty i další nastavení, jako třeba změna rozlišení (9 až 12 bitů), nebo dokonce nastavení teplotní úrovně, při které začne čidlo posílat signál "alarm". Tak daleko jsem se ale zatím nedostal.
V nejnovější verzi operačního
systému Raspbian už není třeba doinstalovávat patche jádra Stačí spustit ovladače:
(Tyto příkazy je dobré umístit i do spouštěcího skriptu, aby byl teploměr příště k dispozici hned po nastartování RasPi.)
Pak se pomocí příkazu lsmod může zkontrolovat, že ovladače opravdu běží. Dále se musí zjistit unikátní kód konkrétního teploměru.
Aktuální teplota je pak zakódovaná v textovém souboru "w1_slave" v té složce. Takže vypsání obsahu souboru je možné například takto:
Teplota je pak ten poslední údaj na druhé řádce.
Občas se může stát, že dojde k problému v komunikaci. V tom případě není údaj o teplotě správný, ale zároveň je v souboru informace, že nesouhlasí kontrolní součet. Vyhodnocování takovýchto stavů je pak věcí dalších programů.
Zatím mám vyzkoušené pouze jedno čidlo, ale předpokládám, že když se připojí několik čidel paralelně, vznikne více složek s unikátními kódy, ve kterých bude opět ten soubor "w1_slave", který bude obsahovat údaj o teplotě příslušného čidla. Až seženu další čidlo, tak to ověřím.
A takhle vypadá čidlo připojené k mojí "bastl" desce. Protože jsem měl původně na portu GPIO4 připojenou LEDku, přidal jsem k ní rozpojovací propojku.
Doplnění 2.9.2012 Potvrzuji, že při připojení druhého čidla paralelně k prvnímu, se opravdu objeví další složka s unikátním kódem druhého teploměru: Odpor 4k7 je možné připojit na desku na straně RasPi
(není nutné ho pájet přímo na vývody u čidla). Mám vyzkoušené,
že je možné připojit dvě čidla na jeden společný odpor u RasPi. Editace 31.5.2013 Zrušena informace o instalaci ovladačů. Nejnovější verze operačního systému už má tyto ovladače v sobě přímo zabudované.
|
úvodní strana webu AstroMiK.org |
|
poslední úprava stránky 12.2.2015 |