站内搜索
发作品签到
esp32相机测光计
专业版

esp32相机测光计

简介

这是一个低成本的相机测光计,基于ESP32开发,适用于胶卷相机测光。可通过旋转编码器与按钮调节iso,光圈与EV,实时计算曝光值

简介:这是一个低成本的相机测光计,基于ESP32开发,适用于胶卷相机测光。可通过旋转编码器与按钮调节iso,光圈与EV,实时计算曝光值
星火计划2025
复刻成本:47

开源协议

GPL 3.0

创建时间:2025-08-04 20:51:43更新时间:2025-12-29 09:22:53

描述

修改记录:
25.11.16 修改了感光板的开关线路,减少了关机功耗。

B站视频链接

【开源】自制低成本相机测光计
视频里面有功能展示和详细的制作过程

写在开头:制作缘由

这个项目起源于我的一位玩胶卷的同学。当时五一和他去漫展嘛,亲身体会到玩胶卷相比数码的麻烦。首先是测光,需要用手机自带的相机或传感器,用一些软件,先根据环境输入光圈和感光,再测当前光强,输出曝光值,然后手动输入到相机,前前后后要十多二十秒的时间。别人数码相机等coser摆好造型了就直接开拍,我们还要人家等个半分钟。 别问为什么不买现成的,问就是现成的相机测光计要两百元往上了(你可以去搜一搜)。当时我就想,这玩意技术含量应该不高啊,为什么不自己做一个——于是乎,就有了这个项目。

其实这个项目6月份初就差不多开始了,不过嘛,这不马上期末了嘛,作业考试一大堆,于是乎只完成了大体的程序设计。然后7月中旬放假后,就马上开始了PCB和外壳等的设计制作。(笑死一半的电路,电路板绘制和部分的3D都是我在补课路上的地铁上做的)

简介

这是一款基于esp32开发的低成本相机测光计,适用于需要手动计算曝光的胶卷相机使用。其可以直接安装在相机的热/冷靴上,并依据感光,光圈,EV等数值计算曝光值并显示。解决了买个现成的专业测光计死贵,拿个手机软件测光又占一支手的问题。

功能及结构介绍

这款测光计以ESP32 WROOM 32E作为主控,利用BH1750FVI数字光强传感器作为光强测量,有以下功能:

  • 两个编码器,两个按钮,调节设定的iso值,光圈值和EV值,并依此来计算当前环境所需要的曝光值。
  • 设定值,光强值及最重要的曝光值显示到一块0.96寸oled屏上。
  • 电量检测,将当前电量值显示在右上角。
  • 睡眠模式,在睡眠模式中进入light-sleep并息屏。大幅延长续航(续航,功耗见下方参数)
  • 右边状态指示灯,绿灯工作模式。左边充电指示灯,充电时红灯,完成充电绿灯。

IMG_20250808_212730.jpg

  • 左右旋钮分别调节光圈值与感光值(1/3步进)
  • 下方左右两个按钮减少/增加EV值(1/3分度)
  • 左右上角充电,状态指示灯

测光计整体采用上下板三明治结构,主控板承载ESP32模块,OLED屏,编码器与按钮,测光板承载BH1750感光芯片,TP4056充电部分与CH340Cusb转串口,两板以左右两个2.54 6p排针相连,中间夹着电池。

外壳为3D打印,下面的支架用于插入相机热/冷靴中,中间用于承载整个三明治结构。外壳与电路主体使用4个8mm m3螺柱连接,左右两边开口用于type c与开关

程序基于arduino开发。由于本人的编程能力就是一坨,大部分代码都是引导DS编写,有些地方大家看个乐呵就行。

关于复刻

如果能合理的利用嘉立创白嫖pcb和3D外壳,整个测光计的成本可以压到40多元,成本算低了。不过嘛。这毕竟是理论成本,实操成本可能要5,60去了,毕竟有些元件,像贴片电阻电容ic啥的,你大概率不会只买一个。这个就看你有没有现成的元件了。

装配过程可能稍微有那么一点麻烦,请根据自己的情况选择复刻。

项目参数

主控:ESP32 WROOM 32E
屏幕:0.96寸单色OLED屏(7p针脚),分辨率128*64
感光:BH1750FVI
测量范围0~65534勒克斯 精度±20
充电:TP4056
电池(设计):3.7v锂电池,200MAH 402030
功耗:

状态功耗续航(200MAH电池)
正常工作180mW(3.7v)~4h
睡眠模式~4mW-
关闭~5μA(TP4056,662K等ic功耗)-

原理解析

1 主体感光部分

ESP32 WROOM 32E作为主控,利用BH1750FVI数字光强传感器作为光强测量,并通过I2C输入至ESP32,。再依据设定的iso与光圈,通过曝光计算公式E=KIT/F^2 ,再依据EV值乘倍数。计算建议曝光,随后在预存的标准曝光值表中寻找最接近的曝光值,并显示至oled屏。两个ec11旋转编码器用于修改设定的iso与光圈值,两个按钮用于调节设定EV。

曝光计算.png

2 电源管理

1,充电
充电部分使用非常常用的TP4056,PROG用4.7k电阻下拉,插口使用一个12p的typeC(既作为充电也作为烧录插口),充电电流约200mA,一个小时可以充满。

2,电量显示
使用一个io作为输入电压检测,判断当前剩余电量,并显示。虽然拿电压测电量有些不准,不过也够用了。
电量显示逻辑:使用io14作为电压检测:

  • 大于2/3(电压约3.80v)显示三格电量(满格)
  • 1/3至2/3(约为3.61~3.8v)显示两格
  • 10%至1/3(约为3.5~3.61)显示一格
  • 小于10%,最后一格闪烁

3,睡眠管理
在无任何操作(如转动电位器,按EV按钮)5分钟后,oled屏幕关闭,ESP32进入light-sleep模式。随后当有任何操作(转动电位器,按EV按钮)从睡眠中唤醒(gpio中断唤醒),重新进入工作。

3,usb转串口

使用CH340C,并搭建由两个SS8050搭建的自动烧录电路。插口使用12p的typeC。

物理结构

上下板设计,上板(主控板),焊接有ESP32模块,主要交互的两个ec11旋转编码器和两个按钮,以及OLED显示模块和一共4个指示灯(充电指示与状态指示)。背面中间粘贴电池。

下板承载感光ic,充电电路,usb转串口烧录电路。typeC插口与主开关在板子两边。

两个板由左右两个6p排针相连,上下板两组排针对称放置,互为镜像。

外壳为3D打印,分为两个部分,主体部分与前面板,3D文件在下面的附件里。
壳体下方为热靴卡槽,中间用来容纳电路三明治结构,板与外壳通过4个m3 8mm螺柱连接。

屏幕截图 2025-08-09 133149.png

屏幕截图 2025-08-09 133542.png

制作与装配

除了焊接好的上下板主体,你还需要4个m3 8mm长双通螺柱,8颗m3螺丝,用以连接电路主体和外壳。

结构俯视图:

屏幕截图 2025-08-09 204110.png
1,焊接两板子的贴片元件,建议优先焊接下板(感光板)
2,在下板焊接完贴片后,将4个螺柱在4边孔位用螺丝连接。螺丝从下板的正面拧下去。正面就见4边的螺柱,背面见4个螺丝。

IMG_20250812_12497.jpg
3.将电池粘在下板背面标识的地方,并将正负极线连在板子背面标识的焊盘。

IMG_20250812_120228 .jpg
4,上板(主控板)先焊接各两个旋转编码器和按钮,然后将OLED屏模块的排针从上面插到预定的排针里,由两边的编码器拖着,悬在中间,然后焊接7个针脚。

IMG_20250812_121513.jpg

IMG_20250812_121538.jpg
5,将两个6p排针从上板背面或下板的正面放进去,焊接。
6,此时一共有两个整体,上板整体和下板整体。将下板从上板的背面插入到先前焊接的6p排针中,放到最低,夹住电池。然后再在下板焊接,将两个部分连接在一起,

IMG_20250812_152203.jpg
7,进行程序烧录(步骤见下面),并进行基本的功能测试。
8,确认功能OK后,将整个整体塞入主体外壳中,注意方向,编码器上方为外壳顶,下方为外壳的热靴部分。然后翻个面从外壳的感光方向,在4个孔位安装m3螺丝,将电路整体和外壳相连。

IMG_20250812_135100.jpg

IMG_20250812_135419.jpg
9,最后将前面板从显示屏方向扣进去,然后安装两个旋钮的旋帽。

完成装配!

程序烧录

详细操作见乐鑫官网的烧录。
选择下面附件里面的“light_meter_BH1750_4.ino.bin”进行烧录。

如果你安装的有arduino,可以直接从下面下载源码“light_meter_BH1750_4.ino”并用arduino打开,需要的库在前面的引用include有,然后选择好串口,戳上传

如果你懒得琢磨乐鑫自己的烧录器,可以去试试这个网站esp-launchpad,还是选择附件里面的bin文件。

(注:我也不知为何我自己做的插上电脑没反应,疑似买的ch340c有问题。如果可以的话可以直接拿个现成的开发板烧录好了在上焊台取下来再焊主控板上,我就这样干的(虽说有亿点麻烦)。也请大家如果可以的话看看这个烧录电路有没有啥问题)

注意事项

1,打板两个板子都选择1.6mm板厚
2,按钮记得买6×6×15mm,高度共15mm的,不然外壳装上后会按不到按钮

tb_image_share_1754741707429.jpg.png

3,下板的BH1750 ADDR引脚下拉,另一个上拉的电阻不焊。
(附:这个引脚接GND时,BH1750的I2C地址为 0x23;当ADDR引脚接VCC时,I2C地址为 0x5C。)

屏幕截图 2025-08-09 204646.png

4,OLED屏记得买7P针脚SPI的,别买成4P的了。
5.旋钮记得买小的,直径小于12mm,不然可能档屏幕
(建议购买链接

6,3D外壳上面的一坨东西是我用于安装望远镜上拆下来的红点瞄准镜,可以忽略掉。当然如果你也想跟我这样搞的话,反正卡槽宽度32mm,然后两边的孔位用于拧m3螺丝用于固定,你可以量一量看能不能安装进去。

展示

IMG_20250804_204859_edit_405534309289160.jpg
(这个有长支撑柱的是我上一个版本,考虑到要做的尽量小,所以就去掉了)

IMG_20250812_135813.jpg

IMG_20250812_140331.jpg

IMG_20250812_141352.jpg

最后的一些废话

本人只是个高一牲(虽然过完暑假就高二了),而且做的也比较仓促(唉17号就要开学了,这破学校),很多地方肯定做的不专业,不成熟,错误也可能会有很多,欢迎指出,一起讨论。

觉得还行的话点个赞还是可以的啦

设计图

未生成预览图,请在编辑器重新保存一次

BOM

暂无BOM

3D模型

序号文件名称下载次数
暂无数据

附件

序号文件名称下载次数
1
主体3.stl
62
2
前面板3.stl
51
3
light_meter_BH1750_4.ino
90
4
light_meter_BH1750_4.ino.bin
61
5
Gerber_上板(主控板).zip
44
6
Gerber_下板(感光板).zip
40
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

知识产权声明&复刻说明

本项目为开源硬件项目,其相关的知识产权归创作者所有。创作者在本平台上传该硬件项目仅供平台用户用于学习交流及研究,不包括任何商业性使用,请勿用于商业售卖或其他盈利性的用途;如您认为本项目涉嫌侵犯了您的相关权益,请点击上方“侵权投诉”按钮,我们将按照嘉立创《侵权投诉与申诉规则》进行处理。

请在进行项目复刻时自行验证电路的可行性,并自行辨别该项目是否对您适用。您对复刻项目的任何后果负责,无论何种情况,本平台将不对您在复刻项目时,遇到的任何因开源项目电路设计问题所导致的直接、间接等损害负责。

底部导航