树莓派设备喷墨打印机定时打印

买了款喷墨打印机,为了防堵喷头,直接上代码吧

树莓派型号:树莓派 zero w 板子

打印机型号:HP Smart Tank 510 series

python版本:Python 3.9.2 

原因:树莓派和打印机都并非一直开机。本人也并非一直在家。为了方便家人使用,所以写入树莓派zero。想起来了就把树莓派插电,不用了就直接拔。树莓派开机后会执行python,会循环判断打印机是否在线,直到打印机开机后py会访问打印机数据记录到数据库中,并判断是否要打印测试页,以达到使用打印机的目的。

感觉没必要一直开着树莓派和打印机。毕竟打印机有eprint功能,如果打印机常开,用python在服务器上做一个脚本来定时发邮件给打印机打印就可以了。或者邮箱里定时发送邮件给打印机就更省事了。

分析打印机的数据后,所以加入了sqlite的数据库用于判断时间和已打印的纸张数,并用python自带的http服务来查看sqlite数据。

比较麻烦的地方就是最下面的html读取sqlite数据。html毕竟是客户端执行的,办法总比困难多。

html界面:

开机执行:

sudo nano /etc/rc.local

exit 0 之前加入  /home/user/Work/print/hp.sh start

hp.sh 代码

#!/bin/sh
count=`ps -ef |grep http.server |grep -v "grep" |wc -l`
if [ $count -eq 0 ];then
    sudo /usr/bin/python3 -m http.server 80 --directory /home/user/Work/print &
fi

sleep 5
sudo /usr/bin/python3 /home/user/Work/print/hp.py &

定期执行,每天11:00,16:00 各执行一次

crontab -e

加入
0 11,16 * * * python /home/user/Work/print/hp.py >> /home/user/Work/print/hp.log

sqlite代码:

DROP TABLE IF EXISTS "log";
CREATE TABLE "log" (
  "id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  "total" integer,
  "total_hb" integer,
  "total_cs" integer,
  "total_kz" integer,
  "total_sz" integer,
  "creat" datetime,
  "result" TEXT
);

python代码:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*- 
import os,sys,time
import sqlite3
import requests
import xmltodict
import urllib3
from datetime import datetime
import cups
import socket


def get_url(url: str) -> None:
    try:
        headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
                'Accept': '*/*', 'Accept-Encoding': 'gzip', 'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7,mt;q=0.6'}
        response = requests.get(url, headers=headers, verify=False,timeout=20) 
        html=response.text
        result=[1,html] 
    except r
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值