Skip to main content

用于编译基于 OpenWeatherMap 的天气预报以在基于 pi3d 的图片框架中显示的模块

项目描述

先决条件

安装

从这里下载 pi3d-pictureframe Debian 软件包

安装 pi3d-pictureframe 及其依赖项:

sudo apt-get update && sudo apt-get full-upgrade # update OS
cd /var/tmp; wget download-url # download debian package to install picture-frame package
sudo apt-get -f install /var/tmp/pi3d-pictureframe_2020.0719.171252-20b0bf4_armhf.deb # install

sudo raspi-config # change raspberry graphic system configuration
1: set gpu_mem=128        (Option 7 > A3 > Enter 128 or 256)
2: enable FAKE KMS driver (Option 7 > A8 > G2)

基本配置

/home/pi/.pf/pf.config

这是主要的配置文件。您想更改用于显示 OpenWeatherMap 提供的天气信息的城市、语言和单位。

编辑文件:vi /home/pi/.pf/pf.config,然后添加:

[DEFAULT]
#find your city ID: http://bulk.openweathermap.org/sample/city.list.json.gz
OWM_CITY_IDS : 2657896:de ; Zurich, Switzerland. Show weather description in German
OWM_UNITS : metric ; use 'metric' for °C or 'imperial' for °F

CEC_CONTROL_TV                 : no ; if you do not wish the TV turns on when picture frame starts
MQTT_SERVER_NAME               : egnor.nyx.net ; use your MQTT server name instead

笔记:

  • 在上面的 'vi' 命令中,使用 'i' 插入文本,':wq' 保存 pf.config
  • 可以使用冒号 (:) 或等号 (=) 分配 pf.config 参数值
  • 可以使用井号 (#) 或分号 (;) 进行注释。对于内嵌注释,请始终使用 (;)
  • 您可以通过阅读 /opt/venvs/pi3d-pictureframe/lib/python3.7/site-packages/pi3dpf/cfg/pf.config更改任意默认值,将参数名称复制到/home/pi/.pf/pf.config并更改它们的值。
  • 小心在 MQTT_SERVER_NAME 中使用 dns 名称(例如 egnor.nyx.net)。如果重新启动后服务未启动,请改用 IP 地址。

/home/pi/.pf/pf_secrets

此文件保存您的API 密钥和密码。pf.config其值前缀为 的参数!SECRET将从 中检索其有效值pf_secrets

例子:

OWM_API_KEY : !SECRET owm_api_key ; origin: pf.config

编辑文件:vi /home/pi/.pf/pf_secrets,然后添加:

mqtt_password: mqtt-secret
owm_api_key: register-and-get-your-own-key

笔记:

  • 上面的示例演示了如何配置pf.config参数OWM_API_KEY以获取值register-and-get-your-own-key。您需要做的就是将您的 API 密钥添加到pf_secrets.
  • 您需要提供自己的owm_api_key.
  • 更改/home/pi/.pf/pf.config/home/pi/.pf/pf_secrets在应用程序重新启动时生效。
  • MQTT 部分中有关 mqtt 客户端和 mqtt_password 的更多信息。

从命令行启动相框

如果您更喜欢使用 MQTT 启动相框,请跳到下一部分。

作为用户pi,在RPi3B+上:

pi@campero:~ $ source /opt/venvs/pi3d-pictureframe/bin/activate
(pi3d-pictureframe) pi@campero:~/pi3d_demos $ PictureFrame2020.py --help # show available options
(pi3d-pictureframe) pi@campero:~ $ pictureframe.sh -h # show available options from helper script
(pi3d-pictureframe) pi@campero:~ $ pictureframe.sh -a pic-start -r -d /path/to/pictures

作为用户pi,在RPi4上:

 pi@durin:~ $ sudo su - 
 root@durin:~# source /opt/venvs/pi3d-pictureframe/bin/activate
 (pi3d-pictureframe) root@durin:~# pictureframe.sh -a pic-start -d /path/to/pictures

笔记:

  • 您可以将其他 PictureFrame2020.py 命令行选项放入/home/pi/.pf/PictureFrame2020.cli_opts
  • 相框将在后台启动。使用tail -f /home/pi/.pf/logs/PictureFrame2020.log检查错误。在极少数情况下,检查tail -f /home/pi/.pf/logs/PictureFrame2020_mqtt.log.
  • 在 MQTT 部分中查看更方便的控制图片框架的方法

MQTT 代理

要使 MQTT 工作,您需要将上述 MQTT 客户端连接到 MQTT 消息代理。Home Assistant、openHAB 等家庭自动化软件可以使用,但请注意学习曲线……

您可能希望mosquitto使用以下命令在您的 RPi 上安装 MQTT 消息代理sudo apt-get install mosquitto

MQTT 客户端

pi3d-pictureframe 包带有两个 MQTT 客户端:

  • 内置于中,PictureFrame2020.py可通过添加选项--mqtt_server MQTT_SERVER--mqtt_port MQTT_PORT和to 来启用。--mqtt_login MQTT_LOGIN--mqtt_password MQTT_PASSWORD/home/pi/.pf/PictureFrame2020.cli_opts
  • 提供的那个mqtt-for-pi3dpf.py。此服务允许您控制 PictureFrame2020.py 和其他组件,例如 Hyperion。

mqtt-for-pi3dpf.py可以按如下方式启用该服务:

sudo systemctl unmask mqtt-for-pi3dpf.service
sudo systemctl enable mqtt-for-pi3dpf.service
sudo systemctl start  mqtt-for-pi3dpf.service
sudo systemctl status mqtt-for-pi3dpf.service

笔记:

  • 以上systemctl命令需要在重新安装或升级pi3d-pictureframe后执行
  • 如果您希望始终启动 mqtt-for-pi3dpf.service,请执行touch /home/pi/.pf/start.mqtt-for-pi3dpf.service.

mqtt-for-pi3dpf.py订阅以下 MQTT 主题:

  • 开始/停止显示图片
  • 启动/停止普通桌面
  • 显示列表
  • 状态和帮助

检查日志文件:

tail -f /home/pi/.pf/logs/mqtt-for-pi3dpf.log

进一步的话题

软件

  • 基于每个图片文件夹的配置选项等等(尚未完成)
  • 家庭助理集成(尚未完成)
  • 图像刮板(尚未完成)

硬件

学分

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

pi3dpf_ns_pi3dpf_owm-0.1.357.tar.gz (13.6 MB 查看哈希

已上传 source