我正在做一个项目,需要一个可以自动打开和关闭的显示器。
为了实现这一点,我想到使用一个 Linux 盒子(更具体地说是 Raspberry Pi)并通过 HDMI-CEC 连接到电视,然后使用一些 cron 作业在指定的时间打开和关闭电视。
但后来我想知道......这可能吗?
并且..关于如何实现自动打开和关闭显示器的目标还有其他建议吗?
答案1
我在工作中大约有 8 台机器用于数字标牌显示。我使用 DPMS 在晚上 10 点关闭它们,并在早上 6:45 重新打开它们xset
。只有两个 cron 作业:
45 6 * * * root su <user who is auto-logged into the gui> -c "xset -display :0 dpms force on"
0 22 * * * root su <user who is auto-logged into the gui> -c "xset -display :0 dpms force off"
当然,这只有当计算机提供显示器上显示的内容时才有效。
答案2
答案3
当然可以,不过我猜你的项目已经结束了。2024 年的答案依赖于现代 HDMI-CEC 实现,例如包v4l-实用程序尤其是它的cec-ctl命令。要让它工作,只需将
dtoverlay=vc4-kms-v3d
在您的/boot/config.txt
文件中,这将为您提供/dev/cec0
第一个 HDMI 端口的设备。然后您可以执行一些拓扑发现命令,例如
sudo cec-ctl -S
例如,它可以显示你的电视是设备0
和昵称TV
。现在你几乎完成了,你可以使用关闭电视
sudo cec-ctl --standby --to TV
并且通常使用
sudo cec-ctl --user-control-pressed ui-cmd=power-on-function --to TV
显然,在同一总线上拥有多个 HDMI 端口、多个设备、多个不同的 HDMI-CEC 标准可能需要一些额外的参数,甚至可能会搞砸总线配置,所以要小心……但如果你设法让所有设备都正常工作,那会很有趣:你可以访问总线上的所有设备,向它们发送命令,更改它们的配置,模拟它们的远程按钮按下等等。sudo
在与我的配置环境(即分布)不同的配置环境中,也可能没有必要piCorePlayer
。
请查看STM32 维基百科找到更多的例子。