LoginSignup
17
22

More than 3 years have passed since last update.

Raspberry Pi Zero (W) + USB セルラーモデムで SORACOM に接続する

Last updated at Posted at 2018-04-08

Raspberry Pi Zero (W) にセルラーネットワークを!

Raspberry Pi Zero (W 含む) ※でセルラーネットワークを使う例を見つけられなかったので試してみました

※以下、RPi Zero と表記します

ちなみに: 試してないのですが Raspberry Pi Zero (Wi-Fi や Bluetooth が無いモデル) でも動くはずですので、 → Raspberry Pi Zero でも動きました! (4/9)

  • (2019/12/27 追記) オンデマンド・リモートアクセスサービス SORACOM Napter について追記してあります

TL;DR

下記の組み合わせで動きました

Raspberry Pi OS USB セルラーモデム SIM
RPi Zero Raspbian Stretch Lite (March 2018) AK-020 日本向け SORACOM Air SIM
RPi Zero Raspbian Stretch Lite (March 2018) MS2131i-8 日本向け SORACOM Air SIM
RPi Zero Raspbian Stretch Lite (March 2018) MS2131i-8 グローバル向け SORACOM Air SIM
  • 実は「グローバル向け SIM」は、日本国内でも使うことができるんです

図は一番最初の組み合わせ (RPi Zero + AK-020) の接続の様子です。ちなみに GPIO に刺さっているのはシリアルコンソール用のケーブルです

IMG_0617.JPG

やり方

SORACOM のサイトに掲載されている Raspberry Pi + USB モデム で動かす の手順で動きます(あっさり)

TIPS

RPi Zero を利用する際には USB OTG によるネットワークアクセスの有効化GPIO によるシリアルコンソールの有効化 をしておくと非常に便利です

USB OTG によるネットワークアクセスの有効化

RPi Zero は USB OTG (On-The-Go) に対応しています
※なぜか 3 とかは対応していない...

細かい話は Windows10でRaspberry Pi Zero (W) をOTGを使ってセットアップする をご覧ください

bootパーティション/cmdline.txtを変更
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=a8fe70f4-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether quiet init=/usr/lib/raspi-config/init_resize.sh

modules-load=dwc2,g_ether が追加されている

bootパーティション/config.txtへ追記
# USB Gadget
dtoverlay=dwc2

GPIO によるシリアルコンソールを有効化

USB OTG を利用すると、USB ポートを占有してしまいます(あたりまえ)
この状態では USB セルラーモデムを使えませんが、逆にモデムを使おうとするとコンソールが使えなくなるという、渋い状況になってしまいます※

そのためシリアルコンソールを使えるようにしておくと便利です

bootパーティション/config.txtへ追記
# OnBoard Serial
dtoverlay=pi3-miniuart-bt

※若干お金はかかりますが SORACOM GatePublic Gate を使えば ssh 等のリモートアクセスは可能です

USB OTG と GPIO シリアルコンソールを有効にした config.txt の末尾は以下の通りになってるはずです

bootパーティション/config.txtの末尾
# USB Gadget
dtoverlay=dwc2
# OnBoard Serial
dtoverlay=pi3-miniuart-bt

setup_air.sh の実行について

手順では USB セルラーモデムを接続してから setup_air.sh を実行する となっていますが、実はどんな状態でも setup_air.sh は実行可能ですので、 USB OTG で接続した状態 (= USB セルラーモデムは接続していなくても) setup_air.sh を実行しても大丈夫です

ただし必要なソフトウェア (wvdial などの deb パッケージ) をダウンロードしますので PRi Zero からインターネットに接続できるようにはしておいてください

たとえば USB OTG で接続した状態でPCやMacのインターネット共有を利用すればインターネットに出られます

Raspberry Pi Zero W であれば wpa_supplicant.conf による Wi-Fi 接続も有効な方法です

消費電力について

ちょっと心配になったので 簡易電力計 で RPi Zero の消費電力を計ってみました

計測環境 (AK-020);

Raspberry Pi Zero W + Raspbian Stretch Lite (March 2018) + AK-020

操作 max avg
apt update 0.41 A 0.32 A
curl -o /dev/null ubuntu.iso 0.36 A 0.32 A

計測環境 (MS2131i-8);

Raspberry Pi Zero W + Raspbian Stretch Lite (March 2018) + MS2131i-8

操作 max avg
apt update 0.36 A 0.30 A
curl -o /dev/null ubuntu.iso 0.36 A 0.30 A
  • max や avg はそれぞれ、目視してた時の最大とそこそこの平均になります

AL-020 の方がちょっと高めでしょうか。通信側の負荷と共に OS やディスクに対するアクセスもありますので高めですね
とはいえ、このくらいなら連続運用や負荷が高くなっても大丈夫そうです
加えて setup_air.sh を使ってセットアップしたのならば、再起動時に接続してくれるようになるので、 crontab あたりに @reboot エントリーを書いておいて通知させるのもいいのではないでしょうか(ちょっと弱腰)

設置後のメンテは? / SORACOM Napter

Raspberry Pi Zero は USB ポートが1つしかありません。そのため、セルラーモデムをつなげてしまうと、OTG 経由でログインできないので、メンテナンスどうする?という課題が発生します。

が、2019年7月の新サービス「SORACOM Napter」を利用することで、セルラー通信している Raspberry Pi Zero に SSH 等でログインすることができるようになりました。

利用方法は SORACOM Napter を利用してIoTデバイスにSSHログインする をご覧ください。無料枠があります!

あとがき

Raspberry Pi Zero (無印) が家に転がっててよかった。

EoT

17
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
22