LoginSignup
0
0

3Dプリンタをアクセスポイントにして出先でもklipperに接続したい!

Last updated at Posted at 2023-10-23

はじめに

最近は手乗りサイズの3Dプリンタが徐々に流行りつつあり,「イベントにプリンタを連れて行って出先で印刷したい」という需要も増えてきました.
しかし,イベント会場にWi-Fiアクセスポイントが設置されているとは限らず,これがない場合はklipperへの接続ができません.

そこで,3Dプリンタに搭載されているRaspberry Pi自身にアクセスポイントになってもらい,スマホやノートPCから直接接続する事を考えます.
この設定は普段使いしているルータ経由の接続とは共存がめんどくさい難しいため,別途Micro SDを用意して新しく環境を作り直すことを強く推奨します.

それでは!めざせ居酒屋ボートレース!!

環境

本稿で動作確認済みの環境は以下の通りです.

  • Mainsail OS
  • Raspberry Pi 3A+
  • HDMI入力できるモニタ
  • USBキーボード

手順

Mainsail OSのインストール

Mainsail公式ページの手順に従ってインストールします.僕は64bit版を選択しました.
Raspberry Pi Imagerのオプションで,家のWi-Fi設定を一緒に焼き込んでおくと便利です.
https://docs-os.mainsail.xyz/getting-started/raspberry-pi-os-based

OSインストールが終わったらモニタとキーボードを繋いで起動します.デフォルトのユーザはpi,パスワードはraspberryです.必要に応じて変更してお使いください.

ちなみに,自宅のWi-Fiへ接続していた設定を無効化の節の手順を行うまでは,自宅のWi-FiにつないであればSSH接続しての操作も可能なはずです.お好みで適宜ご利用ください.

必要なパッケージのインストール

OSインストール直後で何も更新を行っていない場合は,とりあえず最初から入っているパッケージたちを先に更新しましょう.再起動も忘れずに.

sudo apt update
sudo apt upgrade
sudo reboot

再起動から帰ってきたらアクセスポイント化に必要なパッケージたちをインストールします.

sudo apt install hostapd
sudo apt install dnsmasq

hostapdは無線LANデバイスをアクセスポイントとして動作させるためのソフトウェア,dnsmasqはDNSサーバとDHCPサーバの機能を含んだソフトウェアです.

このあと設定ファイルを編集します.お好みのエディタがあればこのタイミングでインストールしておきましょう.

良く分からないという方はデフォルトで入っているnanoを使うのがおすすめです.本稿でもnanoを想定してコマンドを挙げておくので,他のエディタをお使いの方は適宜読み替えてください.

DHCPサーバの設定

/etc/dnsmasq.confを編集します.

sudo nano /etc/dnsmasq.conf

ファイル末尾まで下キーでスクロールしたら,以下の内容を追記します.

interface=wlan0
dhcp-range=192.168.200.10,192.168.200.100,255.255.255.0,12h

この設定では,wlan0(=無線のインターフェース)に対して接続してきたデバイスへ,192.168.200.10 ~ 192.168.200.100の中からIPアドレスを割り当てています.

追記できたら,ctrl + oでWrite outを呼び出してEnterキーを押下して保存してから,ctrl + xでnanoを終了します.

Raspberry PiのIPアドレスを固定

ノートPC等からRPiにつなぐ際に,IPアドレスが固定されていた方が何かと便利なので設定しておきます.
例によってnanoで設定ファイルを開きます.

sudo nanot /etc/dhcpcd.conf

下キーでファイル末尾までスクロールして,以下の内容を追記しましょう.

interface wlan0
static ip_address=192.168.200.1/24

この設定では,RPiのIPアドレスが192.168.200.1に固定されます.

hostapdの設定

RPiのアクセスポイントとしての設定を行います.

以下のコマンドで設定ファイルを作成しながら開いて,

sudo nano /etc/hostapd/hostapd.conf

以下の内容を書き込みます.このとき,ssid=klipper_directでSSID(PC等のWi-Fi接続先一覧に出てくる名前)をklipper_directに,wpa_passphrase=pass_klipper_directでWi-Fi接続時のパスワードをpass_klipper_directに設定しています.必要に応じて変更してお使いください.

ctrl_interface=/var/run/hostapd
ctrl_interface_group=0
interface=wlan0
driver=nl80211
ssid=klipper_direct
hw_mode=g
country_code=JP
channel=11
ieee80211d=1
wmm_enabled=0
macaddr_acl=0
auth_algs=1
wpa=2
wpa_passphrase=pass_klipper_direct
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP

設定ファイルを書けたら,アクセスポイントとしての機能が自動起動するようにしておきます.

sudo systemctl unmask hostapd.service
sudo systemctl enable hostapd.service

自宅のWi-Fiへ接続していた設定を無効化

ここまではRaspberry Pi Imagerで一緒に焼き込んだWi-Fi設定が生きていましたが,これが有効になっているとRPi自身をアクセスポイントとする設定と競合するため無効化します.

もう一度以下のコマンドで設定ファイルを開いて,

sudo nanot /etc/dhcpcd.conf

これを末尾に追記します.

nohook wpa_supplicant

本稿の手順通りに進んでいれば,ファイル末尾は

interface wlan0
static ip_address=192.168.200.1/24
nohook wpa_supplicant

となっているはずです.

ここまで設定できたら,一旦再起動です.

sudo reboot

これ以降はRPiが自宅のネットワークへ自動接続されないため,メンテにはモニタとキーボードが実質必須(シリアル接続もできるらしいですが本稿では扱いません)となります.

起動確認

再起動から帰ってきたらRPiがアクセスポイントになっているはずです.
PCやスマホのWi-Fi接続先一覧からklipper_directを探して
image.png

Wi-Fiパスワード(本稿デフォルトならpass_klipper_direct)を入力して接続します.(インターネットへは繋がっていないので,アイコンは見慣れた接続済みアイコンと違うかもしれません)

お好みのブラウザからRPiに割り当てた固定IP(本稿デフォルトではhttp://192.168.200.1/)へ接続すれば...

image.png
はい!いつもの見慣れたMainsailの画面に辿り着けました!

klipperの設定ファイルを移植

必要に応じて,普段お使いのklipper環境からpringer.cfgを持ってきて配置してください.

  1. 事前に普段のお使いのRPiからPCへダウンロード
  2. 本稿で作った環境へ繋いだらアップロード

の流れが無難かと思います.

おわりに

いかがでしたか?この手順でスタンドアロン用MicroSDを作っておくとイベント時にも安心ですね.printer.cfgの共有だけちょっと面倒なので良い運用があれば教えてください.

それでは.

参考

Raspberry PiをWiFiアクセスポイント化してスタンドアロン運用
RaspberrypiをWifiアクセスポイントにする。(スタンドアローン)

0
0
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
0
0