DesignSpark Electrical Logolinkedin
菜单 搜寻
提问问题

构建一个由Pi 供电的无线标签打印机

Raspberry PiBrother QL-700相结合,创建一个独立的无线标签打印机,并配备一个基于集成网络的标签设计器。

每个有组织的工作坊都需要标签,并且通过添加Raspberry Pi,低成本的Brother QL-700(840-6302)可以变成一个便捷的无线标签打印机,并配备一个基于集成网络的标签设计器。

QL标签打印机

Brother QL标签打印机具有各种配置。 QL700型号是相当小巧的,可以采用各种不同尺寸和类型的标签库存。感谢来自Philipp Klaus  的一些整洁的软件,现在可以在不需要Brother提供的官方驱动程序支持下驱动它们,这意味着也可以使用非x86平台,例如基于ARM的Raspberry Pi。当然,这对于螺栓固定式无线打印伺服器来说是完美的 - 还有更多!

让我们来看看我们如何配置Pi来通过简单的Web界面来驱动QL-700。

安装Raspbian和依赖文件

首先我们需要将Raspbian写入Micro SD卡。精简版本是完全足够和可取的(不需要桌面软件等)。假设你使用Linux机器来写出SD卡,一旦这个完成,如果你删除并重新插入卡,使其分区挂载,我们可以编辑几个文件。

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

将主机名更改为易于记忆的内容,如“labels”。

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

然后用相同的名称更新hosts文件。

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

并创建一个告诉Raspbian启用SSH 伺服器的文件。

当然,随意用你选择的文本编辑器替换vi。

如果我们现在将该卡插入我们的Raspberry Pi并提供电力,在一段时间后,我们应该可以使用mDNS来通过SSH登录。例如:

$ ssh pi@labels.local

或者,你可以只附加一个键盘和显示器。

接下来,如果我们更新系统。

$ sudo apt-get update

$ sudo apt-get dist-upgrade

然后通过以下方式安装打包的依赖文件:

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

无线设置

如果你希望能够通过无线连接进行打印而不是有线打印,则还需要配置WPA supplicant。如果有线以太网适合你的需求,你可以跳过这一步。

要配置Raspberry Pi加入无线网络,我们需要编辑一个文件:

$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf

并将网络SSID和密码短语的配置添加到文件的底部。例如:

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

之后如果我们保存文件并重新启动它,它应该加入到网络。有关更多详细信息,请参阅documentation on the Raspberry Pi website.

Brother QL打印机Python软件包

 brother_ql Python包 为该项目提供了基础,并且可以驱动QL系列标签打印机,而无需通常需要的打印机驱动程式。安装光栅语言文件后,可以通过你自己的程序生成光栅语言文件或从映像文件使用提供的命令行工具。要通过PIP安装,我们只需输入:

$ sudo pip3 install brother_ql

在此之后,我们可以查看该工具的选项,这可创建打印机可以理解的语言文件,从图像文件开始,通过输入:

$ brother_ql_create --help

这些打印机的优点之一是它们采用不同尺寸的标签,并且可以提供标签作为单独标签和连续卷筒。列出支持的尺寸,我们输入:

$ brother_ql_info list-label-sizes

有关这两个命令选项的详细信息,请参阅 GitHub repo.

我们使用装有62mm宽连续卷筒的打印机,并创建了一个宽度为62mm 的PNG文件,其中包含了DesignSpark徽标并在其周围有一个小的白色边框

请注意,红色背景并未出现在打印的图像中,这只是添加了该背景以显示图像的大小。

打印机语言文件随后创建:

$ 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的作者创建了一个非常酷的软件,创建了一个独立的web-based label designer,这意味着你可以简单地将浏览器与Pi连接,输入一些文本,设置字体和标签参数,之后打印!要安装这个,我们要输入:

$ 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 suffice。

在最低限度的配置之后,我们可以输入以下指令来开始:

$ sudo python3 brother_ql_web.py

在pi上连接浏览器- 例如http://labels.local - 我们应该得到用户界面并能够输入文本和打印。

最后的步骤

如果我们希望它在启动时自动启动,我们只需编辑/etc/rc.local,并在exit 0 line之前添加:

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

最后,通常我们应该配置Pi,使其在启动时以只读方式挂载根文件系统,否则,如果在没有正确关闭Pi的情况下切断电源,则会导致文件系统损坏。有各种各样的指南详细说明如何做到这一点,但一个特别简单的解决方案是使用rpi-readonly脚本。

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

$ cd rpi-readonly

$ sudo ./setup.sh

这实际上做了一些重大的改变,所以,如GitHub库中所述,首先制作SD卡的副本是值得的。

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.

22 Jun 2018, 7:21