LoginSignup
11
9

More than 3 years have passed since last update.

スマホからRaspberry PiをBluetooth経由で操作

Last updated at Posted at 2020-04-19

なぜBluetooth?

わが家のポケットWifiではリモートデスクトップ接続が出来なかったので、Buletoothでの接続を試みました。

結論から言うとBluetoothは動作が遅く実用性は微妙ですが、
linuxの各種コマンドやBluetooth、VNC等の勉強になったので、
その点では良かったと思います。

※参考にさせて頂いた記事
・全般(下例ではtightvncserverを使用していますが、本稿ではデフォルトのRealVNC使用)
https://www.raspberrypirulo.net/entry/bluetooth
https://qiita.com/hirohiro77/items/d6ddf3abc805c48772c8
・SSHの有効化
https://qiita.com/deco1183/items/9546dd5ff7a97322c27b

必要なもの

・Raspberry Pi本体(今回はRaspberry Pi3 ModelBを使用)
・Androidスマホ(今回はPixel 3aを使用、OSはAndroid10)
・表示用ディスプレイ(スマホと接続するまでの設定に必要です)

手順

①事前準備

・Bluetooth HCIが有効であることを確認

$ sudo hciconfig

→3行目が"UP RUNNING PSCAN"ならOK、"DOWN"だったら

$ sudo hciconfig hci0 up

を実行

・BluetoothのBlock解除確認

$ rfkill list

→1:hci0:Bluetoothの
  soft blocked: no
ならOK
  soft blocked: yesなら

$ sudo rfkill unblock bluetooth 

を実行

・/boot/config.txtのBluetooth無効解除
「/boot/config.txt」を開き、
「# dtoverlay=pi3-disable-bt」
という記述があればコメントアウトして保存

・必要なパッケージのインストール
curl、wget、python-dbus、pulseaudio-module-bluetoothをインストールする

sudo apt install curl wget python-dbus pulseaudio-module-bluetooth

bt-panをダウンロードし、権限を実行可能に変更

cd ~
wget https://raw.githubusercontent.com/mk-fg/fgtk/master/bt-pan
chmod +x bt-pan
sudo chown root: bt-pan
sudo mv bt-pan /usr/bin/

②SSHの有効化

・デスクトップ左上のプルダウンメニューから[設定]→[Raspberry Piの設定]にある[インターフェイス]→有効をチェック
・下記コマンドでbootフォルダ内にsshフォルダを作成

cd /boot
sudo mkdir ssh

③スマホ側でBluetoothの設定

※スマホ側での操作です
(下記はPixel3aの画面例ですが、機種等により若干異なるはずです)
・スマホのBluetoothをONにする
bluetotho.png

・下記画面の手順で、BluetoothテザリングをONにする
設定ボタン
Screenshot_20200417-130423.png

ネットワークとインターネット
Screenshot_20200417-130546.png

アクセスポイントとテザリング
Screenshot_20200417-130627.png

Bluetoothテザリング
Screenshot_20200417-130712.png

④スマホとRaspberry PiのBluetoothペアリング

・スマホ側でペアリング探索
※スマホ側での操作です
③のBluetooth設定画面から、下図のペアリング設定画面に入る
Screenshot_20200417-132652.png

※Pixel3aではこの画面にMacアドレスも書いてあります

・bluetoothctlを起動
※以降は基本的にRaspberry Pi側での操作がメインです

$ bluetoothctl

・Bluetoothデバイスをスキャン

power on
discoverable on
scan on
※この下に見つかったBluetoothの一覧が表示される

この画面でスマホのMacアドレスが出てくれば成功

・ペアリング

pair [スマホのMacアドレス]

スマホ側、RaspberryPi側共にパスキーの確認が出てくるので、どちらもYESの操作をする
"Pairing successful"が表示されれば成功

・接続

connect [スマホのMacアドレス]

"connection successful"が表示されれば成功

・Trust

trust [スマホのMacアドレス]

"trust succeeded"が表示されれば成功

・接続の確認

info

"connected on"&"trusted on"となっていれば成功



※一度接続が切れた後等にconnect等が失敗する場合、removeしてから上記ペアリング~Trustをやり直せば良い

remove [スマホのMacアドレス]

⑤PAN接続

・前のコンソール画面を開いたまま、新たにコンソールを開く

・PAN接続

sudo bt-pan client AB:CD:EF:12:34:56

何もエラーが出なければ成功
(スマホ側でラズパイをオーディオと認識してエラーが出たりするが、何度か繰り返すと上手くいくことが多そう)

・ifconfigで接続確認

ifconfig
bnep0: flags=・・・・

eth0: flags=・・・・

上記のように、表示された内容に「bnep0:」が存在すれば成功

⑥VNCServerを立ち上げ

・デスクトップ左上のプルダウンメニューから[設定]→[Raspberry Piの設定]にある[インターフェイス]→有効をチェック
2bf2812b.png

・デスクトップ右上のVNCServerタブをクリックし、
記載されているIPをメモしておく
bd930a41.png

⑦スマホからVNC接続

・スマホには予めVNC Viewerをインストールしておく
https://play.google.com/store/apps/details?id=com.realvnc.viewer.android&hl=ja

・VNC Viewerを開き、右下の「+」マークを押す
Screenshot_20200419-051438.png

・Addressに⑥でメモしたIPを記載し、CREATE(Nameは空欄でOK)
Screenshot_20200419-131648.png

・ユーザ名、パスワードを入力
(ユーザ名はデフォルトでは「pi」、パスワードはラズパイ初期インストール時に設定したパスワード)
Screenshot_20200419-131151.png

画面が表示されれば成功です。
苦労して接続できたのに本末転倒なコメントですが、やはりBluetoothなので動作は非常にもっさりです。
素直にHDMIを使うのがよさそうだと思いました(笑)

最後に

我が家のポケットWiFiでもネットワーク構築できるようになったので、
こちらを参考にWiFiでのリモートデスクトップも試してみました。

結果、Bluetoothとは比べ物にならない程サクサク動きました。
冗談じゃなく自転車と新幹線くらいの差があります。

結論:Bluetoothはリモートデスクトップには遅すぎる

11
9
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
11
9