SORACOMといえば多くの方が知っているIoT用のSIMやネットワークサービスを提供しているサービスです。月300円から使えるSIMを提供しており、安価にIoTをはじめるのにぴったりなサービスと言えます。

IoTプロジェクトでは常に強固なネットワークがあるとは限りません。そうした時の代替ネットワークとして3G/LTEは良い選択肢になります。IoTでやり取りされるデータはごく小さいものが多いので、高速さは必要ではありません。SORACOM Air SIMはネットワーク速度を柔軟に返られるので、自分たちのサービスに合わせた最適な速度を設定できます。

今回はUSB型のデータ通信端末であるL-02CとRaspberry Pi、そしてIsaaxの組み合わせ方を紹介します。

L-02Cについて

L-02Cはドコモから販売されているUSB型のデータ通信端末です。中にSIMが入れられる仕組みになっており、APNSを設定することですぐに常時接続によるモバイルインターネットが利用できます。価格も中古であれば2,000円くらいと、格安なのが魅力です。3GPiのようなモジュールもありますが、3万円くらいと高価です。L-02Cはそれ比べると安価に利用できます。

なお、設定はWindowsやmacOSであればGUIでできますが、Raspberry Piの場合はそう簡単ではありません。ドライバーのインストールや設定が必要になります。なお、この記事を書くにあたって以下のブログを参考にさせてもらいました。

ライブラリのインストール

まずライブラリをインストールします。


$ sudo apt-get install wvdial eject usb-modeswitch

デバイスIDを確認する

L-02を差し込み、USBデバイスとして認識されていることを確認します。


$ sudo lsusb

Bus 001 Device 003: ID 1004:6109 LG Electronics, Inc.

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

1004:6109 というのが確認できるはずです。

ルールファイルを記述する

次にUSBドライブに関する設定を記述します。以下のような内容になります。USBデバイスとしては一度イジェクトし、再度マウントします。


$ sudo cat /etc/udev/rules.d/99-foma_l-02a.rules

# for FOMA L-02A

# USB Storage (Zero Installation)

KERNEL=="sr[0-9]*", ENV{ID_VENDOR_ID}=="1004", ENV{ID_MODEL_ID}=="610c", RUN+="/usr/bin/eject /dev/$kernel"

# USB Modem (ttyUSB)

SUBSYSTEM=="usb", ATTR{idVendor}=="1004", ATTR{idProduct}=="6109", RUN+="/sbin/modprobe usbserial vendor=0x$attr{idVendor} product=0x$attr{idProduct}"

この状態で再起動します。


$ sudo reboot

接続設定を書く

再起動するとUSBデバイスとして認識されているはずです。


$ ls /dev/ttyUSB* -la

crw-rw—T 1 root dialout 188, 0 Jan 1 1970 /dev/ttyUSB0

crw-rw—T 1 root dialout 188, 1 Jan 1 1970 /dev/ttyUSB1

crw-rw—T 1 root dialout 188, 2 Jan 1 1970 /dev/ttyUSB2

最後に3G接続の設定を記述します。内容は以下のようになります。


$ sudo cat /etc/wvdial.conf

[Dialer Defaults]

Init1 = ATH

Init2 = AT&F

Init3 = ATZ

Init4 = AT+CGDCONT=1,"IP","soracom.io"

Dial Attempts = 3

Stupid Mode = 1

Modem Type = Analog Modem

Dial Command = ATD

Stupid Mode = yes

Baud = 460800

New PPPD = yes

APN = soracom.io

Modem = /dev/ttyUSB0

ISDN = 0

Phone = *99***1#

Username = sora

Password = sora

Carrier Check = no

Check Def Route = 1

接続する

では接続してみましょう。


$ sudo wvdial &

--> WvDial: Internet dialer version 1.61

--> Cannot get information for serial port.

--> Initializing modem.

--> Sending: ATH

ATH

OK

--> Sending: AT&F

AT&F

OK

--> Sending: ATZ

ATZ

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 7200000

--> Carrier detected. Starting PPP immediately.

--> Starting pppd at Wed Jul 25 07:47:00 2018

--> Pid of pppd: 1606

--> Using interface ppp0

--> pppd: ????[08]Z?[01]?Y?[01]

--> pppd: ????[08]Z?[01]?Y?[01]

--> pppd: ????[08]Z?[01]?Y?[01]

--> pppd: ????[08]Z?[01]?Y?[01]

--> pppd: ????[08]Z?[01]?Y?[01]

--> pppd: ????[08]Z?[01]?Y?[01]

--> local IP address 10.129.100.232

--> pppd: ????[08]Z?[01]?Y?[01]

--> remote IP address 10.64.64.64

--> pppd: ????[08]Z?[01]?Y?[01]

--> primary DNS address 100.127.0.53

--> pppd: ????[08]Z?[01]?Y?[01]

--> secondary DNS address 100.127.1.53

--> pppd: ????[08]Z?[01]?Y?[01]

これでネットワークに繋がっているはずです。 ifconfig で確認できます。


$ ifconfig

ppp0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1500

inet 10.129.100.232 netmask 255.255.255.255 destination 10.64.64.64

ppp txqueuelen 3 (Point-to-Point Protocol)

RX packets 7 bytes 118 (118.0 B)

RX errors 0 dropped 0 overruns 0 frame 0

TX packets 8 bytes 157 (157.0 B)

TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

SORACOMの設定を行う

続いてSORACOMの管理画面でSIMを開通します。SIMをSORACOMで購入した場合にはこのステップは不要です。

SIM登録を開いてIMSIとパスコードを入力します。

速度によって料金が変わるので注意してください。IoT利用であればs1.slowで十分でしょう。

Isaaxとの接続を確認

最後にIsaaxとの接続を確認します。デバイスがオンラインになっていれば問題ありません。コードを修正してGitリポジトリにプッシュすれば、SORACOMを経由してデバイスに反映されているのが確認できるはずです。

 

まとめ

SORACOMを使うことでIoTにおけるネットワークが簡単に使えるようになります。さらにIsaaxを使うことで開発が効率化するでしょう。また、開発時のみならず、運用時においてもコードの反映やデバイスのステータス確認などでIsaaxが活躍するはずです。ぜひお試しください。


Leave a Reply

Your email address will not be published. Required fields are marked *