자외선을 디지털로 측정할 수 있는 VEML6075 센서를 활용할 수 있다.
▶ 이 가이드를 따라하면
- UVA, UVB, UV index값 모두를 얻을 수 있는 VEML6075센서 사용법을 알 수 있다..
▶ 기존 읽어보면 좋을 강의
- UV 아날로그 센서 : https://bbangpan.tistory.com/77
▶ 부품 설명 및 회로 구성
기존에서 UV센서를 소개한 적이 있는데, 이번에는 I2C 방식으로 디지털 값을 얻어올 수 있는 VEML6075센서이다. 매우 작은 센서이고 3.3V를 기반으로 하며 SparkFun이나 Adafruit 모두 이 센서를 판매하고 있다. 다만 여기서는 aliexpress에서 구매한 유사 센서이다. 각 회사마다 지원하는 Voltage가 다른데, 이 센서는 기본적으로 3.3V체계의 칩을 중심으로 한다. 하지만 Adafruit같은 경우에는 전압 조절을 해주는 레큘레이터도 장착하고 있으므로 5V에서도 사용할 수 있다. 그러나 나머지는 모두 3.3V에서 작동하니 해당 센서 구매시 지원하는 전압을 정확히 파악할 필요가 있다.(Adafruit의 강의만 보고 깜빡 5V로 실험할 뻔 했는데, 필자가 구매한 VEML6075센서는 3.3V 만 지원한다고 명기되어 있다.)
따라서 3.3V->5V 레벨 컨버터를 사용하였다. 레벨 컨버터 사용법은 https://bbangpan.tistory.com/103 를 참조하도록 한다.
지원하는 전압 차이 외에는 VEML6075들은 지원하는 어떤 라이브러리를 써도 상관없어 보이나, 여기서는 3.3V 체계의 모듈인 SparkFun의 라이브러리를 사용했다. 회로 연결은 VIN->3.3V, GND->GND, SCL->SCL(레벨컨버터 경유), SDA->SDA(레벨 컨버터 경유)로 연결한다. (잘알려진대로, Arduino UNO의 경우에는 SCL대신에 A5, SDA대신 A4에 꼽아서 사용이 가능하다. SCL/SDA핀의 이름은 Arduino UNO보드의 뒷면에 표기-D13핀 위쪽-되어 있으므로 참조한다. 5V지원 VEML6075의 경우는 VCC->5V에 꼽고 나머지는 직접 연결하면 된다. )
[VEML6075 센서의 대표적인 모습. 사진의 중앙 바로 왼쪽 아래에 작은 빛 수용부가 있다.]
[VEML6075센서 뒷면]
[레벨 컨버터 때문에 회로가 복잡해 보이지만, VIN->3.3V, GND->GND, SCL->SCL, SDA->SDA 연결과 동일하다]
[다른 각도 사진이다. 3.3V->5V 4채널 레벨 컨버터를 사용하고 있다]
상기 모듈이 제공하는 UVA, UVB값은 평방미터당 와트라고 하는 단위를 제공한다고 한다. 이 값은 실 측정을 통해 세기를 알아내야 하므로 사실 전문가가 아니면 써먹기 쉽지 않겠으나, 같이 제공되는 UV index 값은 널리 알려진 값이기 때문에 유용하게 사용할 수 있다. (이 세가지 값은 하단의 예시에서 확인 가능하다)
UV index값은 0부터 11정도까지 가이드되는데 레벨별로 다음과 같다(발췌).
레벨이 단순해서 쉽게 활용할 수 있다. UV index 값이 6이 넘어가면 경고를 내주거나 할 수 있겠다.
가이드대로 회로 연결이 끝나면 실제 코드를 작동시키기 위해 SparkFun의 VEML6075 라이브러리를 다운로드 받는다. 아두이노 스케치의 라이브러리 관리 메뉴(스케치->라이브러리추가->라이브러리관리)로 들어간 후 검색하여 다운로드 받으면 예시를 곧바로 활용할 수 있다.
[SparkFun VEML6075 Arduino Library를 선택해 ‘설치’하자]
다운로드 받은 라이브러리의 첫번째 예시를 선택해(파일->예제->SparkFun VMEL6075 Arduino Library->Example1_Stream_UV) 컴파일하여 구동하자.
[SparkFun VEML6075 아두이노 라이브러리의 Example1을 로딩해 컴파일/구동하자]
실행하면 아래와 같이 시리얼 모니터를 통해(속도는 115200 baud로 맞춘다) UVA/UVB/UV Index값을 주기적으로 얻어 출력하는 모습을 볼 수 있다.
[시리얼 모니터 측정 화면, 휴대폰 LED 조명으로는 불행히도 음수 값만 나온다. UV index값을 눈여겨 보자]
앞서 밝힌 대로 간단하게 OLED에 UV index값을 표시하거나, UV index별로 LED를 깜빡여서 경고를 하는 장치로 응용하면 어떨까?
▶ 구매 가이드
VEML6075 : https://www.aliexpress.com/af/VEML6075.html?d=y&origin=n&SearchText=VEML6075&catId=0&initiative_id=SB_20200720074534 ($4전후)
▶ 강의 키워드
VEML6075, UV 센서, 자외센 센서, UV sensor, VEML6075, VEML6040, 자외선 디지털 센서, 아두이노
'아두이노 센서' 카테고리의 다른 글
[센서/마이크증폭센서] 민감도가 자동 조절되는MAX9814 AGC센서 (0) | 2020.07.25 |
---|---|
[센서/소리감지센서] FC-04, 소리 검출 센서, 사운드 센서로 소리 발생 유무를 탐지 (0) | 2020.07.16 |
[센서/레이저 장애물 센서] Waveshare laser sensor , 레이저 장애물 센서 (0) | 2020.07.15 |
[센서/온습도센서] SHT30,SHT31,SHT35,SHT3X 로 온습도를 측정해보자 (4) | 2020.07.13 |
[센서/먼지센서] PM7003 plantower 먼지센서 (0) | 2020.07.11 |
[센서/VL53L0X] 레이저 기반의 거리 센서 (0) | 2017.06.09 |
[센서/BME280] 습도, 온도, 기압, 고도 통합 센서 (2) | 2017.06.08 |
[센서/조도,움직임] GY-9960LLC, APDS-9960 RGB and gesture sensor, 조도 및 움직임 센서 (0) | 2017.06.08 |
[센서/컬러센서] TCS34725 센서를 통해 RGB 값을 읽어보자 (6) | 2017.02.12 |
[센서/전압측정] 전압 센서(Voltage Sensor)를 통해 전압을 측정하자 (4) | 2016.05.06 |