一、需求分析
将一台普通的USB三合一打印机改造为网络打印机
- 使用CUPS作为无线打印机服务;
- 使用SANE作为无线扫描仪服务;
- 搭建网页版扫描仪服务,实现任意手机、电脑远程扫描;
二、网络打印机
1.CUPS安装和配置
- 安装CUPS
sudo apt update
sudo apt install cups
- 把当前用户(raspbian默认是pi)添加到linux打印机的管理员用户组lpadmin
sudo usermod -a -G lpadmin pi
- 确保cups允许所有的流量请求,重启cups
sudo cupsctl --remote-any
sudo /etc/init.d/cups restart
- 访问配置页面,假设树莓派IP为192.168.3.10,在浏览器中输入:http://192.168.3.10:631,访问打印机配置页面。依次点击
Administration
-Printers
-Add Printer
进行打印机的添加,注意勾选Share This Printer
。可以通过/etc/cups/cupsd.conf
文件配置CUPS。
2.使用打印机
Win10、Mac、手机均可自动搜索和识别出打印机,可以直接连接使用。
3.查看墨水
sudo apt install ink
sudo ink -p usb
ink 0.5.1 © 2010 Markus Heinz
Canon MP450
Black: 0%
Color: 0%
三、网络扫描仪
1.检查扫描仪
- 寻找扫描仪
sudo sane-find-scanner
found USB scanner (vendor=0x0424, product=0xec00) at libusb:001:003
- 使用
scanimage
命令测试
sudo scanimage -L
device `pixma:04A9170B_D3CFA4’ is a CANON Canon PIXMA MP450 multi-function peripheral
- 测试扫描
scanimage --format=png --progress > 1.png
扫描模式、分辨率等设置方法,使用
scanimage --help
查看
- 将扫描文件回传本地
scp pi@192.168.3.10:~/1.png ~/1.png
2.配置SANE
- 修改配置文件
/etc/default/saned
,配置打开SANE守护进程
RUN=yes
- 打开/etc/sane.d/saned.conf并添加如下内容,24为子网掩码,作用是让SANE接收192.168.3.1~192.168.3.255地址段的IP
data_portrange = 10000 - 10100
192.168.3.0/24
- 配置SANE权限,上面使用
sane-find-scanner
搜索到的打印机,注意这部分libusb:001:003
,使用如下命令查看权限
ls -l /dev/bus/usb/001
total 0
crw-rw-r-- 1 root root 189, 0 Jan 24 21:45 001
crw-rw-r-- 1 root root 189, 1 Jan 24 18:17 002
crw-rw-r-- 1 root root 189, 2 Jan 24 18:17 003
crw-rw-r–+ 1 root lp 189, 3 Jan 24 21:51 004
usermod -a -G lp saned
- 重启sane,将sane添加到启动项并检查它的status
sudo systemctl start saned.socket
sudo systemctl enable saned.socket
sudo systemctl status saned.socket
3.使用SANE客户端进行扫描
在这里选择一个客户端,这里是一个Windows的客户端,填写树莓派的IP就可以扫描了,扫描前可以配置更高的分辨率。
四、基于scanimage命令,搭建Web扫描仪
目标
由于SANE客户端需要安装到电脑上,无法在手机等任意设备上随时使用,而且使用中出现了不稳定的情况,因此考虑放弃使用SANE,开发一套新的网络扫描仪使用环境。
树莓派上搭建一个HTTP服务器,手机、电脑可以通过IP地址访扫描操作页面。页面具备扫描操作、扫描配置、下载扫描结果、查看历史扫描等功能。目前功能正在开发中,敬请期待!