ESP32에서 VEML 7700 조도 센서 사용하기

ESP32에서 VEML 7700 조도 센서 사용하기

VEML 7700 조도센서

앞서 라즈베리 파이 피코 보드에 적용(https://blog.naver.com/mythee1/223265950064) 했었는데, 이 VEML7700 조도계 센서를 ESP32보드에도 적용해 보고, 마이크로 파이썬으로 동작시켜 보면서 동작 여부, 라이브러리 적합성 등을 살펴보았다.

VEML은 I2C 방식 통신을 하는 소자로, 조명의 밝기를 측정하는 데 사용되는 디지털 센서로, 수천 원 정도로 구입이 가능한데,

또한, 전원으로 3.3V 또는 5V 모두 사용할 수 있어서,

3.3V 단자만 제공하는 ESP32에서도 사용하는데 문제가 없다.

ESP32보드와 연결

VEML7700의 3.3V와 GND를 ESP32의 3.3와 GND에 연결하고,

통신용으로 SDA와 SCL을 다음과 같이 ESP32보드의 GP21, GP22에 각기 연결했다.

VEML 7700 라이브러리

VEML7700동작을 위해 필요한 라이브러리를 Github에서 찾았으며,

다음 라이브러리 파일을 다운로드해 ESP32보드에 미리 저장해 두었다.

참고로 해당 라이브러리 파일을 첨부해둔다.

첨부파일

veml7700.py

파일 다운로드

Code 및 작동 모습

그리고 라즈베리 파이 피코 보드에서 사용했던 동작 코드를 그대로 가져다가, SDA 및 SCL 핀 번호만 바꾸어 동작시켜본다.

from machine import Pin, I2C
import utime
import veml7700

i2c = I2C(0, scl=Pin(22), sda=Pin(21), freq=10000)

veml = veml7700.VEML7700(address=0x10, i2c=i2c, it=100, gain=1/8)
while True:
    lux_val = veml.read_lux()
    print (lux_val)
    utime.sleep(0.3)

그리고, 다음과 같은 형태로 휴대폰의 조도계 앱에서 측정되는 값과 비교해 보았다.

동작하는 모습은 다음과 같으며, 화면에 나오는 VEML7700 센서의 측정값과, 휴대폰 조도 측정 앱과 큰 차이가 나지 않는 것을 볼 수가 있다.