Raspberry Pi (以下、ラズベリーパイ)にそのままSIMカードが挿せたらな、と考えたことはありませんか?
市販されているラズベリーパイでは、4G(LTE)モジュールを拡張HATで実現したり、USB接続型の通信モデムで実現が可能です。
一方で、産業用途に特化したラズベリーパイなら、SIMカードがそのまま挿せる製品があるのはご存じでしょうか。
堅牢な筐体に収められた産業用ラズベリーパイなら、工場などの過酷な環境に適応することができます。できればSIMカードも4G(LTE)モジュールもその中に収めたいですよね。
PiLinkが扱っている製品には、4G(LTE)通信に対応したモデルがあるということで、早速お借りして試してみました。
産業用ラズベリーパイでモバイル通信
この記事は、次のようなお困りがある方にオススメです。
- 産業用途でラズベリーパイを使いたいけど、4G(LTE)モジュールは別々に用意しないとならないの?
- 離れた場所からデータ送信をしたいけどネットワーク環境がなく困っている
- 格安SIMでランニングコストを抑えたいけどSIMは指定されているの?
- 炎天下の屋外に設置したいけどそもそもラズベリーパイは耐えられないでしょう?
タブレットのようなセルラーモデルではありませんが、すべて1つの筐体に収めて運用できる製品が存在します。
過酷な設置環境にも耐えうる堅牢な筐体のため、通信モジュールもSIMカードもより安全に運用できますね。
今回の環境
4G(LTE)通信をテストするにあたり、次のでデバイスやOSバージョン、環境で実施しました。
- 産業用ラズベリーパイ「PL-R4」
- 通信モジュール+通信アンテナを筐体へ組み込み
- DoCoMo系SIMカード
- eMMCでOS起動
- Raspberry Pi OS (bullseye)
- モニターに接続して確認
写真の通信モジュールはSierra Wireless社のEM7431です。
サポートされているバンドも幅広く、速度も申し分ありませんね。
SIMカードに3大キャリアは元より、いわゆる格安SIMと呼ばれるMVNOも利用できます。
対応しているバンド域:
4G(LTE) | B1、B3、B5、B8、B18、B19、B39、B41、B42、B43 |
---|---|
3G | B1、B5、B6、B19 |
- ピークダウンロード速度:300Mbps
- ピークアップロード速度:150Mbps
EM7431 Industrial-grade IoT Module
https://www.sierrawireless.com/iot-modules/4g-modules/em7431/
SIMカードがそのまま挿せる仕様
試用したデバイスは、内部のキャリーボードの裏側に4G(LTE)通信モジュールが搭載できます。(NVMe接続のSSDドライブと排他利用)
SIMカードはmicroSDカードの下段に挿入口が用意されています。
共に筐体と一体で別の機器(拡張HATやUSB)を接続する必要がなく簡便です。
NetworkManagerで簡単設定
ご存じの方も多いかもしれませんが、Raspberry Pi OS(以下、RPi OS)はbookwormバージョンになってから、ネットワーク管理設定をおこなうツールソフトはNetWorkManagerに置き換わりました。
Wi-Fi接続設定を含め固定IPアドレス化など、設定方法が変わってしまい戸惑っている人もいらっしゃるでしょう。
設定方法は変わりましたが、コマンド1行の実行で設定できるため、シンプルになった印象です。
今回試して感じたのは、bullseyeでもNetworkManagerによる4G(LTE)の設定はとても簡単でした。
そもそも今回の4G(LTE)通信モジュールは、デバイスとして初めから認識されます。
SIMを挿入し、接続設定を済ませれば、グローバルIPが付与されてインターネットに繋がります。
同時にセキュリティ対策として、ファイアウォール(UFW利用)の設定を施せば、すぐに現場で活用やテストが行えますね。
bullseyeはdhcpcd
Raspberry Pi OSがbullseyeバージョンではまだdhcpcdがデフォルト(標準)です。接続情報を出そうにもnmcliが起動していません。
nmcli con show
エラー: NetworkManager が起動していません。
まだNetworkManagerに切り替えていませんが、ipコマンドで確認すると、5番目にwwan0と表示されています。これが接続されている4G(LTE)通信モジュールです。デバイスとしては既に認識しています。
ip a
5: wwan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
(以下、略)
dhcpcdのままなので、NetworkManagerへ切り替えます。
なぜ切り替えるかというと、最新バージョンのRaspberry Pi OSではNetworkManagerが標準なのと、4G(LTE)通信の設定がNetworkManagerならとても簡単に設定できるようになったからです。dhcpcdでもできますが少し面倒でした。NetworkManagerならコマンド1行なのでとても簡単です。
変更はraspi-configコマンドで選ぶだけです。
sudo raspi-config
注意:Wi-Fiやネットワーク通信の設定はやり直しになります。
raspi-configのメニューから「6 Advanced Option -> AA Network Config」と辿り設定します。
NetworkManagerを選択して了解すると、再起動を促され、再起動後に変更され有効になります。
接続設定はnmcliコマンド
NetworkManagerの接続設定はnmcliコマンドで設定できます。モニターに繋いでいれば、デスクトップ画面でも設定が可能です。
GUIよりむしろコマンドの方が簡単なため、今回はコマンドでの設定方法でご紹介しています。
では、先程と同じようにnmcliコマンドを叩いてみます。
変更したNewworkMnagerが起動していればcdc-wdm0が確認できます。
nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet 接続済み 有線接続 1
wlan0 wifi 切断済み --
p2p-dev-wlan0 wifi-p2p 切断済み --
eth1 ethernet 利用不可 --
cdc-wdm0 gsm 利用不可 --
lo loopback 管理無し --
このステータスでは、有線接続1(eth0)でネットに繋がっています。
4G(LTE)通信モジュールはcdc-wdm0、gsmタイプとあり利用不可のステータスです。これはSIMカードをまだ挿していないからです。
後ほどSIMカードは挿しますが、続けてnmcli con showコマンドで現在接続しているデバイス名を確認してみます。
Wi-Fiや4G(LTE)はまだ接続設定していませんから表示されていません。
接続設定を済ませば、ここにも表示されることになります。設定後に確認してみてください。
nmcli con show
NAME UUID TYPE DEVICE
有線接続 1 b27d80c1-XXXX-XXXX-XXXX-XXXXXXXXXXXX ethernet eth0
有線接続 2 3XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX ethernet --
デスクトップ画面なら次のように表示され、ここから設定することも可能です。
しかし、CUIでのコマンドなら一回のコマンド実行で済むため、コマンド実行をオススメします。
UFW -ファイアウォール
早速、SIMカードを挿入してnmcliで接続情報を設定していきたいところですが、先にファイアウォールであるUFWを設定しておきましょう。
何かと物騒な時代です。僅かな時間でも侵入されないように予め設定しておきます。
UFWは「Uncomplicated Firewall」の略で、とてもシンプルなファイアウォールです。
インストール方法:
sudo apt update
sudo apt install -y ufw
はじめにUFWのステータスを確認してみます。
最初は非アクティブと表示され動いていません。
sudo ufw status
Status: inactive
次にポートを許可していきます。
はじめにデフォルトを拒否(deny)としてから進めます。
sudo ufw default deny
試している「PL-R4」をお使いの場合、noderedのポートも許可しておきましょう。
環境によってポートは変更や追加をしてください。
- web ポート80番
- nodered ポート1880番
- ssh ポート22番
- vnc ポート5900番
sudo ufw allow 80
sudo ufw allow 1880
sshとvncは、ローカルのアドレスからのみ許可しました。
sudo ufw allow from 192.168.0.0/24 to any port 22
sudo ufw allow from 192.168.0.0/24 to any port 5900
sudo ufw allow from 192.168.1.0/24 to any port 22
sudo ufw allow from 192.168.1.0/24 to any port 5900
最後に有効にします。
これで再起動後も有効です。
sudo ufw enable
逆にUFWを停止させたいならdisableコマンド。今は有効のままにしておきます。
sudo ufw disable
設定した一覧を確認するにはufw numberedコマンドです。
ステータスがアクティブになっており、設定したポートがそれぞれ表示されました。
sudo ufw numbered
Status: active
To Action From
-- ------ ----
80 ALLOW Anywhere
1880 ALLOW Anywhere
22 ALLOW 192.168.0.0/24
5900 ALLOW 192.168.0.0/24
80 (v6) ALLOW Anywhere (v6)
1880 (v6) ALLOW Anywhere (v6)
ファイアウォールの設定は、利用する環境によって適時合わせてください。
今回は上記の使用ポートを許可して進めます。
4G(LTE)通信モジュールでの接続設定
接続設定する前に、SIMカードを挿してアンテナも接続します。
LTE用アンテナはいくつかの種類から選べるそうです。今回はフラットアンテナです。
3M製テープが裏側にあり、樹脂やガラス面にペタっと貼り付けられるタイプです。
一度シャットダウンし、それぞれを取り付けて起動させました。
接続設定する
接続設定するコマンドの書式は次の通りです。
sudo nmcli con add type gsm ifname "*" \
con-name 接続名 \
apn アクセスポイント名 \
user ユーザー名 \
password パスワード
お手持ちのSIMカード契約書類に、APN、ID、PWDの記載があるはずです。それらを当てはめていきます。
なお、接続名は任意で契約会社を参考に命名しました。(OCNならocn-netなど)
接続先を追加するために nmcli add、接続タイプはstatusにあったgsmを指定しています。
※Wi-Fiの設定や詳しいnmcliコマンドはラズパイダのページでもご紹介しています。合わせて参考にしてください。
”正常に追加されました。”と表示されればOKです。
先程と同じようにステータスを見ます。
nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet 接続済み 有線接続 1
cdc-wdm0 gsm 接続中 (準備) ocn-net
wlan0 wifi 切断済み --
p2p-dev-wlan0 wifi-p2p 切断済み --
eth1 ethernet 利用不可 --
lo loopback 管理無し --
先程のcdc-wdm0、TYPEがgsmで接続中(準備)となり、CONNECTIONに任意に設定したocn-netになりましたね。
ここから再起動することで、4G(LTE)通信モジュールにグローバルIPアドレスが取得できてインターネットに繋がります。
自宅のルーター経由ではなく、モバイル通信だけを確認したいので、有線接続1のLANケーブルを抜き、Wi-Fiも切断して試しました。
cdc-wdm0だけが接続済みになったのが分かります。
nmcli device status
DEVICE TYPE STATE CONNECTION
cdc-wdm0 gsm 接続済み ocn-net
wlan0 wifi 切断済み --
p2p-dev-wlan0 wifi-p2p 切断済み --
eth0 ethernet 利用不可 --
eth1 ethernet 利用不可 --
lo loopback 管理無し --
グローバルIPアドレスの確認
モバイル通信している状態でグローバルIPアドレスの確認をします。
curlコマンドで確認できます。
curl inet-ip.info
Pingコマンドでインターネットへの疎通テスト
疎通テストをするだけなら、pingコマンドでURLやIPアドレスを指定します。
LANケーブルとWi-Fiをオフにすれば、4G(LTE)モジュールのみ接続済みですから、実行エラーが無ければモバイル通信が確認できたことになります。
ping www.yahoo.co.jp
ping www.google.co.jp
通信モデムの詳細
次のコマンドでモデム、今回試用した4G(LTE)通信モジュールの詳細が分かります。
先程までのnmcliではなく、mmcli(エムエムシーエルアイ)コマンドです。
mmcli -m 0
(前略)
--------------------------------
Status | unlock retries: sim-pin (3), sim-puk (10), sim-pin2 (3), sim-puk2 (10)
| state: connected
| power state: on
| access tech: lte
| signal quality: 89% (recent)
(後略)
ここのStatus項目でも接続(connected)が確認できました。
以上で、産業用ラズベリーパイでもモバイル通信が実現できました。
※現行のRaspberry Pi OSはNetworkManagerに変更されています。bullseyeでなければNetworkManagerへの切替は必要ありません。
システム運用の自由度が広がる
4G(LTE)通信モジュールを使えば、単独でのモバイル通信が可能になり、データの送受信における設置場所が緩和されます。
特に屋外ではWi-FiやLANケーブルと接続するのは困難です。
加えて温度管理が困難な場所でも、筐体が堅牢な作りなのも条件の緩和に役立ちます。
試用した製品は、筐体が比較的に小さいこともあり、既存の仕組みに追加する形で対応もできるでしょう。
設置する場所に課題があり、IoT端末の導入を諦めていたなら、モバイル通信への対応は検討できる要素の1つになると思います。
通信速度も電波強度も、取得した数値データの転送などに限れば小さなデータ量で済みます。
小さなコンピュータであるラズベリーパイなら、送信する前に加工処理を施すことも可能です。
ラズベリーパイ、特に産業用途では4G(LTE)通信といったモバイル通信の実現も需要に見合った製品があるのですね。
特に試用した「PL-R4」はキャリーボードに組み込まれ、SIMカードの挿入口も用意されています。別の機器と接続しないで済む一体型なのは、接続設定する意味でも分かりやすいと感じました。
記事寄稿:ラズパイダ
非エンジニアでも楽しく扱えるRaspberry Pi 情報サイト raspida.com を運営。ラズベリーパイに長年触れた経験をもとに、ラズベリーパイを知る人にも、これから始めたいと興味を持つ人にも参考になる情報・トピックを数多く発信。PiLinkのサイトへは産業用ラズベリーパイについて技術ブログ記事を寄稿。