总结
电子报纸照片展示屏
详情请见那个GitHub页面
介绍
通过这个项目,我将一台搭载Waveshare 7.5英寸电子纸显示屏的树莓派Zero 2 W,改造成了一款动态照片浏览器。它能从Firebase存储中获取图片,并在显示时叠加时钟图案。我为祖父母制作了这个项目,作为2024年圣诞节的礼物。他们对此爱不释手!对于那些远离亲人的人来说,这是一份极具意义的礼物,能让他们以一种特别的方式保持联系。这块电子纸显示屏将时刻提醒着他们,你始终陪伴在他们
组件
所需零件
-
Waveshare 7.5 英寸电子纸 HAT 开发板
-
树莓派 Zero 2 W 版
-
聚乳酸
- 任何用于3D打印的标准PLAフィラメント均可。
- 螺丝和螺母
- 4个M2.5螺丝
- 4个M2.5规格的螺母
3D打印零件
STL 文件
该项目包含用于电子纸显示屏框架的 3D 可打印文件。您可以在 STL 文件夹中找到这些文件:
- 框架底座.stl文件
- Frame_Lid.stl
使用您偏爱的 3D 打印软件来打印这些部件。请确保您的打印机设置符合 PLA 耗材的使用要求。
组装
-
打印相框:
- 使用提供的STL文件,打印Frame_Base.stl和Frame_Lid.stl文件。
-
组装显示屏:
- 使用M2.5螺丝和螺母,将Waveshare电子纸HAT模块安装到树莓派Zero 2 W主板上。
- 将树莓派
- 连接电源:
- 确保树莓派
软件安装程序
1.准备你的树莓派
开始操作前,请确保您的树莓派 Zero 2 W 已满足以下条件:
-
配置了最新操作系统:
- 安装树莓派操作系统
-
已连接到网络:
- 编辑 wpa_supplicant.conf 文件,将您的 Wi-Fi 凭证添加到其中。
- 已启用 SSH:
- 将名为 ssh 的空文件(不带任何扩展名)放置在 SD 卡的启动分区中,以启用 SSH 功能。
示例 wpa_supplicant.conf 文件:
国家=美国2. 安装依赖包
通过 SSH 连接到您的树莓派,并安装所需的软件包:
sudo apt update注意事项:
-
Python 3:确保你的树莓派上安装了 Python 3。你可以使用以下命令检查其版本:
python3 --version -
pip3:应该可以使用 Python 包安装器了。如果不行,可以通过以下命令进行安装:
sudo apt install -y python3-pip - Waveshare 电子纸资源库:与电子纸显示屏进行通信需要使用 Waveshare-ePd 库。请确保该库与您所使用的特定电子纸型号兼容。
3.配置脚本
-
克隆仓库:
请将 "yourusername" 和 "your-repo-name" 替换为您实际的 GitHub 用户名和仓库名称。
git clone https://github.com/yourusername/your-repo-name.git -
编辑配置文件:
打开 eink.py 脚本,将占位符路径和设置替换为您自己的值。
运行 nano eink.py 脚本配置部分:
# ============================# 配置(请将以下内容替换为您自己的设置)# ============================- 缓存目录:用于存储缓存图像的目录。
- 字体路径:您的TrueType字体文件所在的路径。
- 显示屏宽度和高度:您的电子纸显示屏的分辨率。
- 图像显示时长:每张图片显示的时间(以秒为单位)。
- 时钟更新间隔时间:时钟更新的间隔时间(以秒为单位)。
- 火力基地凭证路径:通往你的 Firebase 服务账户 JSON 文件的路径。
- FIREBASE_BUCKET_NAME:您的 Firebase 存储桶名称。
- 文件夹名称:Firebase Storage中用于存储图像的文件夹。
- 设置集合用于显示设置的 Firestore 集合和文档名称。
保存并退出:
按 CTRL + X 组合键,然后按 Y,再按回车键,即可保存更改并退出编辑器。
4.上传Firebase配置文件
安全地将您的 Firebase 服务账户 JSON 文件传输到树莓派上。您可以使用本地计算机上的 scp 命令进行传输:
scp /path/to/your/firebase-service-account.json pi@your_pi_ip:/path/to/your/firebase-service-account.json将“/path/to/your/firebase-service-account.json”替换为本地计算机上的实际路径,并将“/path/to/your/firebase-service-account.json”替换为树莓派上的目标路径。
示例:
scp ~/Downloads/firebase-service-account.json pi@192.168.1.100:/home/pi/your-repo-name/firebase-service-account.json确保权限设置正确:
在树莓派上,为 Firebase 凭证文件设置适当的权限:
chmod 600 /home/pi/your-repo-name/firebase-service-account.json5.设置在系统启动时自动运行的脚本程序
若想确保树莓派启动并连接到网络后脚本能自动运行,请将其设置为 systemd 服务。
-
创建服务文件:
sudo nano /etc/systemd/system/eink.service -
添加以下内容:
[单元]描述=电子纸照片展示服务- 执行启动命令:通向 Python 解释器和你的脚本的路径。
- 工作目录:你的脚本所在的目录。
- 用户:用户需以(默认用户名为pi)身份运行该脚本。
-
重新加载 systemd 并启用该服务:
执行以下命令: -
检查服务状态:
sudo systemctl status eink.service确保该服务处于活动状态,且运行无误。
运行项目
组装和配置完成后,电子纸显示屏将自动开始显示来自Firebase存储的图像,并根据用户设置更新时钟时间。
添加图片
-
将图片上传至 Firebase 存储服务:
- 导航至你的 Firebase 控制台。
- 前往存储并将图片上传至指定的文件夹名称下。
- 支持的图像格式:
- 确保图片格式符合要求(例如,JPEG、PNG等)。
更新设置
-
Firestore 配置:
- 导航至Firestore请在您的 Firebase 控制台中进行操作。
- 找到 SETTINGS_COLLECTION 和 SETTINGS_DOCUMENT 两个项。
-
可用设置:
{"show_clock": true,"show_photos": true,"timezone": "America/New_York"}- 显示时钟(布尔值):是否显示时钟。
- 展示照片(布尔值):是否显示照片。
- 时区(字符串):时钟所属的时区(例如,“America/New_York”)。
- 修改设置:
- 您可以随时更新这些设置,脚本会根据配置的间隔时间自动获取最新的设置信息。
故障排除
-
字体未找到:
- 确保脚本中的 FONT_PATH 指向一个有效的 TrueType 字体文件。
-
火基
- 请确认 Firebase 凭证文件存在于指定路径中,并且拥有必要的权限。
-
显示问题:
- 检查树莓派与电子纸显示屏之间的连接情况。
- 确保正确的电子纸库(waveshare-epd)已安装到位。
-
服务无法启动:
- 使用以下命令检查 systemd 服务的状态:
- 检查日志是否有任何错误,并确保服务文件中的所有路径都正确无误。
-
网络问题:
- 确认树莓派已成功连接到互联网。
- 确保 Wi-Fi 凭证在 wpa_supplicant.conf 文件中正确配置。
- 图片下载失败:
- 请确保 Firebase Storage 中的图片是公开可访问的,或者确保服务账户拥有必要的访问权限。
- 检查网络连接情况。
Etiketler
Model Kaynağı
