1.概要
本記事では、シングルボードコンピュータであるRaspberry PiをIoTデバイスとして利⽤する際、弊社が提供するIoT Connect Mobile Type Sというモバイル回線サービスのSIMを使⽤してLTE回線を利⽤する⽅法を解説します。
1-1.所要時間
約20分
1-2.所要費用
約25,500円(デバイス購⼊の初期費⽤)
1-3.準備する物
ハードウェア
品名 | 数量 | 価格 | 説明 |
---|---|---|---|
Raspberry Pi (3以降のModel B) | 1 | 約 10,000円 | 今回はRaspberry Pi 4 Model Bを使⽤ |
microSDカード | 1 | 約 1,000円 | 16GB以上のものを推奨 |
microSDカードリーダー | 1 | 約 500円 | ― |
Raspberry Pi ⽤電源アダプター | 1 | 約 1,000円 | 5V 2A以上のものを推奨 |
PC | 1 | ― | Windows PC もしくは Macを推奨 |
UX302NC-R | 1 | 約13,000円 | ― |
IoT Connect Mobile Type SのSIM | 1 | ― | こちらから申込。nano SIMの場合はmicro SIMへの変換アダプタが必要 |
- ⾦額はレシピ作成の参考価格となります。

利⽤するデバイス/ソフトウェアについて
ハードウェア
UX302NC-R
UX302NC-RはデバイスにLTE接続機能を追加するためのUSBモデムで、SIMカードを挿⼊して使⽤します。USB経由で給電するため、バッテリーを必要とせず、折りたたみ可能でコンパクトな形状が特徴です。本記事では、Raspberry PiをIoT Connect Mobile Type Sに接続するために使⽤します。
IoT Connect Mobile Type SのSIM
IoT Connect Mobile Type SはIoT向けのモバイルデータ通信サービスです。今回はIoTデバイスからIoT Connect Gatewayまでの通信に利⽤します。サービスの契約がお済みでない場合は、こちらからお申し込みいただけます。
ソフトウェア
wvdial
wvdialは、LinuxベースのOSでダイアルアップ接続を管理するためのツールです。このツールは、PPP(Point to Point Protocol)接続を⾃動的に確⽴するスクリプトを提供します。SIMでモバイルネットワークに接続するときには、主にダイヤルアップ接続が⽤いられます。
IoT Connect Gateway
IoTデバイスで収集したデータをさまざまなクラウドサービスに簡単かつ安全に接続するためのソリューションです。クラウドサービスに安全にデータを送信するためには、⼀般的に暗号化処理やそれに伴うセキュリティチップ更新、接続先設定などが必要になるため、IoTデバイスの消費電⼒や通信量、運⽤コストが増⼤する原因になります。IoT Connect GatewayはIoTデバイスに代わって暗号化処理を⾏います。また、標準で提供されるGUIやAPIを⽤いて簡単に接続先を設定することが可能となり、消費電⼒や通信量の削減と多数のIoTデバイスの効率的な運⽤管理を実現します。
本記事では、IoT Connect Gatewayへデータ送信を⾏うための設定を⾏います。

2.作業の流れ
2-1.ハードウェア構築⼿順
Raspberry Pi本体のセットアップ
Raspberry PiへのOSインストールがお済みでない⽅は、以下のレシピを参考に、Raspberry Pi のセットアップを⾏ってください。
なお、Raspberry PiへのSSH接続を⾏う⼿順まで完了すれば、本レシピの⼿順を実施できますので、上記のレシピに掲載されているNode-REDの導⼊に関する⼿順は未実施でも問題ありません。
既にセットアップ済みのRaspberry Piがある場合は、そちらを利⽤することも可能です。その場合は、UX302NC-RへのSIM挿⼊とRaspberry Piへの接続に進んでください。
UX302NC-RへのSIM挿⼊とRaspberry Piへの接続
UX302NC-RにSIMを挿⼊するために画像⾚丸の部分に指などを引っ掛けて、本体カバーを外します。


SIMのIC部分が下向きの状態で挿⼊し、カチッと⾳が鳴るまで押し込みます。
nano SIMを利⽤する場合は、micro SIMへの変換アダプタを利⽤して挿⼊してください。


Raspberry PiのUSBポートにUX302NC-Rを接続します。

2-2. 各種設定
UX302NC-Rのモデム認識設定
Raspberry PiのUSBポートにUX302NC-Rを接続すると、ストレージとして認識されてしまうため、そのままではUSBモデムとして使⽤できません。 そこで、ストレージとして認識されたUX302NC-Rを内部的に⼀度取り外した後、USBモデムとして認識させる処理が必要になります。
具体的な⼿順は以下の通りです。
- ベンダーIDとプロダクトIDの確認
- モデム認識設定
- モデム認識確認
OSの最新化
まず、Raspberry Piが起動していることを確認します。Raspberry Piが起動していない場合は、起動してください。その後、起動しているRasbberry Piではなく、ご⾃⾝のPCでターミナルやコマンドプロンプトを開きます。開けたら、以下のコマンドを実⾏してSSH接続を⾏ってください。これを⾏うことで、Raspberry Piに対してご⾃⾝のPCからリモート操作を⾏うことができます。本記事では、Raspberry Piに対して常にPC側からリモート操作を⾏うことでセットアップを⾏います。
- user は、Raspberry Piのセットアップ時に設定した設定したユーザ名を⼊⼒します。
- things-raspiは、Raspberry Piのセットアップ時に設定したホスト名です。ユーザ名と併せて、ご⾃⾝の設定に沿って⼊⼒してください。
ssh user@things-raspi.local
- Are you sure you want to continue connecting (yes/no)? と表⽰されたら yes と⼊⼒します。
- パスワードはRaspberry Piのセットアップ時に設定したものを⽤います。
- SSHでログインするには、Raspberry PiとPCが同じネットワーク(Wi-Fi)に接続されている必要があります。異なるネットワークに接続されている場合は、同じネットワークに接続しなおしてください。
念のためRaspberry PiのOSアップデートを実⾏します。以下のコマンドを1⾏ずつ実⾏してください。(最後にRaspberry Piが再起動されます。) 1⾏⽬のコマンドは、Raspberry Piのソフトウェアなどを⾃動で最新のものに更新するためのコマンドです。2⾏⽬のコマンドは、Raspberry Piを再起動するためのコマンドです。
sudo apt update && sudo apt upgrade -y
sudo reboot
ベンダーIDとプロダクトIDの確認
ベンダーIDとプロダクトIDを確認します。Raspberry PiにSSHで接続し、以下のコマンドを実⾏します。
lsusb

lsusbコマンドは、接続されているUSBデバイスの情報を表⽰するコマンドです。左側からバス番号、デバイス番号、ベンダーID、プロダクトID、デバイス名が表⽰されます。これらの情報により、USBデバイスを識別することができます。デフォルトでは、UX302NC-RのベンダーIDは11f6
、プロダクトIDは1035
になっています。
モデム認識設定
UX302NC-Rの接続を検知するとUSBモデムとして認識するように切り替え、デバイス名を固定するための設定をします。以下のコマンドを実⾏し、usb_modeswitchをインストールしてください。usb_modeswitchは、デフォルトではストレージとして認識しているUSBモデムを本来の役割であるモデムとして認識するように⾃動で切り替えるためのツールです。
sudo apt install usb-modeswitch
先ほど調べたベンダーIDやプロダクトIDを指定して UX302NC-Rをモデムとして認識しなおすための設定が⼊ったファイルを作成します。以下のコマンドを実⾏してください。成功すると以下の画⾯になります。nanoとは、Raspbianに標準でインストールされているエディタのことを指します。作成したいファイル名を指定し、内容を編集するためのコマンドになります。
sudo nano /etc/udev/rules.d/99-ux302nc.rules

以下の⽂字列を⼊⼒した後、ctrl + s
で保存し、ctrl + x
で終了します。これはデバイスをモデムとして認識させるための設定が記載されています。以下の⽂字列のうち、\
を含む⾏は、1⾏にまとめて⼊⼒してください。\
とその直前の改⾏を削除し、半⾓スペースを⼊れて繋げるようにしてください。全部で3⾏になります。以下の画像も参考にしてください。
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="11f6",
\ATTRS{idProduct}=="1035", RUN+="/usr/sbin/usb_modeswitch
\-v 11f6 -p 1035 -M
\'55534243123456780000000080000606f50402527000000000000000000000'"
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="11f6",
\ATTRS{idProduct}=="1034", RUN+="/bin/bash -c
\'modprobe option && echo 11f6 1034
\> /sys/bus/usb-serial/drivers/option1/new_id'"
KERNEL=="ttyUSB*", ATTRS{../idVendor}=="11f6",
\ATTRS{../idProduct}=="1034", ATTRS{bNumEndpoints}=="03",
\ATTRS{bInterfaceNumber}=="01", SYMLINK+="ux302nc",
\ENV{SYSTEMD_WANTS}="ux302nc.service"

以下のコマンドを実⾏して、Raspberry Piを再起動します。
sudo reboot
モデム認識確認
Raspberry Piに再度SSH接続しなおします。その後、以下のコマンドを実⾏し、ttyUSB0~ttyUSB3が作成されていることを確認してください。以下のような実⾏結果になれば成功です。
ls -l /dev/ttyUSB*

デバイスが表⽰されない場合は、接続を確認し、再度⼿順を⾒直してください。
2-3. wvdialの導⼊
wvdialのインストール
先ほどの⼿順でUSBモデムとして認識されたSIMでモバイルネットワークに接続するために、Raspberry Piにwvdialをインストールします。Raspberry Piに再度SSHで接続し、以下のコマンドを実⾏してください。
sudo apt install wvdial
Do you want to continue?
と聞かれたら、Y
を⼊⼒し、Enter
キーを押してください
wvdialの接続情報とモデムの設定
モバイルデータ通信を⾏うために必要な接続情報やモデムの設定を⾏います。以下のコマンドを実⾏してください。
sudo nano /etc/wvdial.conf
既に書き込まれている⽂字列を全て削除し、以下の⽂字列を⼊⼒した後、ctrl + s
で保存し、ctrl + x
で終了します。APN、Username、PasswordにはIoT Connect Gatewayに向けた通信を⾏うための設定を⼊れ、その他の設定箇所では使⽤するモデム、通信速度、接続⽅法、DNSなどの設定をしています。
[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","mobiledata.ntt.com"
Modem Type = Analog Modem
Baud = 9600
Modem = /dev/ux302nc
Phone = *99***1#
APN = mobiledata.ntt.com
Username = mobile@icms-p.ntt.com
Password = protconv
Dial Attempts = 3
Dial Command = ATD
New PPPD = yes
Stupid Mode = yes
Carrier Check = no
Auto DNS = yes
Check DNS = yes
Check Def Route = yes

wvdialの接続確認
wvdialでモバイルネットワークに接続できることを確認します。以下のコマンドを実⾏してください。
sudo wvdial &

CONNECT
と表⽰されれば、接続完了です。
CONNECT
が表⽰されない場合は、wvdial.conf
で設定したAPNやUsername、Passwordに正しい値が設定されているかを確認してください。 IoT Connect Gatewayの端末設定情報は
こちらに記載されています。
以下のコマンドを実⾏し、pppX
インターフェースが追加されていることを確認します。pppX
はPoint-to-Point-Protocolのインターフェースです。pppX
の表⽰があれば、wvdialでモバイルネットワークに接続していることがわかります。
ifconfig -a

wvdialの⾃動起動設定
UX302NC-R接続時に、wvdialを⾃動起動するための設定を⾏います。これにより、毎回起動時に⾃動的にpppXインターフェースが追加されるようになります。Raspberry PiにSSHで接続し、以下のコマンドを実⾏してください。
sudo nano /etc/systemd/system/ux302nc.service
以下の⽂字列を⼊⼒した後、ctrl + s
で保存し、ctrl + x
で終了します。
[Unit]
Description = UX302NC Service
Requires = dev-ux302nc.device
After = dev-ux302nc.device
[Service]
Type = simple
Restart = always
ExecStart = /usr/bin/wvdial

以下のコマンドを実⾏し、Raspberry Piを再起動します。
sudo reboot
UX302NC-R接続時に、wvdialが⾃動起動することを確認します。Raspberry PiにSSHで接続し、以下のコマンドを再度実⾏します。
ifconfig -a
前の⼿順と同様にpppX
インターフェースが追加されていれば成功です。
2-4. ルーティングテーブルの設定
まだこのままではpppX
インターフェース経由での通信ではなく、wifi経由での通信を優先して⾏っている可能性があります。そこでUSBモデムでデータ通信するための経路情報を設定します。
デフォルトルートの⾃動追加設定
wvdialが接続を確⽴した際に、wvdialが使⽤しているpppX
インターフェースを⾃動でデフォルトルートとして追加するための設定をします。 Raspberry Piに再度SSHで接続し、以下のコマンドを実⾏してください。
sudo nano /etc/ppp/peers/wvdial
wvdialの設定ファイルに、pppXインターフェースがデフォルトの通信経路として⾃動的に設定されるように設定します。以下の⽂字列を⼊⼒した後、ctrl + s
で保存し、ctrl + x
で終了します。
既に別の⽂字列が存在する場合には、以下の⽂字列をファイルの末尾に追加する形で記述してください。
replacedefaultroute

以下のコマンドを実⾏し、Raspberry Piを再起動します。
sudo reboot
ルーティングテーブルと接続先ネットワーク情報の確認
wvdial起動時に、pppX
がデフォルトルートとして追加されることを確認します。Raspberry PiにSSHで接続し、以下のコマンドを実⾏します。画像のように、default dev ppp0 scope link
と表⽰されていれば成功です。
ip route show

最後にRaspberry PiがNTT Comのネットワークに接続されていることを確認します。以下のコマンドを実⾏し、whois
をインストールします。whois
はIPアドレスの登録情報を取得し、管理しているインターネットサービスプロバイダや組織の情報を表⽰するコマンドです。
sudo apt install whois
以下のコマンドを実⾏し、NTT COMMUNICATIONS CORPORATION
と表⽰があることを確認します。
whois `curl inet-ip.info`
実⾏結果は全く同じでなくても、NTT COMMUNICATIONS CORPORATION
を表す⽂字列が確認できれば問題ありません。

これでLTEの設定は完了です。