用于编译基于 OpenWeatherMap 的天气预报以在基于 pi3d 的图片框架中显示的模块
项目描述
先决条件
- 覆盆子 3B+ 或更高版本
- 带有桌面和推荐软件的 Raspberry Pi OS(32 位)
- OpenWeatherMap API 密钥(免费,需要注册)
安装
从这里下载 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
进一步的话题
软件
- 基于每个图片文件夹的配置选项等等(尚未完成)
- 家庭助理集成(尚未完成)
- 图像刮板(尚未完成)
硬件
- 海波龙,唤醒之光
- 存在检测、温湿度测量、房间亮度传感器(尚未完成)
学分
- Wolfgang Männel 让我在他的网站上开始使用 pi3d 相框
- 感谢 pi3d 团队的 Paddy Gaunt 编写 PictureFrame2020.py
项目详情
关
pi3dpf_ns_pi3dpf_owm -0.1.357.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 8d502e1c068115d90ae66dd90ad2184fc63fb04290114e308cbce57a1c63de95 |
|
| MD5 | c9cd6b990e587cb8432ed32229c64068 |
|
| 布莱克2-256 | 50a51f9d282044ee43e0301f103b85470ed33163582383a92625afaf4f8bc1a9 |