1、提供可靠性和精确性测量紫外线指数(UVI)
2、适合测量太阳光紫外线强度总量;
3、对照世界卫生组织紫外线指数分级标准
4、检测UV波长:200-370nm;
5、响应快,时间小于0.5秒;
名称 | 推荐购买链接(或者您可以自己制作) | 模块硬件资料下载 |
---|---|---|
紫外线传感器模块 | 模块购买链接 | 下载地址(提取码:wgjt) |
声明:这里推荐的购买链接仅供参考,您完全可以去其他商家或渠道购买,只要功能相似即可,如果需要更低的成本建议自己开发硬件模块或定制。
--定义函数:将传感器输出电压(单位:mv)转换成紫外线指数index function GetUvIndex(v) if v < 50.0 then index = 0 elseif v < 227.0 then index = 1; elseif v < 318.0 then index = 2; elseif v < 408.0 then index = 3; elseif v < 503.0 then index = 4; elseif v < 606.0 then index = 5; elseif v < 696.0 then index = 6; elseif v < 795.0 then index = 7; elseif v < 881.0 then index = 8; elseif v < 976.0 then index = 9; elseif v < 1079.0 then index = 10; else index = 11 end return index end --配置Core的USB口以虚拟串口模式工作,这样print()输出的内容就可以在电脑串口终端上显示了 LIB_UsbConfig("CDC") --配置AD电压采集功能,最大值采样值4096对应3.6V输入电压 --当通道采集满1个点时缓存满,每个点的采集时间间隔为300ms LIB_ADConfig(1,300000) --开始大循环 while(GC(1) == true) do --每隔300ms查询A0通道是否转换完成 --开发者也可以将传感器接至A1-A3中的任一通道,也可以多个通道接多个传感器,用法都和下面一样 LIB_DelayMs(300) A0_full_flag, A0_buf = LIB_ADCheckBufFull("A0") if A0_full_flag == 1 then vol_mv = A0_buf[1]*3600/4096.0 --将AD原始值转换成电压(单位:mv) uv_index = GetUvIndex(vol_mv)--将电压转换成紫外等级指数 --打印输出A0通道的AD采样值以及对应的电压值和紫外线强度 print(string.format("A0=%04d vol=%.0fmv index=%02d",A0_buf[1],vol_mv,uv_index)) end end
如果感兴趣,上面代码中出现的LIB开头的库函数可以在API文档中通过Ctrl+F查询。
此时传感器输出的电压接近于0mv,紫外线指数等级也为0
此时传感器输出的电压在150~160mv左右,紫外线指数等级为1
此时传感器输出的电压在470~480mv左右,紫外线指数等级为4
此时传感器输出的电压在660~670mv左右,紫外线指数等级也为6
通过上面实验可以看出,传感器在”无阳光”–>”室内隔着玻璃”–>”室内不隔玻璃”–>”户外正对阳光下”这四个状态输出的电压值分别为:0mv,160mv, 480mv,670mv,对应着紫外线指数等级0,1,4,6。
可以看出紫外线强度越大,传感器输出的电压值越高,相应的紫外线指数等级也就越高。
简单、快捷、高效、强大的物联网开发板
© 2022. All Rights Reserved. 粤ICP备2021058065号