
1、소개
특징: 1. 크기 작음 : 11mm×27mm
2.功耗低:전원전압 2.5V~5V, 작업전류는 마이크로안급
3.선형 좋음
4.감도 높음
5.고정성 높음
6.检测范围宽:240nm-370nm 한국어
7.大角度:130度 한국어
8.肖特基种类的光敏二极管,适用于光电模式 한국어
типичное применение: тестер ультрафиолетового излучения, ультрафиолетовые часы, спортивное оборудование на открытом воздухе, сотовый телефон и т.д.
이 제품은 모바일 통신 영역의 스펙을 사용할 수 있으며, 직접 UV 지수(UV INDEX)와 대응하는 선형 전류가 있습니다。
자료 링크: https://pan.baidu.com/s/1pJvdC5l
학습 링크 1: https://zhuanlan.zhihu.com/p/641537240
학습 링크2: https://blog.csdn.net/UbiBots/article/details/52558287
2、시뮬레이션 그래프
3、모듈 매개변수
핀 이름 | 설명 |
|---|---|
G | GND(전원 입력 부정极) |
V | VCC(전원 입력 정극) |
S | 모의신호핀 |
전원전압: 3.3V / 5V
연결방식: PH2.0 케이블접속
설치방식: 더블스크루 고정
4、회로판 크기

5、아두이노 IDE 예제 프로그램
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
Arduino IDE 라이브러리 다운로드 및 导入 가이드:点击查看
예제 프로그램(UNO 개발 보드):
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C mylcd(0x27,16,2);
int sensorValue;//传感器输出的数据包
long sum = 0;//由于测试中发现数据会溢出,就用了long,long目前还未溢出过
int vout = 0;//由于通信中输出的是整一串数据包,所以需要翻译,vout是处理好的数据,也就是CJMCU-GUVA-S12SD传感器光电流的输出电压
int uv = 0;//紫外线等级
void setup(){
Serial.begin(9600);//CJMCU-GUVA-S12SD的波特率为9600
mylcd.init();
mylcd.backlight();
}
void loop()
{
sensorValue = 0;
sum = 0;
for(int i = 0 ; i < 1024 ; i++ )//这里我用的是最简单的filter算法
{
sensorValue = analogRead(A0);
sum = sensorValue + sum;
delay(2);
}
vout = sum >> 10;//开始数据处理
vout = vout * 4980.0 / 1024;
Serial.print("The Photocurrent value : ");
Serial.print(vout);
Serial.println("mV");
if(vout < 50){ //查表,把得到的光电流值转换成紫外线等级
uv = 0;
}
else if(vout < 227){
uv = 1;
}
else if(vout < 318){
uv = 2;
}
else if(vout < 408){
uv = 3;
}
else if(vout < 503){
uv = 4;
}
else if(vout < 606){
uv = 5;
}
else if(vout < 696){
uv = 6;
}
else if(vout < 795){
uv = 7;
}
else if(vout < 881){
uv = 8;
}
else if(vout < 976){
uv = 9;
}
else if(vout < 1079){
uv = 10;
}
else{
uv = 11;
}
delay(20);
Serial.print("UV Index = ");
Serial.println(uv);
mylcd.clear();
mylcd.setCursor(0, 0);
mylcd.print(String(" value :") + String(vout) + String("mV"));
mylcd.setCursor(0, 1);
mylcd.print(String(" UV Index =") + String(uv));
}6、ESP32 Python 예제(Mixly IDE /미스키에 적용됨)
개발 보드를 선택하세요 Python ESP32 【ESP32 Generic(4MB)】를 코드 모드로 전환하여 업로드하십시오
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
미시지(Mixly)IDE ESP32 라이브러리 다운로드 및 가져오기 가이드:点击查看
예제 프로그램(ESP32-Python):
待更新...7、미스키 Mixly 예제 프로그램(그래픽 언어)
예제 프로그램(UNO 개발 보드):다운로드 클릭
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
미스키(Mixly)IDE Arduino 라이브러리 다운로드 및 가져오기 가이드:点击查看

예제 프로그램(ESP32 개발 보드):다운로드 클릭
주의: 프로그램을 업로드할 때 라이브러리 파일 오류가 표시되면 먼저 라이브러리 파일을 가져오세요!
미시지(Mixly)IDE ESP32 라이브러리 다운로드 및 가져오기 가이드:点击查看
8、테스트 환경 구축
Arduino UNO 테스트 환경 구축
부품 준비:“
UNO-R3 개발 보드 *1
UNO-R3 P 확장판 *1
USB type-c 데이터 케이블 *1
LCD1602液晶 디스플레이 (HS-F21P) *1
紫外线센서 (HS-S03P) *1
전기 연결도):

ESP32 테스트 환경 설정
부품 준비:“업데이트 대기 중...
전기 연결도): 업데이트 대기 중...
9、비디오 강의
비디오 강의:点击查看
10、테스트 결과
Arduino UNO 테스트 결과:
선을 연결한 장치에 대해, 위의 프로그램을 UNO-R3PRO 개발판에 기록한 후, 전원을 켜십시오。串口监视器를 열고,波特수를 9600으로 설정합니다。프로그램은 간단한 필터 알고리즘을 사용하여 센서의 모의 출력 값을 수집하고 처리합니다.한글로 말하자면, 프로그램은 1024번의 루프를 통해 각 루프에서 A0 핀의 모의 값을 읽고 이를 총 합 변수에 누적합니다.루프가 끝난 후, 누적된 결과를 1024로 나누어 평균 값 vout을 얻습니다.그런 다음, 일련의 수학적 계산을 통해 평균 값을 센서의 광전류 출력 전압(밀리볼트로 표시)으로 변환하여 결과를 시리얼 모니터에 출력합니다。한LCD1602液晶표시기로도 빛전류와 전압(밀리볼트로 표시)을 출력할 수 있으며, 이 과정을 통해 프로그램이紫外线의 강도를 측정하고, 그에 따라紫外线 등급을 변환하는 데 성공했습니다.

ESP32 테스트 결과:
업데이트 대기 중...