HS-S03P 紫外線感測器

HS-S03P 紫外線感測器

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、原理圖

紫外光感應器HS-S03P 圖紙點擊查看

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 測試結果:

等更新...