DIY 显示器亮度自动调节记录存档。
原始记录于 GitHub Gist,本文有稍作改动。
硬件需求:
- 下位机: 包含 I2C 总线的任意 Arduino 兼容设备(例如 Arduino Nano、ESP8266、STM32F103C8T6)
- 传感器: BH1750(5 CNY 包邮)
- 连接线: microUSB x1、杜邦线 10cm若干
- 显示器: 使用 HDMI/DP 连接,支持 DDC/CI 控制亮度
本文实践采用安装有 STM32duino Bootloader 的 STM32F103C8T6 进行。
硬件连接:
- 注意:BH1750 需连接在 STM32F103C8T6 的 I2C1 上(反正就两组,试一下就好了)
程序需要改动的地方:
- Python 脚本 L26: 修改为你开发板的 COM 口序号(*inx 系统上不可用(自行将 VCP 换成 ddcutil 即可))
- Python 脚本 L53: 21 为我这估算的参数,即最大环境亮度测量值等于 55lx 时,对应的最大亮度。算法为:100/(ln(55)+1)+1≈21
执行方法:
- 烧录好 Arduino 程序
- 将开发板连接 PC,记下 COM 口名称
- 修改 Python 脚本
- 坐等亮度随环境光变动