2.3.2014

foto Petr Bravenec

Petr Bravenec
Twitter: @BravenecPetr
+420 777 566 384
petr.bravenec@hobrasoft.cz

Ještě než začal svět ve velkém blbnout s Raspberry PI, začal jsem si hrát s BeagleBone. BeagleBone je malý ARM počítač podobný Raspberry PI, hlavní rozdíl bych viděl v možnostech rozšiřování - BeagleBone je konstrukčně řešený tak, aby se k němu daly snadno připojovat rozšiřující desky. Ve firmě jsme na BeagleBone postavili malý počítač pro sběr dat: FotobotHW. Protože nám nějaké BeagleBone zbyly, začal jsem si trochu hrát.

Ze šuplíku jsem vytáhnul teploměr DS1820 - to je digiální třínožičkový teploměr. Driver je obsažený přímo v kernelu, neměl by tedy být problém teploměr připojit. I když je to snadné, trvalo mi připojení dost dlouhou dobu - nejobtížnější částí bylo získat potřebné informace. Takže jak na to:

Driver je přímo součástí jádra. V Beaglebonu nepoužívám originální jádro (není zde podpora pro IPv6), překládám si jádro vlastní (ke stažení zde: http://hobrasoft.cz/cs/fotobothw/linux-3.2.34.tar.bz2). Zde je driver součástí defaultní konfigurace. Pátráním ve zdrojácích jsem nakonec našel příslušné vývody - a taky to, že tato informace se vypisuje při bootu kernelu. Vypsat si ji můžeme třeba takto:

dmesg | grep w1
[    0.463470] BeagleBone cape: initializing w1-gpio
[    0.463592] w1-gpio connected to P8_6

Abychom rozluštili zkratku P8_6, potřebujeme manuál k BeagleBone. Jde o vývod č. 6 na konektoru P8. Na tento vývod tedy přijde připojit datový vodič sběrnice.

Pro připojení teploměru potřebujeme ideálně tři vodiče - zem, data a napájení. Zem najdeme na vývodu P8_1 a P8_2, napájení pak na P9_3.

Po připojení teploměru už by měl být teploměr kernelem viděn. Ověřit to můžeme v adresáři /sys/bus/w1/devices:

ls /sys/bus/w1/devices/
28-0000027d912e  28-00000294d39a  w1_bus_master1

Super! Kernel našel na sběrnici dva teploměry. Jaká je tedy teplota?

cat /sys/bus/w1/devices/28-0000027d912e/w1_slave
6f 01 4b 46 7f ff 01 10 67 : crc=67 YES
6f 01 4b 46 7f ff 01 10 67 t=22937

Teplota je vypsaná parametrem t. Desetinná tečka není uvedená. Hodnota 22937 odpovídá teplotě 22.937 stupňů Celsia.

Nyní už je snadné se pochlubit teplotou ve své kanceláři (pouze přes IPv6):

http://beagle.bravenec.eu/

Stránky jsou pouze statické, generované každých 15 vteřin. Obrázky, CSS a vše ostatní se tahá odjinud.

Po napsání článku jsem připojil ještě šuplíkový LCD displej. Prodrátování na fotkách není vidět.

Hobrasoft s.r.o. | Kontakt