六一节,赋诗一首

article/2025/3/7 3:04:02

上周四开始感冒发烧,到今天还在咳嗽,所以也就完美错过带女儿过六一节。想想还是不甘心,翻箱倒柜一番又找出了之前做的墨水屏盒子,赋诗一首看看能不能骗过幼儿园小朋友。

盒子里面是个树莓派Zero WH。

老规矩,一步步分解任务:
1、做个python脚本用来显示内容。简单起见有三个参数,标题、第一行、第二行;
2、从windows自带的字体库中复制相应的字体文件给树莓派供墨水屏显示时使用;
3、可以访问树莓派上的一个网页,自行定义要展示的内容。具体实现本质上就是还需要一个php调用第一步中的python。


第一步里,点亮墨水屏可以参考 https://blog.csdn.net/ki1381/article/details/89929279?spm=1001.2014.3001.5501。官方也提供了示例,想要显示自己的文字参照着改写代码就行。
python脚本接收参数也不难,用好sys.argv[]即可。sys.argv[0]是脚本本身,自定的参数从1开始编号。

第二步里,直接复制windows\fonts目录下相关ttc或ttf(比如msyh就是微软雅黑)文件到树莓派的某个目录(比如创建/usr/share/fonts/msfonts目录),然后cd到该目录,运行下mkfontscale命令即可。

第三步里有坑。我遇到了php调用python不支持中文参数的问题。网上找了几种解决方案,最终采用了php里urlencode中文,python脚本里urllib.parse.unquote的办法。

以下为测试代码:

1、HTML:

<!DOCTYPE html><html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head><meta charset="utf-8" /><title>test</title>
</head>
<body><form action="show.php" method="post">标题:<input type="text" style="width:300px" name="txt1"/><br/>行一:<input type="text" style="width:300px" name="txt2" /><br />行二:<input type="text" style="width:300px" name="txt3" /><br /><hr/><input type="submit" value="upload"/> <input type="reset" value="reset" /></form>
</body>
</html>

 2、PHP:

<?php$t = $_POST['txt1'];
$l1 = $_POST['txt2'];
$l2 = $_POST['txt3'];$t = urlencode($t);
$l1 = urlencode($l1);
$l2 = urlencode($l2);$cmd = "sudo python3 /home/pi/src/ePaper/python3/show.py $t $l1 $l2";
#echo $cmd;
exec($cmd);?>

 3、PYTHON:


#!/usr/bin/python3
# -*- coding:utf-8 -*-import epd2in9
import time
import sys
from PIL import Image,ImageDraw,ImageFont
import traceback
import urllib.parseepd = epd2in9.EPD()
epd.init(epd.lut_full_update)lineTitle = '';
lineC1 = '';
lineC2 = '';if len(sys.argv) == 4:lineTitle = urllib.parse.unquote(sys.argv[1])lineC1 = urllib.parse.unquote(sys.argv[2])lineC2 = urllib.parse.unquote(sys.argv[3])try:epd.Clear(0xFF)Himage = Image.new('1', (epd2in9.EPD_HEIGHT, epd2in9.EPD_WIDTH), 255)  # 255: clear the framedraw = ImageDraw.Draw(Himage)fontTitle = ImageFont.truetype('/usr/share/fonts/msfonts/msyh.ttc', 18)fontMain = ImageFont.truetype('/usr/share/fonts/truetype/wqy/wqy-microhei.ttc', 25)fontMain7 = ImageFont.truetype('/usr/share/fonts/msfonts/STSONG.TTF',18)draw.text((0, 0), lineTitle, font = fontTitle, fill = 0)    draw.line((0, 30, 295, 26), fill = 0)draw.text((0, 36), lineC1, font = fontMain7, fill = 0)draw.text((0, 80), lineC2, font = fontMain7, fill = 0)epd.display(epd.getbuffer(Himage))Himage = Nonedraw = None
except:print('traceback.format_exc():\n%s',traceback.format_exc())exit()

 


http://chatgpt.dhexx.cn/article/IDSDl4dt.shtml

相关文章

编程中生日蜡烛问题c语言,C语言题目。生日攻击。会的麻烦下。。谢谢。

满意答案 q126elua 2013.07.01 采纳率&#xff1a;48% 等级&#xff1a;12 已帮助&#xff1a;8506人 //此程序在硬件上调试通过 //本程序的单片机晶振采用11.0592M #include sbit speakerP1^2; unsigned char timer0h,timer0l,time; //生日歌 code unsigned char sszymmh[…

BZOJ3098. Hash Killer II(生日攻击)

Description 这天天气不错&#xff0c;hzhwcmhf神犇给VFleaKing出了一道题&#xff1a; 给你一个长度为N的字符串S&#xff0c;求有多少个不同的长度为L的子串。 子串的定义是S[l]、S[l 1]、… S[r]这样连续的一段。 两个字符串被认为是不同的当且仅当某个位置上的字符不同。 …

生日悖论与Hash函数的攻击

生日悖论与Hash函数的攻击 生日悖论问题什么是生日悖论问题生日悖论问题求解 Hash函数的攻击两个集合相交问题Hash函数的攻击方法Yuval攻击 生日悖论问题 什么是生日悖论问题 假定每个人的生日是等概率的&#xff0c;在不考虑闰年的情况下每年有365天。在k个人中至少有两个人…

消息完整性和哈希函数 哈希碰撞与生日攻击 HMAC (Message Integrity and Hash Function)

消息完整性和哈希函数 1. Message Integrity - 消息的完整性1.1 消息安全性和消息完整性的联系 2. Message Authentication Code - 消息认证码2.1 Defination2.2 MAC 安全的定义2.2 Replay Attacks - MAC的不足2.3 MAC Contruction for Fixed-length Message2.4 (Basic) CBC - …

哈希碰撞与生日攻击

一、哈希碰撞是什么&#xff1f; 所谓哈希&#xff08;hash&#xff09;&#xff0c;就是将不同的输入映射成独一无二的、固定长度的值&#xff08;又称"哈希值"&#xff09;。它是最常见的软件运算之一。 如果不同的输入得到了同一个哈希值&#xff0c;就发生了&q…

用生日攻击方法求解离散对数问题(C语言实现)-大三密码学实验

实验原理&#xff1a; 生日攻击&#xff1a;输入为生成元a的阶p-1和元b&#xff0c;输出为离散对数。设置两个长度为p的列表&#xff1a; 1&#xff09;列表1包含&#xff0c;通过随机选取p个k得到&#xff1b; …

抗碰撞性、生日攻击及安全散列函数结构解析

回顾一下&#xff0c;密码学的上篇是完整性&#xff0c;完整性的保证是由一段定长的散列&#xff0c;俗称tag来确定的。又因为tag是定长的&#xff0c;而需要确保完整性的内容种类却可以认为是无限的。因此总有tag(mi)tag(mj)&#xff0c;mi ! mj&#xff0c;因此我们要引入抗碰…

密码学之生日攻击 离散对数问题求解 python实现

生日攻击 离散对数问题&#xff08; DLP &#xff09; 给定素数 p, α \alpha α, β \beta β 是模 p 非零的整数&#xff0c;令 β α x m o d p \beta \alpha^x\mod p βαxmodp &#xff0c;则求 x 的问题称为离散对数问题。 生日攻击是一种密码攻击&#xff0c;它利…

Hash函数与生日攻击

简介 Hash函数也叫杂凑函数、散列函数、哈希函数&#xff0c;可以把消息或数据压缩成固定长度的摘要 性质 等长性&#xff1a;给出任意的输入&#xff0c;得到的输出&#xff08;摘要&#xff09;长度不变。比如sha-1得到的摘要固定是160位&#xff0c;md5为128位单向性&#…

【Hash函数与生日攻击】

文章目录 一、Hash函数Hash函数关于密钥s散列函数定义碰撞发现实验-可忽略的散列函数安全性的三个典型的安全水平通用生日攻击 参考文献 一、Hash函数 Hash函数 将任意长度字符串压缩成短字符串的函数 关于密钥s 散列函数定义 碰撞发现实验-可忽略的 最强的安全性要求&…

生日攻击理解

1.什么是哈希碰撞&#xff1f;产生哈希碰撞的原因是什么&#xff1f;如何避免&#xff1f; 两个不同的输入&#xff0c;经过哈希算法后&#xff0c;得到了同样的哈希值&#xff0c;就叫做哈希碰撞。由于通常的哈希算法中&#xff0c;哈希值的空间远小于输入的空间&#xff0c;这…

哈希碰撞与生日相同概率

一、哈希碰撞是什么&#xff1f; 所谓哈希&#xff08;hash&#xff09;&#xff0c;就是将不同的输入映射成独一无二的、固定长度的值&#xff08;又称"哈希值"&#xff09;。它是最常见的软件运算之一。 如果不同的输入得到了同一个哈希值&#xff0c;就发生了&q…

密码学系列之:生日攻击

简介 生日攻击其实是一个概率论的问题&#xff0c;也就是说一个看起来很难发生的事情&#xff0c;事实上它发生的概率却很大。这种主观上和事实上的概率差距&#xff0c;让随机攻击成功的几率变的更高&#xff0c;这样的攻击就叫做生日攻击。 生日问题的由来 生日问题也叫做…

linux 清空redis缓存

1&#xff0c;进入目录redis下src目录。 #cd redis-2.8.17/src 2&#xff0c;执行redis-cli文件 #./redis-cli 3&#xff0c;执行命令&#xff1a;flushall&#xff0c;出现OK代表执行成功 #flushall 4&#xff0c;退出命令exit #exit 实例&#xff1a;

【redis】linux服务器清空redis

redis-cli 进入redis命令行 flushall 清除所有 如果报出“NOAUTH Authentication required.”错误&#xff0c;那么需要用密码授权 使用 auth [密码] 就可以继续操作了

redis数据清空脚本

redis服务经常因服务器内存不够用而自动死掉。需要经常连接进去做数据清理后启动服务。 所以写了个脚本每天清理一遍。 echo "flushall" | redis-cli -p 7000 -a password echo "flushall" | redis-cli -p 7001 -a password echo "flushall" |…

docker部署python程序清空redis数据

这里还是要推荐下小编的Python学习群: 823137423,不管你是小白还是大牛,小编我都欢迎 ,不定期分享干货,包括小编自己整理的一份2019年最新的Python资料和0基础入门教程视频,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。 docker部署python程序清空redis数据 线…

Windows 清空Redis数据

1.redis安装目录下输入cmd 2.redis-cli -p 端口号 3.flushdb 清除当前数据库缓存 4.flushall 清除整个redis所有缓存

Laravel 清空 Redis 队列

先说问题&#xff0c;我的网站搜索使用的 Laravel Scout Algolia 因为 Algolia 是收费的&#xff0c;免费版有容量限制。免费版应该是如下的限制&#xff1a; 一旦你的 计划超出配额&#xff0c;那么 Laravel 队列就会一直失败。失败他会重试导致 &#xff0c;队列一直累加、…

教你Redis 如何清空所有数据

这篇文章主要介绍了Redis 如何清空所有数据&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。如有错误或未考虑完全的地方&#xff0c;望不吝赐教 Redis 清空所有数据步骤总结 1、打开cmd 命令窗口&#xff0c;切换至Redis 安装目录下的bin文件夹 2、在cmd 命…