úterý 3. května 2016

Mobilní připojení Raspberry PI přes 3G

V šuplíku jsem měl jeden nepoužívaný dongle ZTE model MF667, který jsem někdy dostal od TMobile k datovému tarifu. Nabízelo se vyzkoušet, zda bude možné jej použít s Raspberry Pi. Po několika slepých uličkách jsem dospěl k řešení, které mi nyní spolehlivě zajišťuje propojení autonomní stanice s Raspberry Pi na internet.

V následujících řádkách je popsáno, jak jsem připojení řešil. Jedná se o kombinaci využití usb_modeswitch a umtskeeper.

Hned v úvodu jsem musel řešit, jak aktivovat modem. K tomu mi pomohl právě usb_modeswitch. Dongle se totiž tváří jako USB zařízení se dvěma funkcemi. Jednak jako paměťové médium, flashdisk - tam jsou uloženy drivery pro instalaci na Windows a jednak jako vlastní modem. Problémem je, že je dongle iniciálně nastavený jako flashdisk a je nutno jej přepnout do režimu modemu.

usb_modeswitch

Instalace

sudo apt-get install ppp usb-modeswitch wvdial

Kofigurace

V této části je potřeba správně nakonfigurovat pravidlo pro přepnutí na modem po restartu:

Do souboru rules:

/lib/udev/rules.d/40-usb_modeswitch.rules

najít a zaměnit odpovídající část následujícím obsahem:

ACTION=="add", SUBSYSTEM=="usb",

ATTRS{idVendor}=="19d2", ATTRS{idProduct}=="2000",

RUN+="/usr/sbin/usb_modeswitch -v 0x19d2 -p 0x2000 -V 0x19d2

-P 0x0117 -m 0x01 -M

55534243123456702000000080000c85010101180101010101000000000000"

kde pro každý model jsou specifické parametry -P -M, které vedou ke správnému přepnutí do modem módu.

Pak nakopírovat soubor 40-usb_modeswitch.rules do /etc/udev/rules.d:

sudo cp /lib/udev/rules.d / 40-usb_modeswitch.rules /etc/udev/rules.d/40-usb_modeswitch.rules



Příkazem lsusb lze zjistit v jakém módu se dongle nachází:

lsusb


Výstup:
Bus 001 Device 4: ID 19d2:2000 ZTE WCDMA Technologies... ... HSDPA/HSUPA - to je flashdisk

nebo

Bus 001 Device 005: ID 19d2:0117 ZTE WCDMA Technologies MSM - to je modem a takto je to správně


UMTSKeeper

Popia UMTSKeeper naleznete na http://mintakaconciencia.net/squares/umtskeeper/

Instalace


Instalace se provede následující sekvencí příkazů:

mkdir umtskeeper

cd umtskeeper

wget "http://mintakaconciencia.net/squares/umtskeeper/src/umtskeeper.tar.gz"

md5sum umtskeeper.tar.gz

tar -xzvf umtskeeper.tar.gz

chmod +x sakis3g umtskeeper resetusb

Konfigurace

Součástí UMTSKeeper je sakis3g, které je asi nejlépe nakonfigurovat v interktivním módu.

sudo ./sakis3g --interactive

Spustí se následující interaktivní mód pro nastavení





Následujícím příkazem umtskeeper lze provést napojení:

sudo ./umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='19d2:0117' SIM_PIN='xxxx' APN='CUSTOM_APN' CUSTOM_APN='internet.t-mobile.cz' APN_USER='0' APN_PASS='0'" --sakisswitches "--sudo --console" --devicename ' ZTE WCDMA Technologies MSM' --log --nat 'no'


- musíte samozřejmě správně doplnit pin místo xxxx a pokud nemáte jako operátora T-Mobile, pak také změnit CUSTOM_APN, TMobile nevyžaduje pro přístup na APN jméno a heslo, proto jsou uvedeny 0. Pokud je bude operátor vyžadovat, pak je potřeba patřičně nastavit také APN_USER a APN_PASS.


Automatické spuštění 

do /etc/rc.local přidat

/home/pi/umtskeeper/umtskeeper --sakisoperators "USBINTERFACE='0' OTHER='USBMODEM' USBMODEM='19d2:0117' SIM_PIN='xxxx' APN='CUSTOM_APN' CUSTOM_APN='internet.t-mobile.cz' APN_USER='0' APN_PASS='0'" --sakisswitches "--sudo --console" --devicename 'ZTE WCDMA Technologies MSM' --log --silent --nat 'no' &>> /var/log/umtskeeper_error.log

- opět platí, že je potřeba správně doplnit podle popisu výše, minimálně SIM_PIN.

No a tím by mělo být hotovo. Zařízení mi běží automatickém režimu 24x7, po rozpojení se připojení automaticky navazuje, spojení se spolehlivě naváže i po restartu nebo vypnutí a znovu zapnutí. Zatím testuji v kontinuálním provozu více než 9 měsíců a jeví se to jako nadprůměrně spolehlivé řešení.

Použité součásti:

Raspberry Pi Model A s instalovaným Raspbian Jessy Lite
Dongle ZTE model MF667



neděle 1. května 2016

Automatická kamera s Raspberry Pi

Nedávno jsem potřeboval zařídit dlouhodobé automatické snímkování ze statické kamery. Nejprve jsem hledal mezi komerčními produkty. Nejbližší k tomu jsem nalezl fotopasti, které dokáží periodicky snímkovat a mohou odesílat snímky prostřednictvím mobilního připojení. Jejich cena ale byla příliš vysoká. Tak jsem se probral tím, jaké zásoby mám doma a volba řešení padla na Raspberry Pi, která již delší dobu nečinně ležela v šuplíku. Dále jsem tam pak nalezl také usb dongle od T-Mobile, kterou mi kdysi vnutili jako součást internetového připojení. Obojí jsem teď využil. Jediné, co jsem musel koupit byla Raspberry Pi kamera. Náklady na celkové řešení se tak zmenšily na zlomek oproti komerčmín produktům.
Operační systém jsem použil minimalizovaný Raspbian Jessie Lite. Připojení Raspberry Pi na mobilní sít je posánu v příspěvku: Mobilní připojení Raspberry PI přes 3G. Pro snímání utilitu raspistill. V cron jsem nastavil automatický job pro vyfocení a odeslání emailem. Pro odeslání emailem včetně přílohy je vhodné využít utilitu sendEmail.

Zde je příklad jednoduchého skriptu, který pravidelně spouští cron v Raspberry Pi s periodou jedné minuty, skript v pracovní dny od 7 do 17 hodiny udělá každých 20 minut fotku, kterou pošle jako přílohu emailu.



#!/bin/bash
DATE=$(date +"%Y-%m-%d_%H%M")
FILE=pict_$DATE.jpg
DAYOFWEEK=$(date +%u)
HOURS=$(date +%H)
MINUTES=$(date +%M)
MINUTES=`echo $MINUTES|sed 's/^0//'`
MODULO=$((MINUTES%20))

if [ $HOURS -ge 7 ] && [ $HOURS -le 17 ] && [ $DAYOFWEEK -le 5 ] && [ $MODULO -eq 0 ]
then 
  raspistill -hf -vf -o /home/pi/$FILE
  sendEmail -f camera@digitalroom.eu -t info@digitalroom.eu -u $FILE -m $FILE -s smtp.digitalroom.eu -xu camera@digitalroom.eu -xp password -a /home/pi/$FILE
  rm /home/pi/$FILE
fi


Seznam součástí, které jsem použil:

Raspberry Pi Model A
Dongle ZTE MF667
Napájení s kabelem MicroUSB 80 cm
Kamera Raspberry Pi kamera modul V2
8 GB paměťová karta, do které jsem nainstaloval Raspbian Jessy Lite






Schéma řešení






Instalace WebShpere Application Server Liberty Profile na Raspberry PI

IBM WebSphere Application Server Liberty Profile je light verze Java IBM aplikačního serveru. Tato odlehčená verze má mnohem jednodušší konfiguraci pomocí xml souboru a je mnohem méně náročná na zdroje. To se projeví například rychlostí startu aplikačního serveru, který je řádově v sekundách. Vzhledem k malé náročnosti na zdroje je možné tuto edici WebSphere aplikačního serveru provozovat i na platformách s omezenými zdroji, jako je i Raspberry PI.

Instalační soubor WAS Liberty Profile je volně stažitelný na adrese https://developer.ibm.com/wasdev/getstarted/



Instalace a zprovoznění WAS Liberty Profile na Raspberry PI je jednoduchá a zde je popis jednotlivých kroků, jak je provádím při instalaci.


Instalační postup


  1. Stahněte zip soubor s poslední verzí WebShpere Liberty Profile (viz odkaz výše) wpl-javae77-8.5.5.9.zip
  2. zip soubor rozbalte do cílového adresáře např. /opt/ibm.
    unzip wpl-javae77-8.5.5.9.zip -d /opt/ibm
  3. Vytvořte instanci serveru: v adresáři /opt/ibm/wlp/bin spusťte příkaz server s parametrem create
    /opt/ibm/wlp/bin/server create myserver
  4. Spusťte server myserver - /opt/ibm/wlp/server start myserver
  5. Vyzkoušejte, zda server odpovídá na portu 9080: http://adresa_raspberry_pi:9080. Měla by se zobrazit úvodní stránka:




Tím je instalace hotova. Aplikace lze instalovat vložením war nebo ear souboru do adresáře serveru:
/opt/ibm/wlp/usr/servers/myserver/dropins.