
1、介紹
特點:1.尺寸小 :11mm×27mm
2.功耗低:供電電壓2.5V~5V,工作電流是微安級
3.線性好
4.靈敏度高
5.高穩定性
6.檢測範圍寬:240nm-370nm
7.大角度:130度
8.肖特基種類的光敏二極管,適用於光電模式
典型應用:紫外線測試儀,紫外線手錶,戶外運動設備,手機移動電話等
本產品能用到行動電話領域的規格。並有直接對應紫外線指數(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、Arduino 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 測試結果:
等更新...