Raspberry Pi v domácí automatizaci
Ondrej Caletka
3. listopadu 2013
Uvedené dílo podléhá licenci Creative Commons Uved’te autora 3.0 Cesko.
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 1 / 37
O sdružení CESNET
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 2 / 37
Obsah
1 Strucne o Raspberry Pi
2 Pripojení nízkoúrovnových periferií
3 Popis hardware PoEpi
4 Výroba DPS @home
5 Softwarové rešení
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 3 / 37
Raspberry Pi
Jednodeskový mikropocítac založený na SoC BCM 2835
puvodne urcený pro multimediální prehrávaceCPU jádro ARMv6k 700 MHzprímo pripojená RAM 256/512 MBGPU s video a 2D/3D akceleracímožnost pripojení nízkoúrovnových periferiícenove atraktivní
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 4 / 37
Domácí automatizace
merení a regulace v domácnostiinteligentní budovyinternet vecíinsert your own buzzword here. . .
Tato prednáška bude o (bohužel) jen o merení.
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 5 / 37
Rozhraní RPi
videokompozitní SDTV v režimu 576i-PALHDMI s podporou audia a CECovládání pomocí nástroje tvtoolboot-time nastevení v souboru config.txt
USBjeden USB 2.0 Host na SoC – pripojen na ethernetový radickombinovaný s USB HUBempojistkou na 120 mA v první revizi
rozhraní pro kameru, displej, GPIO
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 6 / 37
Kamera k Raspberry PiCMOS 5Mpx kamera pripojena vysokorychlostní sériovoulinkou prímo k SoCzpracování obrazu na RPi GPUHW podporovaná komprese JPEG, H.264k dispozici i ve variante bez IR blockeru
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 7 / 37
GPIO konektork dispozici je sériová linka, I2C, SPI a 8 GPIO linekúrovne napetí 3,3 V, netolerantní k 5 V, bez ochran(DangerZoneTM)
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 8 / 37
GPIO
ovládání jednoduchého HW (LEDky, tlacítka)obtížne dosažitelné presné casování (hack s DMA)knihovny pro ruzné programovací jazyky, vcetne využitíprerušení (namísto pollingu)
# echo "4" > /sys/class/gpio/export# echo "out" > /sys/class/gpio/gpio4/direction# echo "1" > /sys/class/gpio/gpio4/value
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 9 / 37
Sbernice I2Cdvoudrátová sbernice (SCL, SDA, zem) pro komunikacimezi integrovanými obvody (Inter-Integrated Circuits)nenárocná na casování, rychlost až 100/400 kBAUD
v RPi je možné rychlost nastavit parametrem moduluOpen-drain sbernice
v klidu je log. 1 zajištena pomocí Rp (vestaven v RPi)každé zarízení muže stáhnout sbernici do log. 0
režim Master-slave, 7-bitová adresa slave zarízení
VddSDASCL
Rp
μCMaster
μCSlaveSlave
ADCSlaveDAC
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 10 / 37
Mods – I2C RTC modul
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 11 / 37
Ovládání I2C z Linuxu
# modprobe i2c-bcm2708# modprobe i2c-dev# i2cdetect 0
WARNING! This program can confuse your I2C bus, cause data loss and worse!I will probe file /dev/i2c-0.I will probe address range 0x03-0x77.Continue? [Y/n]
0 1 2 3 4 5 6 7 8 9 a b c d e f00: -- -- -- -- -- -- -- -- -- -- -- -- --10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --50: 50 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --70: -- -- -- -- -- -- -- --
# echo pcf8583 0x50 \> /sys/bus/i2c/devices/i2c-0/new_device
# hwclock
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 12 / 37
Sbernice 1-Wire
jednodrátová sbernice (data, zem), možnost parazitníhonapájenípomalá, funkcní i na delší vzdálenosttypické využití – docházkové systémy (iButton), identifikacenapájecího zdroje pro notebook (Dell, HP)každé zarízení s unikátní 64-bitovou adresou, možnostparalelního pripojování mnoha zarízenísložitejší protokol na implementaci, nutnost presnéhocasovánílevná a dostupná digitální teplotní cidla DS18B20
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 13 / 37
1-Wire pomocí DS2482-100
HW radic 1-Wire, pro I2Cstará se o presné casováníplne podporován Linuxemaktivní pull-up – nabíjí kapacitu dlouhého vedení rychleji,poskytuje dostatecný proud pro konverzi teploty, ci zápisEEPROM
# modprobe w1-therm# cat /sys/bus/w1/devices/*/w1_slave95 01 4b 46 7f ff 0b 10 0b : crc=0b YES95 01 4b 46 7f ff 0b 10 0b t=25312
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 14 / 37
PoEpiStep-down menic z 12-40 V na 5 V/0.75 A1-Wire radic DS2482-100Hodiny PCF8583http://poepi.jdem.cz/
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 15 / 37
Step-down menicPasivní PoE extraktor, vstup až 40 V, výstupní proud 0,75 A
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 16 / 37
Propojení I2C s 5 V logikouObousmerný prevodník úrovní s MOSFET tranzistoryChrání RPi pred vysokonapet’ovými špickami
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 17 / 37
Radic 1-wire
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 18 / 37
Hodiny reálného casu
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 19 / 37
Sestava
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 20 / 37
Finální umístení
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 21 / 37
Teplotní cidlo DS18B20
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 22 / 37
Výroba DPS @home
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 23 / 37
Motiv na lepicím papíru
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 24 / 37
Transfer toneru na DPS
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 25 / 37
Odmocení papíru
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 26 / 37
Prenesený toner
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 27 / 37
Leptáme v FeCl3
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 28 / 37
Vyleptáno
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 29 / 37
Osazeno
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 30 / 37
Odecet teplotCronem každou minutuHodnoty se ukládají do round-robin databázeV pravidelných intervalech se generují PNG grafy (do tmpfs)Z tmpfs grafy cte prímo web server (Lighttpd)
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 31 / 37
Ukázka grafu
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 32 / 37
Stream obrazukamera nemá standardní SW rozhraníraspistill pro fotky a raspivid pro H.264 videostreaming H.264 do prohlížece je problematický
vyžaduje RTMP stream, flash prehrávaceproblém s mobilním prehrávánímrešením je do budoucna MPEG-DASH
problém soucasného streamování videa a porizování fotek
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 33 / 37
Stream obrazu – rešení
nekonecná smycka raspistill:1 60 sekund casosberného focení každých 100 ms, neustále
prepisující týž soubor2 uložení HD fotky na externí SD kartu
pred sejmutím fotky je treba pockat sekundu na vyváženíexpoziceprepisující soubor je možné streamovat jako MJPEGpomocí mjpgstreamer
1 vstupní plugin input_file sleduje zmeny v souboru pomocíinotify
2 výstupní plugin output_http vyrobí stream kompatibilní svetšinou prohlížecu, bez nutnosti pluginu
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 34 / 37
Jezírko
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 35 / 37
Provozní zkušenosti
obcas se raspistill zasekne (jednou za 14 dnu)
zrídkakdy dojde k odpojení externí SD karty v USB cteccevícenásobné spuštení obslužných programu kamery bylproblémzaseknutý subsystém kamery zpusobí zatuhnutí behemsoft-rebootu
jediná možnost – odpojit napájeníbylo by vhodné doplnit o HW watchdognebo spojit GPIO s reset vstupem
prícina pravdepodobne v obslužném SW kamery (v CPU iGPU)bez kamery je RPi velmi stabilní (100 dní uptime)
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 36 / 37
Záver
Dekuji za pozornost.
Ondrej [email protected]
Ondrej Caletka (CESNET, z.s.p.o.) Raspberry Pi v domácí automatizaci 3. listopadu 2013 37 / 37