Bluetoothで3Dプリンター操作(Klipper搭載機)
Klipper搭載の3Dプリンターを持って出かけた際に、いちいちラズパイのWiFi設定をあれこれしてMainsailに接続するのがめんどくさい貴方に贈るBluetoothのPAN(Personal Area Network)の設定方法
PANを使用して
・家ではWiFi
・出先ではスマホでBluetooth
といった感じになり、ラズパイの設定を変えることなく、ふらっと気軽に3Dプリンターをもってお出かけ可能になります。
概要
・ラズパイにBluetoohのネットワーク(PAN)を設定
・スマホとラズパイをペアリング(インターネット共用)
・スマホからMainsailにアクセスして3Dプリンター操作
以下はラズパイのコンソールから、またはラズパイにSSH接続して操作してください。
記事はRaspberry Pi Zero 2 wで、下記環境での設定例です。
proko@grape:~ $ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
Bluetoohのネットワーク(PAN)を設定
Bluetooth用パッケージのインストール
sudo apt install bluez-tools
PAN用インターフェイス定義ファイル作成
/etc/systemd/network/pan0.netdev
[Ne/etc/systemd/network/pan0.netdevtDev]
Name=pan0
Kind=bridge
pan0の設定ファイル作成
/etc/systemd/network/pan0.network
※Address= 部に有線LAN、無線LANと被らない任意のアドレスを設定(よく分らなければ設定例のままで大丈夫と思います。
[Match]
Name=pan0
[Network]
Address=192.168.70.1/24
DHCPServer=yes
Bluetoothのサービス定義ファイル作成
/etc/systemd/system/bt-agent.service
[Unit]
Description=Bluetooth Auth Agent
[Service]
ExecStart=/usr/bin/bt-agent -c NoInputNoOutput
Type=simple
[Install]
WantedBy=multi-user.target
/etc/systemd/system/bt-network.service
[Unit]
Description=Bluetooth NEP PAN
After=pan0.network
[Service]
ExecStart=/usr/bin/bt-network -s nap pan0
Type=simple
[Install]
WantedBy=multi-user.target
サービスの登録
sudo systemctl enable systemd-networkd
sudo systemctl enable bt-agent
sudo systemctl enable bt-network
各サービスの起動
動作確認を兼ねてOS再起動してもok
sudo systemctl start systemd-networkd
sudo systemctl start bt-agent
sudo systemctl start bt-network
ip a コマンドでpan0のインターフェイスが出来ていることを確認。
proko@grape:~ $ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: pan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN group default qlen 1000
link/ether 5a:ba:42:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.70.1/24 brd 192.168.70.255 scope global pan0
valid_lft forever preferred_lft forever
inet6 fe80::58ba:42ff:xxxx:xxxx/64 scope link
valid_lft forever preferred_lft forever
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether d8:3a:dd:xx:xx:xx brd ff:ff:ff:ff:ff:ff
inet 192.168.68.130/24 brd 192.168.68.255 scope global noprefixroute wlan0
valid_lft forever preferred_lft forever
inet6 fe80::88a1:4bd5:xxxx:xxxx/64 scope link noprefixroute
valid_lft forever preferred_lft forever
スマホとラズパイをペアリング(インターネット共用)
Bluetoothペアリング
下記コマンドを実行後するとペアリングモードになるので、スマホ等でBluetooth機器を追加(設定したラズパイのホスト名が表示されます)
スマホではぺリング完了するとインターネット共用として追加されると思います。
sudo bt-adapter --set Discoverable 1
スマホからMainsail(Fluidd)アクセス
スマホのブラウザでMainsailのアドレス(raspberrypi.local等)にアクセスすると操作画面が表示される。はずです。
が、手持ちのスマホ(android13)ではWiFIとモバイルネットワークをoffしないとアクセスできませんでした。おそらくそっちが優先されてしまうのでしょう。
あとは印刷するモデルのgcodeをラズパイ内にアップロードしておけば、いつでもどこでも3Dプリントが可能に。
この記事が気に入ったらサポートをしてみませんか?