如何用树莓派制作WiFi相框
DIY 一个数码相框,图片流来自云端。
数码相框真的很好,因为它可以让你查看你自己的相片而不必打印出来。更棒的是,当你想要展示一张新的相片的时候,增加和删除数字图片要比打开传统的相框然后替换里面的相框更简单。不过,这还是需要一点手动的操作,比如从数字相框取出 SD 卡、U 盘或者其他的存储介质,然后把存储介质接入电脑,接着再复制图片进入存储介质。
一个更简单的选项是数字相框通过 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
配置上电时间
你可以安排你的相框什么时候打开和关闭通过使用两个简单的定时任务。例如,你想在上午 7 点自动打开,在晚上 11 点自动关闭。运行 crontab -e
并且输入下面的两行:
0 23 * * * /opt/vc/bin/tvservice -o 0 7 * * * /opt/vc/bin/tvservice -p && sudo systemctl restart display-manager