惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
博客园_首页
博客园 - 【当耐特】
V
Visual Studio Blog
博客园 - 叶小钗
月光博客
月光博客
美团技术团队
J
Java Code Geeks
小众软件
小众软件
Y
Y Combinator Blog
博客园 - Franky
Martin Fowler
Martin Fowler
博客园 - 聂微东
Microsoft Azure Blog
Microsoft Azure Blog
IT之家
IT之家
MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
阮一峰的网络日志
阮一峰的网络日志
酷 壳 – CoolShell
酷 壳 – CoolShell
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
云风的 BLOG
云风的 BLOG

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
『又来瞎鼓捣』外接显示器不能自动调亮度?我花 10 块钱做了...
2019-07-21 · via 少数派

前言

前阵子朋友问我。

说外接显示器亮度没法随光线变化。

能不能想个办法搞定它?

我想了想。

在淘宝花了 12 块钱,买了个光线传感器:

然后接上树莓派,鼓捣了一下午。

终于实现了。

视频:https://v.qq.com/x/page/c0902fu8g7m.html

原理

其实这个原理不麻烦。

既然没有光线传感器,就外接一个。

获取到了光线变化。

想办法用树莓派来控制显示器亮度就行了。

画成图就是这样:

其中最麻烦的步骤其实是控制显示器亮度这里。

后来发现显示器们有个 DDC/CI 协议,全称「Display Data Channel Command Interface」。

简单说,就是无论你是什么显示器,只要支持这个协议。

就可以实现通过命令来控制亮度。

这样一来。

前面有数据,后面可控制,整个流程就跑通了。

下面开搞!

实现

实现总共需要两部分。

树莓派端和电脑端。

树莓派需要搞定接入传感器和控制电脑。

电脑需要搞定通过 DDC/CI 协议命令控制显示器。

由于我这里只有 Macbook,所以就只提供 For Mac 的方法了。

不过你可以研究下。

电脑端

安装 ddcctl

这个就是前面提到的,可以通过 Mac 命令行控制显示器的工具:

ddcctl 的 Github 主页在文章末尾[1]

1、克隆仓库到本地:

git clone https://github.com/kfix/ddcctl[2]

2、按照教程安装:

调试 ddcctl

在终端输入以下命令,试试看亮度会不会降低:

ddcctl -d 1 -b 亮度数值(1~100)

树莓派

采购光线传感器

因为树莓派不带数模/数模转换。

也就是说获取的光线亮度只能是 0 或 1,不能是其他的数字。

所以要自配一个模数转换器:PCF8591,某宝买一个就是了。

连线

到了之后把 PCF8591 接上 P5 的短路帽:

然后开始接线,一共 4 条线需要接。

很简单:

PCF8591 -> 树莓派

•VCC -> 1 号针脚•GND -> 9 号针脚•SDA -> 3 号针脚•SCI -> 5 号针脚

附一张针脚图:

装 Wiring Pi,开启 I2C & SPI

SSH 连接到树莓派,输入:

sudo apt-get install wiringpi -y

这样就安装完了。

接着输入:

sudo raspi-config

找到「Interfacing Options」:

一个一个按回车都打开就行了:

配置无秘钥访问

在 Mac 上依次选择「偏好设置 - 共享 - 远程登录」,打开开关:

在树莓派上输入:

成功的话就是下图这样:

下载我写的程序

写程序,我用 Wiring Pi 写的,好久没用 C 语言了。

在树莓派上直接 Clone:

git clone https://github.com/Sunbelife/auto_brightness_for_mac[3]

然后进入目录:

cd auto_brightness_for_mac

打开 auto_brightness.c 文件,修改图里标出的部分。

改成你自己电脑的用户名和 IP:

编译调试

编译运行一下:

依次输入:

然后用手捂住光线感应器,看看显示器亮度会不会降低。

用灯晃光线感应器,看看显示器亮度会不会提高。

如果有效果的话,就 OK 了。

调整数值

不过一般的情况应该是效果和想象有差别,尤其是光线感应部分。

因为每个人的光线环境都不同。

我写的这个比较简易。

需要你手动设置光线档位。

一共三挡,两个数字。

0-185,185-240,240 以上。

第一次调试的时候控制台会一直输出亮度值。

你可以多测试几次,找到阈值。

然后在图中位置修改代码:

重新编译运行即可。

配置开机自动运行

最后一步是配置开启自启,让树莓派开机的时候就自动生效。

方法挺多的,这里提供一种:

sudo nano /etc/rc.local

在 exit 0; 之前添加:

./home/pi/Desktop/auto_brightness_for_mac/run

然后按下 Ctrl + O,回车保存。

再按下 Ctrl + X,回车退出。

下次重启的时候就生效了。

附链接

[1] ddcctl 的 Github 主页在文章末尾: https://github.com/kfix/ddcctl
[2]https://github.com/kfix/ddcctl
[3]https://github.com/Sunbelife/auto_brightness_for_mac