如何用树莓派构建 WiFi 相框

DIY 一个数字照片框,从云端串流照片。
228 位读者喜欢这个。
Vector, generic Raspberry Pi board

数字相框真的很棒,因为它们让您可以欣赏照片,而无需将其打印出来。此外,添加和删除数字文件比打开传统相框并在想要显示新照片时更换里面的照片容易得多。即便如此,从数字相框中取出 SD 卡、USB 存储棒或其他存储设备,将其插入电脑,并将新照片复制到其中,仍然有点麻烦。

一个更简单的选择是可以通过 WiFi 从云服务获取图片的数字相框。以下是如何制作一个。

收集你的材料

  • 旧的 TFT LCD 屏幕
  • HDMI 转 DVI 电缆(因为 TFT 屏幕支持 DVI)
  • 树莓派 3
  • Micro SD 卡
  • 树莓派电源
  • 键盘
  • 鼠标(可选)

使用电缆将树莓派连接到显示器,并连接电源。

安装 Raspbian

按照这些说明,下载 Raspbian 并刷入 Micro SD 卡。将 Micro SD 卡插入树莓派,启动它,并配置你的 WiFi。我的新 Raspbian 安装后的第一个操作通常是运行 sudo raspi-config。在那里,我在“网络选项”中更改主机名(例如,改为 picframe),并在“接口选项”中启用 SSH 以远程操作树莓派。使用(例如)ssh pi@picframe 连接到树莓派。

构建并安装云客户端

我使用 Nextcloud 来同步我的图片,但你可以使用 NFS、Dropbox 或任何其他适合你需求的方式将图片上传到相框。

如果你使用 Nextcloud,请按照这些说明获取 Raspbian 的客户端。这对于在你的相框上放置新图片非常方便,并且会给你你可能在台式电脑上熟悉的客户端应用程序。当将客户端应用程序连接到你的 Nextcloud 服务器时,请确保仅选择你将存储要显示在相框上的图片的文件夹。

设置幻灯片放映

我发现设置幻灯片放映最简单的方法是使用一个专门为此目的构建的轻量级幻灯片放映项目。有一些替代方案,例如配置屏幕保护程序,但此应用程序似乎是最容易设置的。

在你的树莓派上,从最新版本下载二进制文件,解压缩它们,并将它们移动到一个可执行文件夹

wget https://github.com/NautiluX/slide/releases/download/v0.9.0/slide_pi_stretch_0.9.0.tar.gz
tar xf slide_pi_stretch_0.9.0.tar.gz
mv slide_0.9.0/slide /usr/local/bin/

安装依赖项

sudo apt install libexif12 qt5-default

通过执行以下命令运行幻灯片放映(不要忘记修改你的图片路径)。如果你通过 SSH 访问你的树莓派,请设置 DISPLAY 变量以在连接到树莓派的显示器上启动幻灯片放映。

DISPLAY=:0.0 slide -p /home/pi/nextcloud/picframe

自动启动幻灯片放映

要在 Raspbian Stretch 上自动启动幻灯片放映,请创建以下文件夹并在其中添加一个 autostart 文件

mkdir -p /home/pi/.config/lxsession/LXDE/
vi /home/pi/.config/lxsession/LXDE/autostart

插入以下命令以自动启动你的幻灯片放映。可以根据你的需要调整 slide 命令

@xset s noblank 
@xset s off 
@xset -dpms
@slide -p -t 60 -o 200 -p /home/pi/nextcloud/picframe

通过编辑以下文件禁用屏幕空白,树莓派通常会在 10 分钟后执行此操作

vi /etc/lightdm/lightdm.conf

并在末尾添加这两行

[SeatDefaults]
xserver-command=X -s 0 -dpms

配置开机时间表

你可以使用两个简单的 cron 任务来安排你的相框在特定时间打开和关闭。例如,假设你希望它在早上 7 点自动打开,并在晚上 11 点关闭。运行 crontab -e 并插入以下两行。

0 23 * * * /opt/vc/bin/tvservice -o
0 7 * * * /opt/vc/bin/tvservice -p && sudo systemctl restart display-manager

请注意,这不会打开和关闭树莓派的电源;它只会关闭 HDMI,这将关闭屏幕。第一行将在晚上 11 点关闭 HDMI。第二行将在早上 7 点恢复显示并重启显示管理器。

添加最后的润色

通过遵循这些简单的步骤,你可以创建自己的 WiFi 相框。如果你想让它看起来更漂亮,请为显示器制作一个木制框架。

User profile image.
Manuel 于 2013 年在德国海德堡完成了应用计算机科学专业的学习,并获得了硕士学位,此后不久开始担任软件开发人员。他对使用和结合各种技术来构建新的酷炫事物感兴趣,力求使生活(包括他自己的生活)更轻松。

9 条评论

感谢分享。

感谢这篇文章并指出 NextCloud。他们的软件安全可靠吗?

嗨 JJ,

感谢您的评论!我个人使用 nextcloud 在设备之间同步我的数据,并且对它非常满意。

回复 ,作者:JJ

嗨 Manuel,

感谢您分享的相框构建。我一直在寻找一种安全的方法来做到这一点。

话虽如此,我卡在了幻灯片放映的自动启动上。如果您能提供任何故障排除建议,我将不胜感激。

谢谢,Quantz

嗨,

很高兴看到您正在尝试!您遇到的问题是什么?
你在树莓派上使用什么操作系统?我的运行在 raspbian stretch 上,配置如文章所述。

亲切的问候,
Manuel

回复 ,作者:Quantz

嗨 Manuel,

感谢您的回复和帮助意愿。我正在运行一个 RPi 3 Model B,安装了来自 NOOBS 3.0.0 的这个 Stretch 镜像

Linux picframe 4.14.98-v7+ #1200 SMP Tue Feb 12 20:27:48 GMT 2019 armv7l GNU/Linux

我已按照您的教程中的所有说明进行操作,但配置开机时间表除外。此外,我已经验证了 Autostart 文件在适当的目录中

/home/pi/.config/lxsession/LXDE/autostart

主要问题是,在重新启动时,幻灯片放映没有启动。但是,如果我在终端中输入命令或命令,幻灯片放映确实可以工作。

再次感谢!-Quantz

回复 ,作者:ntlx

Manuel,

我之前尝试发布的幻灯片放映命令是

DISPLAY=:0.0 slide -p /home/pi/nextcloud/picframe

slide -p -t 60 -o 200 -p /home/pi/nextcloud/picframe

-Quantz

回复 ,作者:Quantz

请确保 /etc/lightdm/lightdm.conf 和 /home/pi/.config/lxsession/LXDE/autostart 的内容看起来与文章中描述的一致。另外,请确保未安装 xscreensaver。
如果这没有帮助,请尝试使用 /home/pi/.config/lxsession/LXDE-pi/autostart 而不是 /home/pi/.config/lxsession/LXDE/autostart

作为后备方案,你可以每分钟左右在 cron 任务中使用以下脚本来启动幻灯片放映:https://github.com/NautiluX/slide/blob/master/sbin/run_once.sh
参数应与 slide 二进制文件相同。

回复 ,作者:Quantz

再次问好 Manuel,

将目录名称更改为 LXDE-pi 解决了问题。再次非常感谢您的所有帮助。在启动和运行这个项目的过程中,我学到了很多东西。

干杯,Quantz

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© 2025 open-source.net.cn. All rights reserved.