3GPi(メカトラックス社)を使用してネットワークにつないでみました。3GPiは、メカトラックス社が開発したRaspberry Pi専用の3G通信モジュールで、今回はRaspberry Pi 3上で動作させました。また、SIMカードには、IoT向きの従量課金のSORACOM Airを利用しました。

ここで設定したメカトラックス3GPiで、Microsoft Azure IoThubに接続してみました。Microsoft Azureの登録から、Azure IoThub接続ソフトの作り方までをまとめて、Qiita「3GPIを 用いたAzure IoT Hub への環境データの送信」に投稿しました。よろしければ見てください。

3GPiとRaspberry Pi 3の接続

3GPiとRaspberry Pi 3の接続は、40ピンのピンヘッダで接続され、3GPiからも同様のピンが出ており、3GPi上にスタックすることができます。また、電源は12VのACアダプタが同梱されており、このACアダプタからRaspberry Piの本体にも電源が供給されます。次に、3GPiをスタックしたRaspberry Pi 3を示します。右側には、ナノSIMタイプのSORACOM Airと3GPiに挿入するためのSIM変換アダプターを示します。

3GPiをスタックしたRaspberry Pi 3とSORACOM Air

Raspberry Pi 3に3GPiを接続して、同梱されている接続設定済Raspbian入microSDカードを、Raspberry Pi 3のSDカードスロットに挿入して電源を投入すると、Raspbianが起動し、ログインのプロンプトが表示され、ここでユーザIDとパスワードを設定して、Raspberry Piのログインが完了します。

SORACOMの登録

SORACOMのSIMカードはAmazonから購入しました。このSIMカードはそのまま3GPiに設定しても通信を開始しません。SORACOM のユーザーコンソールを利用して、管理対象の Air SIM を登録する必要があります。
まず、SORACOM アカウントを作成し、SORACOM アカウントにログインからログインすます。次に、メイン画面上部のユーザー名から[お支払い方法設定]を開き 、料金を支払うクレジットカードを登録します。次に、SIM登録ボタンを押して、Air SIM の台紙の裏面に貼ってある IMSI と PASSCODE を入力します。各情報を設定すると、次のような画面が表示され、SORACOM Airが利用できる環境が整います。

状態が「準備完了」となっているので、画面トップに表示された「操作」ボタンを押して「使用開始」を選択します。状態が「使用中」になり、データ通信できる状態になります。

SORACOMへの登録

画面トップに表示された「操作」ボタンを押して「休止」を選択すると、状態が「休止中」になり、データ通信できなくなります。nmcliコマンドあるいはifconfigコマンドの表示には、ppp接続が表示されません。この状態では、通信料金は基本料金のみになります。

Network Managerコマンドを用いた3GPiからSORACOM Airへの接続

次のようにNetwork Managerコマンド「nmcli 」で3GPiからSORACOM Airへ接続します。

$ sudo nmcli con add type gsm ifname “*” con-name soracom3g apn soracom.io user sora password sora

nmcliコマンドを用いると、次のように接続を確認できます。3GPiでppp接続されていることが確認できます。

$ nmcli c
NAME              UUID                                  TYPE     DEVICE
gsm-3gpi-iij      38298e50-ec1f-4ebf-81cf-dd1d35e3acf0  gsm      --
gsm-3gpi-soracom  9c14b0aa-0cb8-4b08-8c02-08c73b95cabd  gsm      ttyUSB3
soracom3g         6a3d9e17-e66e-427e-9050-752d3b54283c  gsm      --
ppp0              ca1bd9d6-87b7-44ad-9672-6b0869f532d3  generic  ppp0
soracom3g         7498c543-444b-451d-b66d-d636311476f3  gsm      --

「DEVICE」に「ttyUSB3」が表示されない場合は、3GPiとRaspberry PiがUSBケーブルで接続されているか、SIMソケットにSIMカードが挿入されていいるかを確認してください。
「DEVICE」に「ppp0」が表示されない場合は、SORACOMへの登録が正常に行われているかを確認してください。

次のifconfigコマンドでppp0にIPアドレスが割り当てられているかを確認します。inet addrにIPアドレスが割り当てられていることが確認できます。

$ ifconfig
eth0      Link encap:Ethernet  HWaddr b8:27:eb:84:4a:ba
          inet addr:192.168.0.50  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::ba27:ebff:fe84:4aba/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:163 errors:0 dropped:0 overruns:0 frame:0
          TX packets:190 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:16946 (16.5 KiB)  TX bytes:21569 (21.0 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:10.180.248.128  P-t-P:10.64.64.64  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:7 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:130 (130.0 B)  TX bytes:321 (321.0 B)

wlan0     Link encap:Ethernet  HWaddr b8:27:eb:d1:1f:ef
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:56 errors:0 dropped:56 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:23548 (22.9 KiB)  TX bytes:0 (0.0 B)

パソコンからSSHでログインしてソフトウェア開発がしやすいように、パソコンとeth0で接続しています。3GPiでの接続時には、LANケーブルを外して動作を確認する必要があります。

pingコマンドによりppp接続が正常に行われているかを確認します。

$ ping 10.180.248.128
PING 10.180.248.128 (10.180.248.128) 56(84) bytes of data.
64 bytes from 10.180.248.128: icmp_seq=1 ttl=64 time=0.135 ms
64 bytes from 10.180.248.128: icmp_seq=2 ttl=64 time=0.101 ms
64 bytes from 10.180.248.128: icmp_seq=3 ttl=64 time=0.048 ms
64 bytes from 10.180.248.128: icmp_seq=4 ttl=64 time=0.053 ms
64 bytes from 10.180.248.128: icmp_seq=5 ttl=64 time=0.066 ms
64 bytes from 10.180.248.128: icmp_seq=6 ttl=64 time=0.045 ms
64 bytes from 10.180.248.128: icmp_seq=7 ttl=64 time=0.049 ms
64 bytes from 10.180.248.128: icmp_seq=8 ttl=64 time=0.042 ms
64 bytes from 10.180.248.128: icmp_seq=9 ttl=64 time=0.037 ms
64 bytes from 10.180.248.128: icmp_seq=10 ttl=64 time=0.053 ms
^Z
[1]+  Stopped                 ping 10.180.248.128

SORACOM のユーザーコンソールのセッション状態が、次のように「オフライン」から「オンライン」になります。
SORACOM のユーザーコンソール