Ne vždy máme při ruce možnost připojení RPI k Internetu pomocí WiFi, LAN a platit si 3G modem v místě kde data tečou rychlostí GPRS (59,2 kbit/s) přes paušál (od 200,- více) se nevyplatí. Řešením je použít ovládání RPI pomocí SMS. Co budeme potřebovat? SMS kartu od některého z operátorů (já si právě pořídil od ČEZ: Platím, jak volám. Žádné závazky, žádný povinný měsíční poplatek ani minimální útrata. Částka za odeslanou SMS = 1,20 Kč.). Dále (3G) USB SIM modem například Huawei E303 a samozřejmě RPI. V programu si stanovíme správce systému (telefon toho kdo chce RPI ovládat). Pokud správce zašle na SIM kartu SMS s příkazem (například "zap") provede se příkaz v RPI a zašle se správci potvrzovací SMS o provedení příkazu. RPI reaguje pouze na definovaný povel a pouze tel. správce...
Zistíme zda je 3g modem vidět v RPI
Chceme-li získat více informací o připojených USB zařízeních použijeme příkaz " lsusb ". Otevřeme okno terminálu a zadáme:
lsusb
výstup by měl vypadat nějak takto:
Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 010: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard
Pokud ve výpisu u 3G modemu je nějaká zmínka o "modem" nebo "UMTS" zařízení máme vyhráno.
Pokud se nám ve výpisu zobrazuje: Bus 001 Device 010: ID 12d1: 14d1 Huawei Technologies, Ltd máme problém. 3G modem má malý oddíl, který obsahuje instalátor pro Windows. RPI zjistil tento oddíl a označil 3G modem jako úložné zařízení ještě před tím než měl šanci si všimnout 3G modemu. Pro odstranění tohoto problému nainstalujeme nástroj usb_modeswitch. Pro instalaci zadáme v okně terminálu:
sudo apt-get install usb-modeswitch
Dobře: Bus 001 Device 010: ID 12d1: 1506 Huawei Technologies Co, Ltd E398 LTE / UMTS / GSM Modem / Networkcard
Špatně: Bus 001 Device 010: ID 12d1: 14d1 Huawei Technologies, Ltd
Musíme říct operačnímu systému Vendor ID a ID zařízení. Více informací o identifikaci USB lze nalézt na debian wiki. První 4 znaky ID zařízení (prodejce ID) jsou stejné v obou případech, ale poslední 4 (ID zařízení) se změnily. USB-modeswitch nutí operační systém používat kombinaci, která odpovídá 3G modemu. Po instalaci USB-modeswitch je třeba provést úpravu v souboru / etc / usb_modeswitch.conf. ID našeho zařízení zjistíme ve výstupu "lsusb". Pokud máme výpis "viz řádek Špatně" musíme najít správné ID (druhá část) pro 3G modem. Jakmile jsme našli správné ID zařízení zkopírujeme ho a vložíme do textového editoru.
sudo nano /etc/usb_modeswitch.conf
a vložíme tyto řádky:
DefaultVendor = 0x12d1
DefaultProduct = 0x1506
MessageEndPoint = "0x01"
MessageContent = "55534243000000000000000000000011060000000000000000 000000000000"
Pro uložení stiskeme Ctrl + O a [enter] následované Ctrl-X.
Restartujeme RPI, spustíme "lsusb" a sledujeme výstup - pokud vidíme: Bus 001 Device 010: ID 12d1: 1506 Huawei Technologies Co, Ltd E398 LTE / UMTS / GSM Modem / Networkcard máme vyhráno...
SMS instalace programuI
Chceme-li ovládat RPI použijeme k tomuto účelu program "gammu". Otevřeme okno terminálu a zadáme:
výstup by měl vypadat nějak takto:
[ 7.578478] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[ 7.697942] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1
Nastavíme port modemu v gammu. Otevřeme okno terminálu a zadáme:
gammu-config
/dev/ttyUSB0
Provedeme kontrolu připojení modemu:
gammu --identify
Výsledek bude vypadat nějak takto:
Device : /dev/ttyUSB0
Manufacturer : Huawei
Model : unknown (E303)
Firmware : 21.158.13.00.864
IMEI : 863824010xxxxxxxxxx
SIM IMSI : 2300202xxxxxxxxxx
Máme vyhráno. Provedeme test odeslání SMS:
echo "halo, moje prvni SMS" | gammu --sendsms TEXT +420123456789
import os
sms = 'text moji sms'+'| gammu --sendsms TEXT '+'+420123456789'
cmd = '/bin/echo %s' % sms
print 'zpracovavam "%s"' % cmd
os.system(cmd)