Raspberry PiにSORACOMを認識させてみる | IoTニュース:IoT NEWS
こちらの記事を見て、USBドングルと絡めてSORACOM+RaspberryPiができそうなのでやってみます。
SORACOM Air(データ通信のみ)をRaspberry Piにつなげたメモです。
まず購入する
サイトに行き、
今すぐはじめようページに行き、購入します。
Amazon.co.jpで購入という項目があるのでこちらから行きます。(私はAir SIM(データ通信のみ)ナノを選びました。)
Amazon
ナノSIMとともに、3G USB ドングル・変換アダプタを買いました。
来ました。
変換アダプタ
地味に粘着剤が変換アダプタに残るので、
このままUSBドングルに差し込むと良からぬ影響が出そうなので拭いておきます。
SORACOM Air
APN・Username・Passwordはメモで残しておきましょう。
SORACOMの登録
アカウント作成に行きます。
アカウント登録をします。
確認メールが飛び認証を済ませるとこのような画面に入ります。
最初に右上にこんなアラートでてます。なのでクレジットカードの登録をしておきましょう。
クレジットカードの登録していないと、ノリノリでSIM登録をしようとして、まずカード設定してと弾かれます笑
SIM登録を押して
登録画面が出るので、SIMカードに記載されている
IMSIとPASSCODEを入力します。名前は自由につけましょう。
登録がすむと以下のように表示されます!
USBドングルにSIMを差し込む
まず、変換アダプタとUSBドングルをこのような形に用意。
変換アダプタにSIMを入れながらはめるのが、微妙に難易度が高いので以下のようにはめたら、うまくいきました。
いよいよRaspberryPiに接続して設定していく
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
コンソールから見ても、無事つながったようです。
使用中・オンライン。となっています!
地味に困ること:無線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を!