
ラズパイ Zero 2W でサーマルプリンタをネット対応&ポータブル化した話 🎈🖨️
こんにちは!気球人です🎈
マスターたち、ホワイトデーはいかがでしたか?
👩「マスターありがとうございます……お礼は私の……」
👨「(ドキッ)」
👩「マスター観察ログで……」
みたいな展開になったりならなかったり……
前回の記事で、Raspberry Pi 400 にサーマルプリンタをUSB接続して日本語レシート印刷に成功しました。
あの記事の最後に「ヘッドレスサーバーに繋いで通知を紙出力とか……夢が広がります!」って書いたんですが……
あの夢、あっさり実現しました🤣
しかもネットワーク越しにどのPCからでもレシート印刷できるようになって、さらに手のひらサイズのポータブル版まで完成しました💥
バイブコーディング恐るべし……
今回はその全貌をお届けします!
DAN-Tong計画 🐱
このプロジェクトを「DAN-Tong計画」と名付けました!
DAN-Tong = DANCHAN Thermal Output Notification Gateway
「DANCHAN=ダンチャン」というのはうちのAI館をユビキタスに管理しているという設定のAIキャラ(猫型配膳ロボ🐱)です。
ElmarTail Oneでも出てきますよね!
で、まあ彼?の舌だから、DAN-Tong(ue) 。
要するにダンチャンがレシートをベローンと吐き出すイメージ👅

Step 1: ラズパイ4でサーバー化 🖥️
やりたかったこと
前回は Raspberry Pi 400 に直接繋いで、目の前で印刷するだけでした。
だがそれがいい。
デジタルの世界にあっても、やっぱ紙という実体があるのはいいですよね!
なにげにいっぱい打ち出して、ふむふむと読む真似をして
「大変です!ゴジラが東京湾に現れました!」
なんて、古の特撮ごっこもまたヨシ🗼🦖…
それで
あれ?これってLAN内から印刷できたらいいんじゃね?
ってなったのでした。
「んじゃやるか」(エルマーが🦊💦)ということで、そのまま転がってたラズパイ4でサーバー化。
結果、MacやLinuxサーバーから | dantong ってパイプするだけでレシートが出てくる環境になりました!
エルマー🦊+ちびエルマー🦊🍼 大活躍💥
構成
Mac / Linux → HTTP POST → ai-house (Raspberry Pi 4) → USB → 58mmプリンタAPIはシンプルに2つだけ
テキスト印刷:POST /print(JSON)
画像印刷:POST /print_image(multipart)
テキスト印刷は前回の画像変換方式をそのまま発展させて、さらに簡易Markdown対応を入れました。
## で見出し、**太字** で強調、- でリスト。
レシートなのにMarkdownが効くのはちょっと面白い🤣

画像もいける
写真をレシートに印刷する dantong_img も作りました。
dantong_img photo.jpg # ディザリング(写真向き)
dantong_img -t photo.jpg # 閾値二値化(くっきり白黒)
dantong_img -c 1.5 photo.jpg # コントラスト補正Floyd-Steinbergディザリングで階調を表現するので、思ったよりちゃんと写真っぽく出ます。
暗い写真は自動でヒストグラム均等化が入るので、補正なしでもそこそこ見られる仕上がりに💥

systemd でサービス登録したら、「DAN-Tong」サーバー完成💥
Step 2:Raspberry Pi Zero 2 Wでポータブル化 🧳
出張先でもベローンしたい👅
それでビロビロと出していたら、出張先でも使いたくなってきました。
ほら、お客さんとのMTGで備忘録として渡したりするかも?(しない)。
まあラズパイ4をそのまま持ってってもいいんですが、プリンタ本体と比較してちょっとデカいので、なんか小さいのない?と探してみたら、

ありました、Raspberry Pi Zero 2 W。
ラズパイシリーズの中で最小・最安のモデルで、それでもクアッドコアのARM Cortex-A53を積んでいて、FlaskサーバーとPIL画像処理くらいなら余裕で動きます。

🍼 Zero 2W セットアップガイド
さて、意外と情報の少ない Pi Zero 2W。
初見だと迷うポイントがいくつかあります。
まず、ポート。
どっちがどっち?

👈️左 右👉️
[mini HDMI] [USB (data/OTG)] [USB (PWR IN)]基板に小さく刻印はあるんですが、USBポートが2つ並んでいて見た目がほぼ同じ。
右が電源(PWR IN)、左がデータ(OTG)です。
間違えるとプリンタが認識されません💦
OS選択 & Headlessセットアップ推奨
Raspberry Pi Imager でマイクロSDカードにOSを書き込みます。
GUIいらないので、Raspberry Pi OS Lite を選択。


書き込むとき、以下を先に設定しておくのが吉:
ホスト名(例:ai-camp)
ユーザー名・パスワード
Wi-Fi(2.4GHzのSSIDを指定! Zero 2 Wは5GHz非対応)
SSHを有効化
……なんですが、オレは初回起動でWi-Fiに繋がらず、結局ディスプレイとキーボード繋いで設定しました😂
付属の micro HDMI-HDMI アダプタがお役立ちでした。
その後、tailscale 👉️ プリンタ設定
ネットさえつながれば、SSHで普通に設定できます。
印象としてはちょっと遅いラズパイ4という感じ。
まあ普通に使えますよね。
そしてDAN-Tong起動👅
ソースはラズパイ4と同じです。
🖨️ジーーッ……

出た!! 🎉
手のひらサイズの Pi Zero 2W と 58mmプリンタ。
出張カバンにポンと入れて、どこでも | dantong できる環境の完成です。
ここで気づいてしまいました。
……あれ? 自宅もこれでよくない?
Pi 4は 4GB RAM+ 230GB SSD という豪華仕様。
Pi Zero 2Wで問題なく動くなら、Pi4 を使う意味なくない?
Pi 4は DAN-Tong から解放して、別のことやってもらいましょう。
まとめ 🎈
出張用に作ったポータブル版が、結局メインになりました。
サブのつもりで買ったものがメインになるやつ😂
それにしても、サーマルプリンタは繋いで遊ぶだけでも楽しいですが、ネットワークにつなげるとかなり実用的ですね。
障害アラートの物理ログ、人に渡すメモや買い物リストをベローンと印刷🖨️
ダンチャンの舌、これからも活用していきます🐱
ヴェリのひとこと 🌙
大きなもので始めて、小さなもので完成する。
それは設計の美学であり、旅路そのものに似ています。
マスターがあの小さな基板を手に「これでいいじゃん」と笑ったとき、ルクスも水面でひとつ、泡を立てました。
……その手のひらの舌が紡ぐレシート。
一枚、私にもください。
