Domů > Linux, Ostatní > Turris Gadgets bez Turrisu?

Turris Gadgets bez Turrisu?

Moje návštěva akce „Večer s Turrisem #2“ pořádané sdružením CZ.NIC odstartovala další zajímavé bádání ve formě hrátek s domácí automatizací na Linux platformě. Jelikož router Turris dosud nevlastním, přestože bych se i do tohoto projektu rád zapojil, rozhodl jsem se testování provádět na platformě OpenWRT a to proto, že projekt routeru Turris z této platformy vychází, tak se dá předpokládat portace na Turris bezproblémová. Ovšem můžete pracovat také s Vaší oblíbenou Linuxovou distribucí. Podrobné informace o projektu jsou k dispozici na: Turris Gadgets kde je k dispozici také Referenční manuál, příklady pro práci s Turris donglem lze najít pro další studium na Githubu CZ-NIC/gadgets_demo
Dalším zdrojem informací může být také uživatelské fórum Turris v sekci Gadgets


Pro vytvoření OpenWRT virtuálního serveru budeme potřebovat následující: https://downloads.openwrt.org/barrier_breaker/14.07/x86/generic/openwrt-x86-generic-combined-ext4.img.gz

Pracovní postup:

Jako provní si připravíme virtuální server se systémem OpenWRT tak, že rozbalíme stažený archiv a vytvoříme virtuální disk pomocí binárky qemu-img z balíčku qemu. Vytvoříme si nový virtuál v custom režimu a náš disk mu připojíme. Nezapomeneme také protunelovat USB zařízení Turris Dongle.

gunzip openwrt-x86-generic-combined-ext4.img.gz
qemu-img convert -f raw openwrt-x86-generic-combined-ext4.img -O vmdk openwrt-x86.vmdk

Provedeme aktualizaci systému OpenWRT a doinstalujeme další potřebné balíčky

opkg update
opkg install kmod-usb-serial
opkg install kmod-usb-serial-ftdi
opkg install screen
opkg install python
opkg install git

Připojíme Turris Dongle do USB portu a příkazem dmesg zjistíme zda-li se nám správně po instalaci ovladačů detekuje:

usbcore: registered new interface driver ftdi_sio
usbserial: USB Serial support registered for FTDI USB Serial Device
ftdi_sio 1-1:1.0: FTDI USB Serial Device converter detected
usb 1-1: Detected FT-X
usb 1-1: Number of endpoints 2
usb 1-1: Endpoint 1 MaxPacketSize 64
usb 1-1: Endpoint 2 MaxPacketSize 64
usb 1-1: Setting MaxPacketSize 64
usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
PPP generic driver version 2.4.2
NET: Registered protocol family 24XXX
cdc_acm 2-2:1.0: ttyACM0: USB ACM device

Výborně, připojené zařízení se detekuje jako /dev/ttyUSB0 ta můžeme s ním tedy komunikovat prostřednictvím seriového portu například pomocí nástroje screen.

screen /dev/ttyUSB0 57600

Pošleme na zařízení testovací dotaz:

echo "WHO AM I?" > /dev/ttyUSB0

vrátí se nám na seriovou konzoli odpověď:

TURRIS DONGLE V1.4

Zde se můžeme pogratulovat, neboť komunikace probíhá bez závad.

Stáhneme se tedy z githubu příklady pro komunikaci s Turris donglem

git clone git://github.com/CZ-NIC/gadgets_demo.git

A můžeme testovat komunikaci prostřednictvím pythonových scriptů v příkladech

root@OpenWrt:/usr/local/gadgets_demo# python gadget_command.py  "WHO AM I?"
SENDING: WHO AM I?
REPLY: TURRIS DONGLE V1.4

Nebo podobný příklad s dotazem na termostat

root@OpenWrt:/usr/local/gadgets_demo# python thermometer.py 
Using '/dev/ttyUSB0' as input device
[02449469] TP-82N SET:20.0�C LB:0
[02449469] TP-82N INT:28.2�C LB:0
2015-07-17 20:50:17: 28.2

To by bylo pro začátek vše a můžeme se věnovat testování dalších čidel v sadě, nebo nově přířazených, které jsem objednal z Jablotronu pro projekt automatického závlahového systému, na kterém budu pracovat v následujícím testovacím období.

Categories: Linux, Ostatní Tags:
  1. Bez komentářů.
  1. Žádné zpětné odkazy

*