
手持迷你取色器
简介
手持光谱取色器,ESP32-S3 与 AS7341 实时测色,自动匹配 RAL/PANTONE 色卡;彩屏本地显示,蓝牙同步「色笺」App,Type-C 充电,便携易用,适合设计配色与印刷对色。
简介:手持光谱取色器,ESP32-S3 与 AS7341 实时测色,自动匹配 RAL/PANTONE 色卡;彩屏本地显示,蓝牙同步「色笺」App,Type-C 充电,便携易用,适合设计配色与印刷对色。开源协议
:MIT License
描述
手持光谱取色器(Handheld Color Picker)
视频链接
项目简介
本项目是一套手持式光谱取色系统,由 ESP32-S3 硬件端、配套 Android 移动应用「色笺」及色库数据工具链组成。设备通过 AMS AS7341 11 通道光谱传感器采集被测物体反射光谱,经白板标定与 k-NN 查表模型转换为 RGB 色值,并在 240×320 IPS 屏上实时显示取色器界面;同时支持 BLE 蓝牙与手机 App 联动,以及 WiFi Web 页面进行光谱查看、RAL 标定与 PWM 调试。
适用于工业设计配色、印刷对色、涂料/纺织色号比对、教学演示等需要便携、可量化取色的场景。
项目功能
硬件端
- 实时光谱采集:AS7341 读取 F1–F8 八通道 + Clear/NIR,默认 500 ms 测量周期
- 本地取色 UI:ST7789 竖屏显示色块预览、HEX 色值、RAL/PANTONE 最近匹配及 RGB 滑条
- 内置标准色库:约 6821 条 RAL K7、RAL D2、PANTONE C/U 色号,支持 ΔE 最近邻匹配
- RAL 查表标定:Web 端白板标定 + 最多 216 点 RAL 反射率采样,k-NN + IDW 插值预测 RGB
- 双通道 PWM 补光:IO4 / IO5 独立 PWM 控制(默认 20% 占空比),可通过 Web 调节
- 蓝牙 BLE 广播:设备名
AS7341-Light,JSON 推送 RGB/CMYK/反射率/匹配色号/电量等 - WiFi Web 控制台:连接路由器后访问
http://<设备IP>/,查看光谱曲线、标定管理、色库状态 - 充电与电量(可选):BQ25890 读取 VBAT/VBUS/充电状态
移动应用「色笺」
- 蓝牙扫描、配对、自动重连,实时显示连接/采样/电量状态
- 接收硬件 JSON 测色数据,展示纯色预览及 HEX、RGB、CMYK
- 色值一键复制、本地历史记录保存/删除/批量清空
- 设备管理、采样提醒(震动/提示音)、色值精度调节
色库工具链
- 爬取/整理 RAL、PANTONE 色卡数据
- 合并输出 ESP32 可用的统一色表,编译前自动生成内置色库
项目参数
| 类别 | 参数 |
|---|---|
| 主控 | ESP32-S3(4D Systems Gen4 R8N16,8MB PSRAM + 16MB Flash) |
| 光谱传感器 | AS7341-DLGM,I2C 地址 0x39,8 通道 415–680 nm |
| 显示屏 | ST7789,240×320 IPS,SPI 40 MHz |
| 充电管理 | BQ25890RTWR,支持 USB Type-C 输入 |
| 补光 LED | XL-3528UWC + PAM2804AAB010 恒流驱动,PWM 调光 |
| 内置色库 | 6821 条(RAL K7 / RAL D2 / PANTONE C / PANTONE U) |
| 标定容量 | 最多 216 个 RAL 反射率标定点,k-NN 邻居数 K=4 |
| 测量间隔 | 500 ms |
| UI 刷新 | 400 ms |
| 通信 | BLE NimBLE + WiFi 802.11(可配置仅 WiFi / 仅 BLE) |
| 串口调试 | 115200 baud |
| 固件框架 | PlatformIO + ESP-IDF |
AS7341 默认采集参数
- ATIME = 100,ASTEP = 999,AGAIN = 64×
- 板载 LED 驱动档位默认 10(电流约 (drive+2)×2 mA)
GPIO 分配
| 功能 | GPIO |
|---|---|
| I2C SDA(AS7341) | 15 |
| I2C SCL(AS7341) | 7 |
| SPI MOSI(LCD) | 10 |
| SPI SCLK(LCD) | 9 |
| LCD CS | 11 |
| LCD DC | 12 |
| LCD RST | 13 |
| LCD 背光 BL | 14 |
| PWM 补光 A / B | 4 / 5 |
原理解析(硬件说明)
本项目由主控板、LCD 显示板、补光 LED 板、光谱传感器板四部分组成。整体工作流程:USB/电池供电 → ESP32-S3 驱动 AS7341 采集反射光谱 → 算法转换为 RGB → 本地 LCD 显示并通过 BLE/WiFi 对外输出。
系统架构图

主控与电源电路



- 供电接口:USB Type-C,CC1/CC2 配置识别;TPD2EUSB30DRTR 做 USB D+/D- ESD 保护
- 充电管理:BQ25890RTWR 负责锂电池充放电、VBUS 检测;HNTC0805 NTC 监测电池温度
- 电源转换:TPS629210 Buck 降压 + TPS7A0218 LDO 提供 1.8 V 等低压轨;SMBJ15CA TVS 过压保护
- 主控:ESP32-S3,引出 BOOT0/EN 按键(TS-1088 轻触开关 SW1/SW2)
- I2C 切换:PCA9306DCUR 电平转换/总线切换,AS7341 与 BQ25890 共用 I2C 但 SDA/SCL 引脚对调
- 外接接口:FPC 柔性排线座连接 LCD 板、LED 板、传感器板;排针便于调试
LCD 显示电路

- 通过 FPC 与主控 SPI 相连
- 信号线:LCD_VDD、LCD_DC、LCD_CS、LCD_SCLK、LCD_MOSI、LCD_RST、LCD_BL_PWM(背光 PWM)
- 背光驱动:AO3400A N 沟道 MOS 管控制背光通断/调光
- 屏体连接器对接 240×320 IPS 模组
补光 LED 电路

- XL-3528UWC 贴片白光 LED 作为测色补光源
- PAM2804AAB010 升压恒流 LED 驱动,EN/SW/VIN 引脚配合 PWM 实现亮度调节
- 通过 FPC 与主控 MCU_PWM_A / MCU_PWM_B(IO4/IO5)连接
光谱传感器电路

- AS7341-DLGM 11 通道光谱传感器,I2C 接口(COL_SDA / COL_SCL)
- FPC 六线连接:VDD、SCL、GND、LDR(LED)、PGND、GPIO/INT、SDA
- SDA/SCL 各接 4.7 kΩ 上拉;100 nF 去耦电容稳定 VDD
3D 模型建模
外壳采用一体式手持结构,兼顾单手握持、测色口对准与内部 PCB 堆叠空间。建模时以主控板、LCD 模组、传感器板、补光 LED 板实际尺寸为约束,预留 Type-C 充电口、按键、屏幕开窗及传感器测色窗口。
设计要点
- 外形尺寸:紧凑便携,适合单手操作;握持区做圆角,顶部为显示与测色功能区
- 测色窗口:AS7341 感光孔与补光 LED 同轴布置,窗口距被测面保持固定工作距离
- 屏幕开窗:240×320 竖屏可视区域完整露出,四周留装配公差与密封槽、
整机外观总览


软件代码
extern "C" void app_main(void)
{
board_gpio_init();
nvs_flash_init();
sensor_state_init();
color_model_init();
color_db_init();
as7341_app_start();
bq25890_app_start();
st7789_lcd_start();
xTaskCreate(network_task, "network", 12288, NULL, 3, NULL);
}
移动应用「色笺」:色笺 @ Gitee
注意事项
- I2C 引脚勿接错:AS7341 使用 SDA=GPIO15、SCL=GPIO7;启用 BQ25890 监测时 SDA/SCL 引脚对调,固件会通过 PCA9306 自动切换,硬件接线须与原理图一致
- LCD SPI 引脚冲突:修改 LCD 引脚配置时,不可与 I2C(7/15)及 PWM(4/5)冲突
- WiFi 凭据:烧录前务必填写正确的路由器 SSID 和密码
- BLE 与 App 配对:App 扫描设备名
AS7341-Light;App 已兼容新旧 NimBLE UUID 字节序 - 标定流程:首次使用建议通过 Web 页完成白板标定并采集 ≥4 个 RAL 标定点后启用查表预测,否则仅使用反射率 fallback 算法,精度有限
- 补光一致性:测色时保持补光 PWM 占空比稳定,避免环境光变化影响读数
- 移动 App 运行环境:蓝牙功能需在 Android 真机 App 环境运行,浏览器/H5 不支持 BLE
- 色库版权:RAL/PANTONE 色号数据仅供个人学习研究,商用请遵守相应品牌授权规定
实物图
整机正面

实机使用图

手机 App「色笺」蓝牙测色界面


设计图
未生成预览图,请在编辑器重新保存一次BOM
暂无BOM
克隆工程知识产权声明&复刻说明
本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。
请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。










