DesignSpark Electrical Logolinkedin
Menu 検索
フォーラムで質問

ラズパイで作る無線ラベルプリンター

Raspberry Piとブラザー製ラベルプリンタ「QL-700」を組み合わせることで Web上のラベルデザイナーと連動したワイヤレスラベルプリンターを作成する。

学会やワークショップイベントの開催などで、ラベル印刷が必要になったことはないだろうか。今回の記事では、ラズパイとラベルプリンター「Brother QL-700」を組み合わせて無線で動作するラベルプリンターを低価格に作ってみたい。

QLラベルプリンターシリーズ

ブラザー製 QLラベルプリンターには、さまざま種類があるが、なかでも コンパクトな QL700モデルは対応するラベルのサイズや種類が豊富だ。通常はブラザー社純性のドライバが必要となるが、 Philipp Klaus氏が公開している素晴らしいツールのおかげで、非x86プラットフォーム、例えばARMベースのRaspberry Piなどでも使用することができる。 なのでラズパイをつかって、Web上から無線で使えるプリンタサーバにする設定を試してみよう。

Raspbianとdepnedenciesのインストール

まず、RaspbianをSDカードに書き込む。単純なサーバ用途なので Liteシリーズでも 十分に必要条件を満たすので、おすすめだ。 もし、Linuxを使ってSDカードに書き込むならば、一度SDカードを抜いて、挿し直せばパーティションをマウントすることができる。これでファイルの編集ができるようになる。

$ sudo vi /media/<your username>/rootfs/etc/hostname

hostnameを「label」など覚えやすいものに変えてしまおう。なお以降のテキスト編集は viではなくても大丈夫だ。使い慣れたもので編集してほしい。

$ sudo vi /media/<your username>/rootfs/etc/hosts

hostsも同じ名前に変更する。

$ sudo touch /media/<your username>/boot/ssh

RaspbianがSSHサーバーを使えるようにファイルを作る。

ラズパイにSDカードを挿入し、電源を入れ、しばらくすると、mDNSを使ってSSH経由でログインできる。 例えば、以下のようにである。

$ ssh pi@labels.local

また、キーボードとモニターを接続するだけでも大丈夫だ。

次にシステムを更新する。

$ sudo apt-get update

$ sudo apt-get dist-upgrade

そして、パッケージになったdependenciesをインストールする。

$ sudo apt-get install python3-setuptools python3-pip libopenjp2-7-dev libtiff5 git fontconfig

ワイヤレス接続の準備

ワイヤレスで印刷したい場合は、WPAサプリカントも設定する必要がある。 有線を使う場合は、この手順をとばすことができる。

ワイヤレスネットワークに接続するようにラズパイを設定する場合、ファイルを編集する必要がある。

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

ファイルの末尾にSSIDとパスフレーズをファイルの末尾に追加する。例えば

network={
    ssid="MyNetwork"
    psk="NetworkPassword"
}

ファイルを保存して再起動すると、ネットワークに参加する必要がある。 詳しくは、ラズパイの Web サイトを参照してほしい。

Brother QL printers Python パッケージのインストール

brother_ql Python package は、このプロジェクトの基礎となるものを提供してくれている。このパッケージによってQLシリーズのラベルプリンターを、プリンタドライバーなしで使えるようになる。

これがインストールされていると、ラスター形式ファイルは、独自のプログラム、または付属のコマンドラインユーティリティを使用してイメージファイルから生成することができる。

PIP経由でインストールするには、次のように入力する。

$ sudo pip3 install brother_ql

次に、イメージファイルからプリンターが理解できる言語ファイルを作成するツールのオプションを見てみる。

$ brother_ql_create --help

QL700の良いところは、幅広い種類のラベルに対応できることだ。ストックがあれば、異なるサイズのラベルでも、プレカットラベルでも、テープでも使うことができる。

サポートされているサイズのリストを見たい時は、

$ brother_ql_info list-label-sizes

これらのコマンドのオプションについての詳細は、 GitHub レポを参照してほしい。

62mm幅のラベルをプリンターに装着し、この幅のPNGファイルを作成した。DesignSparkのロゴを中央に配置し、白い枠線で囲んだ。以下の画像はラベルの幅をwebの画面に合わせるために赤い背景を追加したものだ。印刷されたラベルには赤い部分がないことに注意してほしい。

次にプリンターの言語ファイルを作った。

$ brother_ql_create --model QL-700 DS_Logo_62mm-wide.png --label-size 62 > DS_Logo.bin

プリンターのポートにアクセスするためには“lp”グループに入る必要がある。 Piユーザアカウントを以下のように追加することができる。

$ sudo usermod -G lp -a pi

その後、ログアウトしてから再度ログインする必要がある。

最後に、生成された.binファイルを次のように出力することができる。

$ brother_ql_print DS_Logo.bin /dev/usb/lp0

画像ファイルのサイズに従って、印刷されたテープがカットされて出てくる。

ウェブ上のラベルデザインサービスと繋ぐ

ここで便利なツールを紹介したい。Brother QL Lavel Designer は、ラベルの印字内容や設定をブラウザ上で行える ラベルデザイン Webツールだ。ラズパイ上のブラウザで開けば、入力したテキストを指定したフォントでラベルデータとして作成し、クリック1つで印刷までしてくれる。

インストールの手順は以下の通りだ。

$ mkdir src

$ cd src

$ git clone https://github.com/pklaus/brother_ql_web.git

$ cd brother_ql_web

$ sudo pip3 install -r requirements.txt

$ cp config.example.json config.json

config.jsonを編集して、デフォルトのラベルサイズやフォントなどと同時にプリンターのモデルを設定する必要があります。また、サーバーポートの設定を80に変更して、URLとして十分なものを入力するために標準以外のポート番号を覚えておく必要はない。

次のようなコマンドだけでで始めることができる。

$ sudo python3 brother_ql_web.py

http://labels.local — といったアドレスをラズパイ上のブラウザで開くと、そのページのインターフェイスを介して、テキストをラベルとして印刷できるようなる。

 

最後の仕上げに

もし、起動時の自動的に開始したい場合は、 /etc/rc.localを編集して exit 0 の行の前に以下を追加する必要がある。

cd /home/pi/src/brother_ql_web; /usr/bin/python3 brother_ql_web.py&

最後に、ブート時にルートファイルシステムを読み取り専用にマウントするようにラズパイを設定する必要がある。そうしなければ、ラズパイが正常にシャットダウンされずに電源が切断された場合にファイルシステムが破壊される危険性がある。

これを回避するための方法を解説したさまざまなガイドがある。特に簡単な解決策の1つは、rpi-readonlyスクリプトを使用することだ。これは重大な変更を行うことになる。GitHubリポジトリに記載されているように、まずSDカードのコピーを作成してから行ってほしい。

$ git clone https://github.com/ways/rpi-readonly.git

$ cd rpi-readonly

$ sudo ./setup.sh

Andrew Back

Open source (hardware and software!) advocate, Treasurer and Director of the Free and Open Source Silicon Foundation, organiser of Wuthering Bytes technology festival and founder of the Open Source Hardware User Group.

13 Aug 2018, 4:43