跳过主要内容

如何制作树莓派动力数码相框

树莓派数码相框
(图片来源:Tom’s Hardware)

数码相框是一个小屏幕,可以放在办公室或厨房的桌子上,显示您喜爱的图片,并定期更换。第一个商业数码相框是在数码相机问世后不久于1990年代推出的。数字相框在2020年重新流行起来,可能是因为人们更多地呆在家里。

在本教程中,我们将使用MagicMirror和GooglePhotos模块将树莓派变成一个数码相框。请注意,在原魔镜项目中,我们将跳过安装2-way mirror。考虑这个项目,“没有镜子的魔镜”。

你需要什么

时机:计划至少1小时来完成这个项目。

本教程的大部分内容都基于终端命令。如果你不熟悉Raspberry Pi上的终端命令,我们强烈建议你回顾一下树莓派用户需要知道的25+ Linux命令第一。

设置你的谷歌相册

要开始这个项目,您需要设置一个谷歌相册。我们建议您创建一个新的相册,并添加5到10张照片。你可以稍后添加更多的照片。相册里的照片越多,你的树莓派数码相框加载的时间就越长。

  1. 在现有笔记本电脑或台式电脑上的首选浏览器上,导航到https://photos.google.com/
  2. 在左菜单列中,单击相册
  3. 点击创建相册
  4. 命名你的相册一些容易记住的东西。我推荐你的专辑名为“MagicMirror”。
  5. 一旦你创建了自己的相册,添加5到10张照片到你的MagicMirror相册.您可以通过拖放来上传新照片,也可以从现有照片中选择要添加的照片。

基本魔镜安装在树莓派上

1.连接你的屏幕,鼠标和键盘给你的树莓皮。

2.穿上你的覆盆子皮。如果你还没有micro - sd卡,请参阅我们的文章如何设置第一次树莓派或者如何做一个无头覆盆子皮

3.更新树莓皮操作系统。打开终端,输入:

Sudo apt-get update && Sudo apt-get upgrade

(图片来源:Tom’s Hardware)

4.执行一个在我们的树莓派上基本安装魔镜,并在官方魔镜页面上提供说明.这些命令应该可以相当快地执行npm安装根据您的Raspberry Pi型号和互联网速度,使用最长时间。在有高速互联网的树莓皮4上,npm安装执行时间大约为5分钟。

curl - sl https://deb.nodesource.com/setup_10.x | sudo - e bash - sudo apt install -y nodejs git clone https://github.com/MichMich/MagicMirror cd MagicMirror npm install cp config/config.js示例config/config.js NPM run start

(图片来源:Tom’s Hardware)

您的Raspberry Pi屏幕现在应该填充默认的魔镜屏幕。

(图片来源:Tom’s Hardware)

5.打击Ctrl-M最小化并返回Pi桌面。

6.按Ctrl-C停止魔镜。这个步骤是安装显示谷歌照片的模块所必需的。

(图片来源:Tom’s Hardware)

谷歌照片在魔镜上的安装

1.在Pi终端上安装谷歌图片模块

cd ~/MagicMirror/modules git clone https://github.com/eouia/MMM-GooglePhotos.git

2.打开你的Chromium浏览器导航到谷歌API控制台登录您的gmail帐户凭证。完整的链接:https://console.developers.google.com/

3.创建新项目名字随你选我将我的项目命名为MagicMirror123。

4.点击“+ Create Credentials”并选择“OAuth client ID”。

(图片来源:Tom’s Hardware)

5.对于授权类型,选择“电视和有限输入设备”从下拉菜单中

(图片来源:Tom’s Hardware)

6.单击“创建”创建OAuth客户端ID。

(图片来源:Tom’s Hardware)

7.单击“OK”返回项目的主凭据页面。

(图片来源:Tom’s Hardware)

8.在您刚刚创建的OAuth 2.0客户端ID上,单击向下箭头下载您的证书。

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

9从Raspberry Pi桌面打开文件管理器,导航到下载和重命名刚才从' client_secret-x '下载的文件。json”到“credentials.json”。

(图片来源:Tom’s Hardware)

10.移动新重命名的“credentials.json”文件到你的MagicMirror/modules/MMM-GooglePhotos文件夹

11.在你的终端,运行以下命令验证您的Pi。

cd ~/MagicMirror/modules/MMM-GooglePhotos节点generate_token.js

12选择您的帐户当谷歌提示您授权您的设备时。

(图片来源:Tom’s Hardware)

13.向下滚动,点击“高级”,然后“转到魔镜(不安全)”。

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

14格兰特MagicMirror权限在以下屏幕中为每个提示点击“允许”。

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

15复制成功代码粘贴到您的终端。按回车。

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

16.打开文件管理器导航到/home/pi/ magicmirror /modules/MMM-GooglePhotos或键入' ls '在你的终端(在MMM-GooglePhotos目录)查看所有文件。如果您将token.json视为此文件夹中的文件,则表示您已成功授权您的设备访问您的Google照片。

(图片来源:Tom’s Hardware)

17.打开config.js文件进行编辑/home/pi/MagicMirror / config文件夹。

(图片来源:Tom’s Hardware)

18.在config.js文件中,注释掉除通知外的所有模块通过在时钟模块之前添加' /* ',在Newsfeed模块之后添加' */ '。

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

19.将MMM-GooglePhotos的代码添加到模块部分你的config.js文件。

{模块:“MMM谷歌照片”,位置:“全屏上方”,配置:{albums:[“MagicMirror”],//设置您的相册名称。更新间隔:1000*60,//最短10秒。排序:“随机”,“新”,“旧”,“随机”上传相册:null,//仅由`create_uploadable_album.js`创建的相册。条件:{fromDate:null,//或“2018-03”,RFC…当前可用的格式:null,//或“2019-12-25”,minWidth:null,//或400 maxWidth:null,//或8000 minHeight:null,//或400 maxHeight:null,//或8000 minWHRatio:null,maxWHRatio:null,},showWidth:800,//将其设置为屏幕宽度的分辨率showHeight:480,//将其设置为屏幕高度的分辨率时间格式:“YYYY/MM/DD HH:MM”,//或可以使用相对值。},

20.在MMM-GooglePhotos的配置部分,输入您创建的相册的名称在此项目开始时,在“albums”参数中。

(图片来源:Tom’s Hardware)

21.设置您希望查看照片的顺序在sort参数中。

  • New =最新的图像将首先显示
  • Old =图像将从最古老到最新显示
  • 随机=图像将以随机顺序显示

22.设置改变图像的频率在updateInterval参数中。默认值是60秒。

23设置在参数“showWidth”和“showHeight”中使用的屏幕分辨率。7英寸Raspberry Pi屏幕的默认分辨率为800 x 480。

(图片来源:Tom’s Hardware)

24将更改保存在config.js中。

25.在你的终端,运行命令“npm run start”重新启动魔镜。当Pi从谷歌相册中提取图像时,会有30秒或更长的延迟。您的Pi需要保持与internet的连接以显示您的图像。

(图片来源:Tom’s Hardware)

26为了阻止魔镜,在终端中按Ctrl-M,然后按Ctrl-C。你可以继续在config.js文件中进行调整,直到你对图像的显示方式感到满意为止。

27.在这一点上,您可以开始添加更多图像到您的谷歌照片相册。你的树莓派魔镜数码相框应该自动更新任何新图像。

启动魔镜

如果重新启动Pi,则每次启动数码相框时都需要输入命令“npm run start”。让我们设置Raspberry Pi以在靴子上显示数字相框。

1.在Raspberry Pi终端中运行以下命令安装PM2PM2是一个守护进程管理器,用于保持应用程序持续运行。在这个项目中,我们将利用PM2来连续运行魔镜作为我们的数码相框。

安装-g pm2启动

(图片来源:Tom’s Hardware)

2.您的终端将提供下一个命令。复制并粘贴命令进入你的终端。

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi——hp /home/pi . sh

(图片来源:Tom’s Hardware)

(图片来源:Tom’s Hardware)

3.创建shell脚本mm.sh。

CD ~纳米mm.sh

(图片来源:Tom’s Hardware)

4.在mm.sh输入的命令启动魔镜。

npm start . cd ./MagicMirror DISPLAY=:0 npm start . cd ./MagicMirror DISPLAY=:0

(图片来源:Tom’s Hardware)

5.按Ctrl-X退出,“y”保存mm.sh,和回车,返回终端。

(图片来源:Tom’s Hardware)

6.将mm.sh文件制作为可执行文件使用chmod命令。

chmod + x mm.sh

(图片来源:Tom’s Hardware)

7.从PM2开始你的魔镜。

pm2开始mm.sh

(图片来源:Tom’s Hardware)

你的魔镜应该会自动重新开始运行。现在,您可以通过重新启动来测试自动启动功能。

(图片来源:Tom’s Hardware)

禁用屏幕消隐

你可能会发现,设置好自动数码相框后,树莓派的屏幕在10分钟后就会变成空白。在这种情况下,您可以禁用屏幕空白。

1.进入“树莓派配置”菜单。从Raspberry Pi开始菜单中,单击“首选项”并选择“Raspberry Pi配置”。

(图片来源:Tom’s Hardware)

2.将屏幕空白切换为禁用在显示选项卡上。选择“显示”选项卡。对于“屏幕空白”选择禁用。单击OK。

(图片来源:Tom’s Hardware)

3.单击是当系统提示您重新启动时。

5评论 论坛的评论
  • ad9fd
    管理说:
    在这个项目中,我们将用Raspberry Pi构建一个数字相框,并从谷歌照片中动态更新照片。

    如何建立一个树莓Pi供电的数码相框:阅读更多
    这无疑是一个很好的学习练习。然而,它的7英寸屏幕花费了77英镑,而一个新的7英寸数码相框在易趣上只花了27英镑。主要的经验是,购买通常比建造更好。
    回复
  • torbjorn.lindgren
    ad9fd说:
    这无疑是一个很好的学习练习。然而,它的7英寸屏幕花费了77英镑,而一个新的7英寸数码相框在易趣上只花了27英镑。主要的经验是,购买通常比建造更好。
    是的,两个都有糟糕的分辨率,特别是800 x480 !
    90年代的人打电话来要回他们的烂屏幕!:)
    原作者应该为建议构建一个7英寸/800x480显示器的相框而感到羞愧,我认为即使是5英寸显示器,这个分辨率也是最好的边际分辨率。
    但是这只是从经济角度加强了这一点,因为你可以用低于7“/800x480的显示器获得分辨率为1920x1080的7”相框(包括装运),而不必考虑其他组件!
    回复
  • 凯利海拉诺
    管理说:
    在这个项目中,我们将用Raspberry Pi构建一个数字相框,并从谷歌照片中动态更新照片。

    如何建立一个树莓Pi供电的数码相框:阅读更多

    这些说明遗漏了MMM GooglePhotos文档中关于“Get token.js”的一个非常关键的项目https://github.com/ChrisAcrobat/MMM-GooglePhotos#get-身份验证和albumid
    在第3步和第4步之间,您需要启用Google照片库API,否则OAuth creds将不允许访问这些API,您的日志中会出现403(可通过pm2日志查看)。
    回复
  • Grifi74
    凯利海拉诺说:
    这些说明遗漏了MMM GooglePhotos文档中关于“Get token.js”的一个非常关键的项目https://github.com/ChrisAcrobat/MMM-GooglePhotos#get-身份验证和albumid
    在第3步和第4步之间,您需要启用Google照片库API,否则OAuth creds将不允许访问这些API,您的日志中会出现403(可通过pm2日志查看)。
    谢谢你的来信。这真的很有帮助。
    回复
  • 庞蒂亚克土匪
    优秀的项目!我今天完成了,但不幸的是我的屏幕卡住了。加载……'之后,我做了npm run start。是因为我的网络可能很慢吗?我的样本相册里几乎没有20张照片。什么好主意吗?

    最终编辑:我能够使用@kellyhirano的建议并修复这个问题。我现在有一个RPi供电的数码相框:)

    编辑2:这是我得到的确切错误
    加载时卡住- githubmemory
    编辑:事实上,我看到以下错误在我的终端

    Failed to fetch git data for MMM-GooglePhotos: Error: block timeout reached .日志含义
    回复