[103] Raspberry Pi を 3G 接続する - soracom/jp-training GitHub Wiki

[103] Raspberry Pi を 3G 接続する

ここでは、Raspberry Pi を SORACOM Air SIM と USB モデムを使用して、3G 接続します。

前提条件

以下を完了し、SORACOM アカウントの作成と、Raspberry Pi への SSH 接続が出来ていること

必要なもの

Raspberry Pi 以外に必要となるものは以下となります

  • SORACOM Air SIM
  • 3G USB モデム Abit AK-020

SIM のサイズを変換する

Air SIMを取り外します。Air SIMの端子を触らないように気をつけます。

SIM変換アダプタは、真ん中の nano サイズ → 標準サイズ変換を使います。

SIM カードを切り欠きにあわせてアダプタにはめると、このような形となります。

SIM を モデムに入れて Raspberry Pi に接続する

以下の要領で、SIM カードをモデムに入れ、Raspberry Pi に接続します。

Raspberry Pi で接続設定を行う

Raspberry Pi に SSH でログインして、以下のコマンドを実行し、3G 接続設定を行います。

コマンド

curl -O https://soracom-files.s3.amazonaws.com/setup_air.sh
sudo bash setup_air.sh

実行結果

pi@raspberrypi:~ $ curl -O https://soracom-files.s3.amazonaws.com/setup_air.sh

  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  4040  100  4040    0     0  17211      0 --:--:-- --:--:-- --:--:-- 17264
pi@raspberrypi:~ $ sudo bash setup_air.sh
--- 1. Check required packages
wvdial is not installed! installing wvdial...
  :
  :
ok.

--- 2. Generate config files
Adding network interface 'wwan0'.
Adding udev rules for modem detection.
ok.

--- 3. Connect
Found un-initilized modem. Trying to initialize it ...
Now you are all set.

Tips:
 - When you plug your usb-modem, it will automatically connect.
 - If you want to disconnect manually or connect again, you can use 'sudo ifdown wwan0' / 'sudo ifup wwan0' commands.
 - Or you can just execute 'sudo wvdial'.

これで、自動的に 3G モデムが初期化され、Raspberry Pi が SORACOM 経由でインターネットに接続します。 また、再起動時やモデムを接続した際にも、自動的に接続されるようになっています。

接続確認する

接続が出来ている時は、ppp0インターフェースが存在しているはずなので、以下のコマンドで接続状況を確認出来ます。

コマンド

ifconfig ppp0

実行結果

pi@raspberrypi:~ $ ifconfig ppp0
ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.xxx.xxx.xxx  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:133 errors:0 dropped:0 overruns:0 frame:0
          TX packets:134 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:2092 (2.0 KiB)  TX bytes:4039 (3.9 KiB)

"inet addr" の後ろに表示されているのが、デバイスに割り当てられた IP アドレスとなります。

次に、インターネットへの疎通が出来るかどうかを確認しましょう。

Google Public DNS (8.8.8.8) への到達性を ping コマンドで調べます。
また、ifconfig.io というサイトにアクセスして、インターネットへ接続する際の IP アドレスを調べます。

コマンド

ping 8.8.8.8
(Ctrl+C で止める)
curl ifconfig.io
host $(curl -s ifconfig.io)

実行結果

pi@raspberrypi:~ $ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=55 time=343 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=55 time=342 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=55 time=361 ms
64 bytes from 8.8.8.8: icmp_seq=4 ttl=55 time=340 ms
^C
--- 8.8.8.8 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3002ms
rtt min/avg/max/mdev = 340.908/347.329/361.814/8.434 ms
pi@raspberrypi:~ $ curl ifconfig.io
xxx.xxx.xxx.xxx
pi@raspberrypi:~ $ host $(curl -s ifconfig.io)
xxx.xxx.xxx.xxx.in-addr.arpa domain name pointer xxx-xxx-xxx-xxx.soracom.io.

インターネットに接続する際の IP アドレスが SORACOM ドメインになっていることが確認できました。

まとめ

これで Raspberry Pi が SORACOM Air SIM を使ってインターネットへ接続出来たことを確認できました。

以上で、本章は完了となります。