电源设计技术信息网站

订阅电子杂志   English   繁體中文   日本語   한국어

下载中心

TECH INFORaspberry Pi初学者指南

使用Raspberry Pi 3自制智能相框和日历—第一部分

这篇文章来源于DevicePlus.com英语网站的翻译稿。

smart picture frame

本教程的第一部分将带您逐步构建与您的谷歌账户关联并且能够显示家庭日历和相片的智能相框/日历,

请参考文章 Raspberry Pi 3 B型 WiFi 和蓝牙设置指南

该项目将使用具有Raspbian Jessie操作系统的Raspberry Pi 3 B型进行构建。我将指导您完成Raspberry Pi (RPi)配置的必要步骤以及安装使该项目能够正常运行的其他软件。

从概念到部署,每个项目都有特定的步骤。通过本教程的第一部分,我们将进行到产出原型的阶段。在接下来的部分中将进行测试和修订,直到最终完成的产品能够在任何墙壁上都看起来很棒。

 

硬件

  • • 电脑: Lenovo T420 Windows 10
  • • MicroSD 卡: Kingston MicroSDHC 8GB w/ SD 适配器
  • • 微处理器: Raspberry Pi 3 B型 (1GB)
  • • 显示器: HannsG HL161 16英寸显示器
  • • VGA 适配器: 用于PC的支持HDMI输入到VGA的通用适配器转换器
  • • 电源: 通用有源USB 2 4端口集线器
  • • 电缆: USB Type-A / Micro-B; 以及 USB Type-A / Type-B
  • • 键盘: 通用USB键盘
  • • 鼠标: 通用USB鼠标
  • • WiFi 路由器: 通用WiFi路由器

 

软件

  • • SD Formatter v4
  • • Win32 Disk Imager 0.9
  • • Raspbian Jessie Pixel

 

附加组件

  • • overGrive
  • • Feh
  • • xprintidle
  • • unclutter

 

外部资源

  • • 谷歌账户
    1. 1. 谷歌云盘
    2. 2. 谷歌日历

 

从理念到开发

从概念到部署,项目开发包含许多步骤。

smart picture frame

步骤I —概念

想必您有过这种体验:每天早晨,早餐桌上都会有一些关于日程安排的即兴讨论,诸如谁会在何日何地以及什么时间干什么。这种日常讨论已经变成了一个大杂烩,被每个人放入手机的提醒中和写在墙上的白板上。我曾经有个想法是把日历放在白板上,这样我们就可以看到每周的时间安排了。后来想那为什么不使用Raspberry Pi (RPi)和显示器将其设置成智能日历呢?而且既然不需要一直查看日历,那为什么不将相框的幻灯片放进去来显示一些家庭照片呢?

smart picture frame

步骤 II —设计

第1部分:使用Chromium,RPi将启动到KIOSK模式,并显示创建的谷歌日历。经过一段时间后,将在Chromium上以全屏模式启动图像幻灯片放映。这些图像将通过名为overGrive的附加程序从谷歌云盘上下载和同步。

第2部分:使用PIR运动传感器,当有人直接站在显示器前时,一个脚本将会被编程以在幻灯片和日历之间进行切换。然后,将整个项目安装在框架中并进行布线,使其看起来像相框。

步骤 III—原型

A. 设置磁盘映像(PC)

1) 下载“RASPBIAN JESSIE WITH PIXEL” 磁盘映像 [ https://www.raspberrypi.org/downloads/raspbian/ ] 并将其解压缩到您的硬盘上。

2) 格式化8GB MicroSD 卡。 我使用SD Formatter v4 [ https://www.sdcard.org/downloads/formatter_4/ ].

3) 将下载的磁盘映像写入microSD卡。我使用 Win32 Disk Imager [ https://sourceforge.net/projects/win32diskimager/ ].

B. 组装 Raspberry Pi 3

1) 将microSD 插入RPi背面的插槽中 (见视频)

2) 将键盘和鼠标连接到USB端口(蓝色)

3) 将显示器连接到HDMI 适配器,然后将其插入 RPi (黑色)

4) 将有源USB 集线器连接到RPi(粉红色)上的micro-b USB端口

smart picture frame

C. 启动RPi,并进行配置与更新

smart picture frame

1) Raspberry Pi (RPi) 可直接引导到Raspbian PIXEL GUI中。

smart picture frame

2) 点击菜单栏右上角的WiFi图标,以连接您的本地路由器和网络。

3) 通过单机菜单栏左上方的RPi图标并在“首选项”菜单选项中选择“Raspberry Pi配置”来更改RPi密码。

smart picture frame

4) 当您进行Raspberry Pi (RPi)配置时,单击“定位”选项,然后将RPi配置为您所在的区域。

I. 选择您的语言环境

smart picture frame

II. 设置您的时区

smart picture frame

III. 设置您的键盘

smart picture frame

IV. 设置您的WiFi国家

smart picture frame

5) 系统将会在完成后要求重新启动

smart picture frame

D. 登录或注册谷歌账号(在RPi上)

1) 通过点击菜单栏左上方的蓝色地球来打开Chromium网络浏览器

2) 在网址栏输入www.google.com

3) 点击屏幕上的【登录】按钮

4) 使用您的谷歌账号进行登录,或者如果您还没有账号,请选择页面底部的【创建账户】

E. 创建您的日历 (在笔记本电脑上)

1) 前往 www.google.com

2) 登录谷歌账号

3) 单击右上方的3×3正方形框

smart picture frame

4) 从下拉列表中选择日历图标

smart picture frame

5) 为您的家人创建和设置日历(见视频)

F. 设置您的谷歌云盘(在笔记本电脑上)

1) 前往 www.google.com

2) 登录您的谷歌账号

3) 单击右上方3×3正方形方框

smart picture frame

4) 从下拉列表中选择驱动器图标

smart picture frame

5) 为您的照片创建和设置文件夹(见视频)

注意:幻灯片所显示的图像应适合于您所使用的显示器。考虑放置横向图像而非纵向图像以使其达到最好的显示效果。

G. 设置与您的谷歌云盘文件夹同步(在RPi上)

1) 通过单击左上角的RPi图标打开终端窗口

2) 在 [附件]中选择[终端]应用程序

3) 键入以下命令以安装overGrive所需要的附件

I. sudo apt-get update #检查Raspbian Jessie的更新

smart picture frame

II. sudo apt-get install gir1.2-appindicator3-0.1 indicator-application libappindicator1 libappindicator3-1 libdbusmenu-glib4 libdbusmenu-gtk3-4 libdbusmenu-gtk4 libindicator3-7 libindicator7 libnotify-bin lsb-release python-pip python-pkg-resources python-pyinotify python-setuptools #安装overGrive附件

4) 打开Chromium网页浏览器,然后前往该链接以下载overGrive安装程序:
https://www.thefanclub.co.za/sites/default/files/public/overgrive/overgrive_3.2.3_all.deb

5) 下载文件后,安装 overGrive

smart picture frame

6) 单击菜单栏左上方的“文件夹”图标

I. 单击 [File] ,然后选择 [Create New…] -> [Folder]

II. 将新文件夹命名为“Google_Drive” #Linux 系统不能很好地处理文件中的空格,因此请确保使用下划线。

7) 单击菜单栏左上方的RPi 图标

I. 单击 [Accessories],然后选择 [overGrive] 应用程序。

8) 单击窗口中的 [Change] 按钮,然后选择左侧 [Home] 菜单下的 [Google_Drive] 文件夹。

smart picture frame

9) 单击窗口中的 [Connect account] 按钮,然后按照此处的剩余安装说明进行操作 www.thefanclub.co.za/overgrive/installation-instructions-raspberrypi

注意:overGrive是 一个完善的 Google Drive API 解决方案。购买许可证的一次性费用为$ 4.99 ,如果您想先对其进行测试,则可以先试用14天。

H. 设置幻灯片程序和启动脚本(在RPi上)

1) 通过单击左上角的RPi标志打开终端窗口

2) 在 [Accessories] 选项中选择 [Terminal] 应用程序

3) 输入以下指令来安装幻灯片所需程序

I. sudo apt-get install feh #按照提示操作

II. sudo apt-get install xprintidle #按照提示操作

III. sudo apt-get install xscreensaver #按照提示操作

4) 在终端输入以下指令来设置幻灯片脚本

I. cd /home/pi/Google_Drive/Picture_Frame #打开Picture_Frame文件夹

II. sudo nano slideshow_start.sh #创建脚本以启动幻灯片放映

a. 将以下代码从J.A.McNaughton复制并粘贴到slideshow_start.sh 脚本中 [ https://raw.githubusercontent.com/jamcnaughton/useful-linux-scripts/master/simplescreensaver/screensaverfull.sh ]

#!/bin/bash
# screensaverfull.sh

# url: ###
# This script is licensed under GNU GPL version 2.0 or above

# Uses elements from lightsOn.sh
# Copyright (c) 2011 iye.cba at gmail com
# url: https://github.com/iye/lightsOn
# This script is licensed under GNU GPL version 2.0 or above

# Description: ####
# screensaverfull.sh needs xprintidle and feh to work.

# HOW TO USE: Start the script with the number of seconds you want the checks
# for fullscreen to be done. Example:
# "./screensaver.sh 120"

DIR=$( cd "$( dirname "$0" )" && pwd)
delay=$1


# If argument empty, use 60 seconds as default.
if [ -z "$1" ];then
   delay=60
fi

# If argument is not integer quit.
if [[ $1 = *[^0-9]* ]]; then
   echo "The Argument \"$1\" is not valid, not an integer"
   exit 1
fi

IDLE_TIME=$(($delay*1000))

cd $DIR
while sleep $((1)); do
   idle=$(xprintidle)
   if [ $idle -ge $IDLE_TIME ]; then
       feh -x -F -r -Y -Z -z -A slideshow -D 7 -d $DIR
   fi
done

exit 0

 

b. 按下【Ctrl】+【x】键退出并保存, 然后按下【y】键表示同意,最后按下【Enter】键写入文件

III. sudo chmod 775 /home/pi/Google_Drive/Picture_Frame/slideshow_start.sh #使此脚本可执行

IV. sudo nano ~/.config/lxsession/LXDE-pi/autostart #打开自动启动文件

a. 将以下内容添加到文件末尾
@/home/pi/Google_Drive/Picture_Frame/slideshow_start.sh

b. 按下【Ctrl】+【x】键退出并保存, 然后按下【y】键表示同意,最后按下【Enter】键写入文件

5) 通过单击菜单栏左上方RPi标志下的 [Preferences] 菜单中的[Screensaver] 应用程序来关闭屏幕保护程序。

单击窗口中的 [Mode:] 选项,然后选择 [Disable Screen Saver]

smart picture frame

注意:要退出幻灯片播放,请按【Esc】键

I. 设置Chromium以加载日历(在RPi上)

1) 打开Chromium 网页浏览器并前往www.google.com

2) 单击3×3 方框下的 [Calendar] 图标

3) [Copy] 日历的url

4) 单击url窗口右侧的三个点,以访问“自定义设置和控制”

I. 选择 [Settings]

smart picture frame

a. 找到 [On startup] 标题,然后选择 [Open a specific page or set of pages] 按钮

b. 单击行尾的蓝色 [Set pages]

将日历的url [Paste] [Add a new page] 框中,然后单击 [OK]

smart picture frame

II. 退出Chromium浏览器

5) 再次启动Chromium浏览器,以确保添加了日历页面

注意:如果谷歌提示您再次使用用户名和密码登录,请选择 [Stay signed in] 选项

smart picture frame

6) sudo nano ~/.config/lxsession/LXDE-pi/autostart #打开自动启动文件

I. 将以下内容添加到文件末尾:

@/usr/bin/chromiumbrowser noerordialogs disablesessioncrashedbubble disableinfobars kiosk #在kiosk(全屏)模式下打开Chromium浏览器,不显示错误消息或禁用崩溃气泡提示和信息栏。

II. 按下【Ctrl】+【x】键退出并保存, 然后按下【y】键表示同意,最后按下【Enter】键写入文件

7) sudo apt-get install unclutter #在全屏模式下安装删除鼠标光标的程序

8) sudo nano ~/.config/lxsession/LXDE-pi/autostart #打开自动启动文件

I. 将以下内容添加到文件末尾:@unclutter -idle 0.1 -root

II. 按下【Ctrl】+【x】键退出并保存, 然后按下【y】键表示同意,最后按下【Enter】键写入文件

步骤 II — 测试

现在,我们已经整理好了所有的程序和代码,需要关闭RPi并重新启动,以确保一切均能正常自动启动(见视频)。

 

结论

该项目到目前为止有了一个很好的开始。第一部分是关于配置和设置Raspberry Pi的内容,目的是为了显示日历并加载幻灯片。第二部分我们将对项目进行收尾:将Raspberry Pi安装在显示器后面,构建一个框架,然后安装运动传感器。

请继续关注下一篇文章!

smart picture frame

© 2015 谷歌公司保留所有权。谷歌及谷歌标志均为谷歌公司的注册商标。

Garrett LaFrance
Garrett LaFrance

Garrett是一位在技术、计算机科学和编程领域拥有32年经验的技术专家。他能够构建专业的IoT原型系统,并认为理解是创新的关键。

分享到社交媒体