ノートに貼り付けるメモをRaspberry Piとサーマルプリンターで作る

thermal-printer-memo-title
Raspberry Pi Zero /W/WH

手帳や日記、メモなどでノートを使っています。スマホになってもずっとメモノートや紙の手帳は手放せません。

ほぼ日手帳を使っている人はご存じなように、公式サイトにはPDFでダウンロードできる追加のフォーマットがあります。それを印刷して手帳に貼るわけですが、それと同じように自分しか使わないようなフォーマットのメモをRaspberry Pi で印刷して使っていました。

印刷するのは、レシートのように感熱式のプリンターであるzj-58を使い、定型フォーマットでメモを印刷します。感熱式なので長期保存には向きません。一時的なメモです。

上からペンで追記するようなメモでも良いですし、プログラムなので内容を変えて印刷することができます。

今回の環境

小さくて邪魔にならないRaspberry Pi Zero WHに、Raspberry Pi OS liteを入れて用意しました。Raspberry Pi 3B+でも4Bでも構いません。

Raspberry Pi OS liteなので、フルイメージと違いモジュールやソフトウェアは最初からあまり入っていません。そのため余計なインストール手順は少しだけ増えます。

また、速度が遅いため、インストールなどには時間がかかります。

  • Raspberry Pi Zero WH
  • Raspberry Pi OS lite (baster)

サーマルプリンター

使用しているのは、中華製の格安のプリンターです。

Symcode 58MM USB サーマルレシートプリンター」という商品名で販売されています。

Amazonで購入しましたが問題なく動作しています。システム屋さんなら、こういったプリンターはお馴染みですね。

自動カットできないタイプなので更に格安でした。

SSH接続で作業

Raspberry Piにモニターもキーボードも必要無く、他のPCからSSHで接続して作業します。

慣れない人は、フルデスクトップ版のRaspberry Pi OSイメージに、モニターや入力機器を繋いでやっても同じです。

プリンターの準備

以前、ご紹介した内容と変わっていません。要点だけおさらい。

サーマルプリンターのIDから固定する

lsusbコマンドで電源が入っている状態のサーマルプリンターのIDを調べます。

lsusb

そのIDを元にルールを設定します。新規でルールを作成。

sudo nano /etc/udev/rules.d/99-usbescpos

以下、を記述します。ベンダーや製品のID番号はご自分のを設定してください。

SUBSYSTEM=="usb", ATTRS{idVendor}=="0416", ATTRS{idProduct}=="5011", MODE=="0666", GROUP="plugdev"

これでUSBを抜き差ししたり、電源を入れ直しても同じプリンターを掴みます。
IDが変わってしまうからです。

Pythonプログラムから実行する

Pythonのプログラムから印刷できるように、ESC/POSを入れる。

sudo pip3 install python-escpos

pip3がまだインストールされていないなら先に入れてください。

sudo apt install python3-pip

日本語が使えないため、イメージライブラリPillowを入れ日本語フォントを印字できるようにする。

python3 -m pip install --upgrade Pillow

日本語フォントは、今回はPixelMplusのドット調フォントを使いました。

M+ FONTS
Copyright (C) 2002-2019 M+ FONTS PROJECT - LICENSE_E

These fonts are free software. Unlimited permission is granted to use, copy, and distribute them, with or without modification, either commercially or noncommercially. THESE FONTS ARE PROVIDED "AS IS" WITHOUT WARRANTY.

http://mplus-fonts.osdn.jp

http://mix-mplus-ipa.osdn.jp/mplus/

ダウンロードしPythonプログラムと同階層に置きます。今回はPixelMplus12-Regular.ttfを使いました。

macOS側から覗いたキャプチャ画像ですが、こんな感じです。home直下にそのまま置いています。

フォルダで見た同階層においたフォントファイル

細かい情報は以前にご紹介した記事をお読みください。

権限に関するエラー

もしもUSBの権限に関するエラーが出た場合、Pythonを実行するとき、sudo管理者権限を付ければエラー無く実行できます。

usb.core.USBError: [Errno 13] Access denied (insufficient permissions)
sudo python3 test.py

プリントサーバーにもする

ローカルで作業させても良いのですけど、スマホや他のマシンからも印刷できるようにしたかったので、プリントサーバーとしても構築しておきます。

iPhoneからは印刷OKでした。Androidは未確認ですがネットワークプリンターとして表示されるのは同じです。

実際のメモ

これまでは、フォーマットを作成して書き込むメモとして使っていました。また、QRコードを作成して、その画像を特定のフォルダに放り投げて印刷させていました。

でも、せっかくRaspberry Piと連携しているので、データのセットもPythonプログラムで出力したいですね。

よくメモするような内容を、データ内容を都度変えて印刷できたら使い勝手は良いかも?

WordやExcelから用紙に合わせて印刷するだけのプリントサーバーとしても重宝しています。

Piレッド
Piレッド

LEDはまだ連携していません。

お知らせ

おすすめセット品
これまでラズパイをたくさん購入してきたラズパイダがおすすめするセット品とアドバイスをご紹介!

コメント ご感想をお願いします。

タイトルとURLをコピーしました