ラズパイ(Pi 5)でスマホとBluetoothテザリング
Amazonのアソシエイトとして、ラズパイダ(raspida.com)は適格販売により収入を得ています。詳しくは当サイトのプライバシーポリシーをご覧ください。
この記事は最終更新日から10か月経過しています。適切な内容ではない可能性があります。
Bluetooth通信によるテザリング(tethering)は速度が遅い反面、端末の消費電力が少ないのが特徴です。
Pi 5はWi-Fiの他、Bluetooth通信も搭載されていますから、容易に接続することができます。
Wi-Fiでのテザリングも可能で、そちらの方が簡単に設定ができますから、あまりBluetoothでのテザリングは試していないかもしれません。
今回はPi 5とスマホ(今回はiPhone)をBluetoothで接続してiPhoneのインターネット共有(テザリング)を設定してみます。
【検索されている記事】販売価格が異なるWindows OS の選び方
今回の環境
- Raspberry Pi 5 bookworm 64bit
- iPhone SE
- iPhoneのMACアドレスの確認が必要
ここではMACアドレスは伏せています。名称はiPhoneSE2020としました。
ペアリング(pair)
現行のRaspberry Pi OSなら、Bluetooth接続は最初から設定可能です。
デスクトップ画面からマウスによる操作も可能ですが、イマイチ不安定なので、確実なコマンドで実行しました。
ペアリングにはiPhoneのMACアドレスが必要です。
iPhoneの例だと、設定 --> 一般 --> 情報の中で確認できます。
この記事ではXX:XX:XX:XX:XX:XXとしてあります。
スマホのMACアドレスが確認できたら、次のコマンドでBluetooth接続の設定をします。
sudo bluetoothctlターミナルのプロンプトが[bluetooth]#に変わります。以後、exitコマンドを実行するまでbluetoothctlのコマンドを実行できます。
次の順番で実行して設定していきます。
- power on
- discoverable on
- scan on
- pair XX:XX:XX:XX:XX:XX
- trust XX:XX:XX:XX:XX:XX
- scan off
- exit
powerとdiscoverableが成功となった後、scan onの前にスマホのインターネット共有をオンにしておきます。
scan onを実行すると、接続できるBluetoothデバイスが次々と表示されていきます。
その中に接続したいスマホのMACアドレスが見つかったらコピーしておきます。
スマホに名称が設定されていればそれも合わせて表示されるので、すぐに見つかるでしょう。
ペアリングしていきます。(以降、[bluetooth]# )
pair XX:XX:XX:XX:XX:XXすると、[agent] Confirm passkey 993028 (yes/no): といったパスキーの確認で止まります。
その時、iPhone側の画面では「Bluetoothペアリングの要求」ダイアログが表示されているでしょう。
iPhoneのペアリングを押下するだけです。
同じようにターミナル画面でもyesと入力してEnterで確定してあげてください。
成功すると次のようにPairing successfulとなります。
[agent] Confirm passkey 993028 (yes/no): yes
[CHG] Device XX:XX:XX:XX:XX:XX Bonded: yes
[CHG] Device XX:XX:XX:XX:XX:XX Paired: yes
Pairing successful
[CHG] Device XX:XX:XX:XX:XX:XX ServicesResolved: yes
続いて、毎回ペアリングしなくて済むように信頼(Trust)でデバイスを登録しておきます。こちらもtrust succeededとなればOKです。
[bluetooth]# trust XX:XX:XX:XX:XX:XX
Changing XX:XX:XX:XX:XX:XX trust succeededscanをオフにして確認してみます。
infoに続けてMACアドレス、または接続している状態ならinfoだけでも表示されます。
[bluetooth]# scan off
[bluetooth]# info XX:XX:XX:XX:XX:XX
Device XX:XX:XX:XX:XX:XX (public)
Name: iPhoneSE2020
Alias: iPhoneSE2020
Class: 0x007a020c
Icon: phone
Paired: yes
Bonded: yes
Trusted: yes
Blocked: no
Connected: no
LegacyPairing: no
前半部分にペアリング、トラストがyesになっていますね。
これでペアリングができました。
最後に、exitでbluetoothctlから抜けます。
スマホに接続する
接続するのにデスクトップ画面のBluetoothアイコンからメニューで接続もできます。
やはり確実に接続してメッセージも見たいので、最初だけコマンドやってみました。
sudo nmcli dev connect XX:XX:XX:XX:XX:XX成功するとデバイス 'XX:XX:XX:XX:XX:XX' が '96c055a2-4afc-4568-a94c-f62926cdbc92' で正常にアクティベートされました。のように表示される筈です。
iPhone側の画面も変更されています。
上部色が付き、時計の隣にインターネット共有のアイコンが追加されているのが分かります。
ラズパイのデスクトップ画面でも同じような
■Pi 5 メモリー8GB、4GB、と安価になったPi 4
他の接続を切断する
この状態だと、既にWi-Fiに入ってるパターンでしょうから、Bluetooth接続のみの速度が分かりません。
一旦Wi-Fiをオフにします。
こちらもコマンドで実行しました。
sudo nmcli radio wifi offもし、有線LANケーブルを繋いでいるならそれも抜いて、Bluetooth通信だけにしてみましょう。
速度は期待できない
Bluetooth通信だと回線速度はあまり期待できません。その分だけ消費電力が少ないのが利点ですから仕方ありませんね。
速度ならWi-Fiでのテザリングには敵いません。
Bluetooth通信はWi-Fiを別の用途に使う場合に有効な手段です。
ラズパイのデスクトップでテザリングすれば、それなりにパケットを消費します。言うまでもありませんが、契約されているスマホのデータ量には注意してください。
以前、bt-panを使う方法でPi Zeroでも試しました。現行はNetworkManagerに変更になったこともあり、bt-panは使えません。参考までにご覧ください。
旧モデル、旧OSでの情報

スマホのテザリングでRaspberryPi ZeroWをネット接続
Raspberry Pi をスマホ経由でネットに繋げる方法としてBluetoothでテザリングしてみました。 今回は特殊な環境です。 Raspberry Pi Zero W/WH OSにVolumio OSが通常のRa...
Raspberry Pi Compute module 4/5でも!
寄稿しているPiLink株式会社のページでは、CM4/5でこの記事と同じことをしました。どちらも無理なく利用が可能でした。
気になる方は合わせてご覧ください。
USB型Wi-Fiアダプタは、Raspberry Piで使い勝手が良さそうです。