本期带大家自制一款便携式紫外线指数仪。不论是皮肤患者还是爱美的小姐姐,这款小仪器真的非常实用。这款紫外线指数测量仪主要是由Arduino Nano rev3,一个UV传感器,一个直流变压器(用以提高3v电池电压),以及一个小型OLED显示屏构成。
我的主要目标是为了方便携带,这样我就可以在任何时间和任何地方轻松了解紫外线指数。
UltraV.stl.zip
[203209 Bytes at 2018-09-25, 78 次下载]
UltraV_OLED.ino.zip
[2759 Bytes at 2018-09-25, 93 次下载]
1、Arduino Nano rev3
2、ML8511 紫外线传感器
3、128×64 OLED 显示屏(SSD1306)
4、MT3608 DC-DC 变压器
5、CR2电池
6、CR2电池座
7、开关
8、外壳
ML8511是一种紫外线传感器,适用于室内或户外读取紫外线强度。 ML8511内部配有放大器,可根据紫外线强度将光电流转换为电压。这种独特的功能可以为ADC等外部电路提供了简便的接口。在省电模式下,通常待机电流为0.1μA,从而延长电池寿命。
特征:
对UV-A和UV-B敏感的光电二极管
嵌入式运算放大器
模拟电压输出
低电源电流(典型值300μA)和低待机电流(典型值0.1μA)
小而薄的表面封装(4.0mm x 3.7mm x 0.73mm,12引脚 陶瓷封装QFN)
可惜的是,我没有找到任何紫外线透明材料来保护传感器。我测试过的任何一种透明盖子(塑料,玻璃等)都会减弱紫外线测量。更好的选择可能是熔融石英玻璃,但我没有找到合理价位的材料,所以我决定将传感器直接裸露的放在盒子外面。
测量紫外线的方式非常简单,只需打开设备并将其指向太阳几秒钟,使其与太阳光线的方向保持一致。然后在显示屏上观察:左侧的指数始终显示瞬时测量值(每个200毫秒一个),而右侧的读取是期间的最大读数:这正是你需要的值。
在显示器的左下部分,还报告了测量的UV指数程度(低度,中度,高度,非常高,极度的高)。
我选择CR2电池是因为它的尺寸和容量(800 mAh)。整个夏天,我都在使用UltraV,电池仍然可以读取2.8V。这个选择我非常满意。
操作时,电路消耗大约100 mA,但读数测量不会超过几秒钟。当电池额定电压为3v时,我增加了一个DC-DC升压转换器,使电压达到9v时,将其连接到Vin引脚。
为了在显示器上显示电池电压,我使用了模拟输入(A2)。 Arduino模拟输入可用于测量0到5V之间的直流电压,但这种技术需要校准。校准时,你需要一个万用表。
1、 首先使用最终选择的电池(CR2)为电路供电,而不是使用计算机的USB电源。
2、 在稳压器上(在Arduino 5V引脚上找到)测量Arduino上的5V电压。默认情况下,此电压用于Arduino ADC参考电压。现在将测量值放入草图中,如下所示(假设我读取的是5.023):
voltage = ((long)sum / (long)NUM_SAMPLES * 5023) / 1024.0;
在草图中,我将电压测量值作为10个样本的平均值。
对于显示器,我使用了U8g2lib,它非常灵活,功能强大,适用于这种OLED显示器,允许多种字体选择和良好的定位功能。
关于ML8511的电压读数,我使用3.3v Arduino参考引脚(精度在1%以内)作为ADC转换器的基础。因此,通过在3.3V引脚上进行模数转换(将其连接到A1),然后将此读数与传感器的读数进行比较,我们可以推断出真实的读数,无论VIN是什么(只要它高于3.4V)。
int uvLevel = averageAnalogRead(UVOUT);
int refLevel = averageAnalogRead(REF_3V3);
float outputVoltage = 3.3 / refLevel * uvLevel;
完整代码在文件库自行下载。
https://make.quwj.com/project/76
我使用CAD应用程设计了外壳,并尽可能地使用最小的尺寸,我将CR2电池安装在外壳的背面(电池盒粘在盒子上)。
请在文件库中下载STL文件。
https://make.quwj.com/project/76
1、使用紫外光谱仪测量各种条件下的实时紫外线指数(紫外光谱仪非常昂贵)。
2、使用Arduino微控制器同时记录ML8511的输出。
3、写入算法,在标准的大气条件下实时将ML8511输出与实际UVI值联系起来。