USBドングルと絡めてSORACOM Air(データ通信のみ)をRaspberry Piにつなげたメモ

Raspberry PiにSORACOMを認識させてみる | IoTニュース:IoT NEWS

こちらの記事を見て、USBドングルと絡めてSORACOM+RaspberryPiができそうなのでやってみます。

SORACOM Air(データ通信のみ)をRaspberry Piにつなげたメモです。

まず購入する

サイトに行き、

soracom-air-raspberry-pi-firststep_1

今すぐはじめようページに行き、購入します。

soracom-air-raspberry-pi-firststep_2

Amazon.co.jpで購入という項目があるのでこちらから行きます。(私はAir SIM(データ通信のみ)ナノを選びました。)

soracom-air-raspberry-pi-firststep_3

Amazon

ナノSIMとともに、3G USB ドングル・変換アダプタを買いました。

soracom-air-raspberry-pi-firststep_4

来ました。

soracom-air-raspberry-pi-firststep_5

変換アダプタ

soracom-air-raspberry-pi-firststep_6

地味に粘着剤が変換アダプタに残るので、

soracom-air-raspberry-pi-firststep_7

このままUSBドングルに差し込むと良からぬ影響が出そうなので拭いておきます。

SORACOM Air

soracom-air-raspberry-pi-firststep_8

APN・Username・Passwordはメモで残しておきましょう。

soracom-air-raspberry-pi-firststep_9

SORACOMの登録

アカウント作成に行きます。

soracom-air-raspberry-pi-firststep_10

アカウント登録をします。

soracom-air-raspberry-pi-firststep_11

確認メールが飛び認証を済ませるとこのような画面に入ります。

soracom-air-raspberry-pi-firststep_12

最初に右上にこんなアラートでてます。なのでクレジットカードの登録をしておきましょう。

soracom-air-raspberry-pi-firststep_13

クレジットカードの登録していないと、ノリノリでSIM登録をしようとして、まずカード設定してと弾かれます笑

soracom-air-raspberry-pi-firststep_14

SIM登録を押して

soracom-air-raspberry-pi-firststep_15

登録画面が出るので、SIMカードに記載されている

soracom-air-raspberry-pi-firststep_16

IMSIとPASSCODEを入力します。名前は自由につけましょう。

soracom-air-raspberry-pi-firststep_17

登録がすむと以下のように表示されます!

soracom-air-raspberry-pi-firststep_18

USBドングルにSIMを差し込む

まず、変換アダプタとUSBドングルをこのような形に用意。

soracom-air-raspberry-pi-firststep_19

変換アダプタにSIMを入れながらはめるのが、微妙に難易度が高いので以下のようにはめたら、うまくいきました。

soracom-air-raspberry-pi-firststep_20

いよいよRaspberryPiに接続して設定していく

soracom-air-raspberry-pi-firststep_21

soracom-air-raspberry-pi-firststep_22

USB認識チェック

まず、lsusbチェック。

pi@raspi-main ~ $ lsusb
Bus 001 Device 005: ID 1c9e:98ff OMEGA TECHNOLOGY 

こちらもusb-modeswitchインストール。

sudo apt-get install usb-modeswitch

ここにきてドハマリ。

IoT – もうちょっと楽にRaspberry PiでSORACOM Airを使う(FS01BU USBモデムを用いて) – Qiita

「ID 1c9e:98ffの場合うまく行かないようだ」のところにあるように、なんだかモロに98ffぽい。

一旦、アップグレード

なので、

sudo apt-get upgrade

する。

その後、一度USBドングルを抜き差ししてからlsusbすると

pi@raspi-main ~ $ lsusb
Bus 001 Device 007: ID 1c9e:6801 OMEGA TECHNOLOGY 

おお。6801になった!

wvdialインストール

sudo apt-get install wvdial

wvdialはこのようなアラート出るけど気にしなくて大丈夫。

Sorry.  You can retry the autodetection at any time by running "wvdialconf".
   (Or you can create /etc/wvdial.conf yourself.)

挿してあるUSBドングルをデバイス認識させる

いよいよ設定します。

sudo modprobe usbserial vendor=0x1c9e product=0x6801

以下を実行します。

ls -l /dev/ttyU*
ls -l /dev/ttyU*
crw-rw---T 1 root dialout 188, 0 11\u6708  8 23:35 /dev/ttyUSB0
crw-rw---T 1 root dialout 188, 1 11\u6708  8 23:35 /dev/ttyUSB1
crw-rw---T 1 root dialout 188, 2 11\u6708  8 23:51 /dev/ttyUSB2

認識されたようです!!

余談:以下のようなエラーが出るときは

sudo modprobe usbserial vendor=0x1c9e product=0x6801

のときに、以下のようなエラーが出たら、おそらく98ffの状態で設定を試みてバグってるので、一旦RaspberryPiごと再起動してみましょう。

libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file '/lib/modules/3.18.7-v7+/modules.dep.bin'

私は、98ffの状態で設定を試みた→うまくいかない→先ほどの記事を見つけた→update→もう一度6801でmodprobe usbserialでやってしくじりました。

/etc/wvdial.confにSORACOMを設定

sudo leafpad /etc/wvdial.conf

で、以下のように入れてあげます。

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","soracom.io"
Dial Attempts = 3
Modem Type = Analog Modem
Dial Command = ATD
Stupid Mode = yes
Baud = 460800
New PPPD = yes
Modem = /dev/ttyUSB2
ISDN = 0
APN = soracom.io
Phone = *99***1#
Username = ※カードに書いてあったUsername 
Password = ※カードに書いてあったPassword 
Carrier Check = no
Auto DNS = 1
Check Def Route = 1

いよいよ実行します

sudo wvdial

コンソールから見ても、無事つながったようです。

soracom-air-raspberry-pi-firststep_23

使用中・オンライン。となっています!

soracom-air-raspberry-pi-firststep_24

地味に困ること:無線LAN固定IPでVNCしてると接続成立時にVNCが切れる?

私は以下の方法でやっているためなのか、今回は無線LAN固定IPでVNCでしていました。

Raspberry Piで複数Wifiで個別の固定IPを指定する方法 | 1ft-seabass.jp.MEMO

どうも接続された瞬間に無線LANが効かなくてVNCが切断されるっぽい?

以後、ホスト名指定接続を試みてもIP指定接続を試みてもダメ。

この辺りは要検証。

有線LANでVNCしたら通信成立したら大丈夫

有線LANでVNCしたら通信成立したら大丈夫だった。以下のようにログが出た。

--> WvDial: Internet dialer version 1.61
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
OK
--> Sending: AT+CGDCONT=1,"IP","soracom.io"
AT+CGDCONT=1,"IP","soracom.io"
OK
--> Modem initialized.
--> Sending: ATD*99***1#
--> Waiting for carrier.
ATD*99***1#
CONNECT 14400000
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Sun Nov  8 23:35:55 2015
--> Pid of pppd: 2702
--> Using interface ppp0
--> pppd: [18]\ufffd[06]
--> pppd: [18]\ufffd[06]
--> pppd: [18]\ufffd[06]
--> pppd: [18]\ufffd[06]
--> pppd: [18]\ufffd[06]
--> pppd: [18]\ufffd[06]
--> local  IP address XXX.XXX.XXX.XXX
--> pppd: [18]\ufffd[06]
--> remote IP address XXX.XXX.XXX.XXX
--> pppd: [18]\ufffd[06]
--> primary   DNS address XXX.XXX.XXX.XXX
--> pppd: [18]\ufffd[06]

ちなみに無線LANで接続成立するときはVNCで以下のところが出てこない。ここでVNC通信がローカル環境でなく外に向くと思われ事切れる模様(Raspberry Pi自体は生きている)

--> local  IP address XXX.XXX.XXX.XXX
--> pppd: [18]\ufffd[06]
--> remote IP address XXX.XXX.XXX.XXX
--> pppd: [18]\ufffd[06]
--> primary   DNS address XXX.XXX.XXX.XXX
--> pppd: [18]\ufffd[06]

RaspberryPiを毎度起動時に必ずやること

毎度再起動すると通信は途切れてしまうので、RaspberryPiを毎度起動時に必ずやることは以下の2コマンドです。

USBにドングルを認識させ、

sudo modprobe usbserial vendor=0x1c9e product=0x6801

接続します。

sudo wvdial

いずれ自動化したい。

ということで長くなりましたがSORACOM Air(データ通信のみ)をRaspberry Piにつなげたメモでした。

それではよき SORACOM + Raspberry Pi Lifeを!