행복한 하루

[PICO] Raspberry Pi PICO를 이용한 데시벨 측정 센서 테스트(SEN0232) 본문

RaspberryPi/Raspberry Pi Pico

[PICO] Raspberry Pi PICO를 이용한 데시벨 측정 센서 테스트(SEN0232)

변화의 물결 2023. 6. 30. 00:05

 

 

안녕하세요

 

 주변이 얼마나 시끄러운가를 알고 싶을 때 소음측정기가 필요한데 현재 판매하고 있는 모듈들이 있어서 확인해 보았습니다. 모듈 제품을 검색해 보면 가격이 싼 모듈은 마이크에 LM2904(OP-AMP)를 장착해 판매하고 있고 조금 비싼 모듈은 주파수 가중치를 적용한 칩을 부착해서 그런지 고가에 판매되고 있었습니다.

 

 이번에 테스트한 모듈도 가격이 조금 비싸게 느껴졌습니다. 시중에 판매되고 있는 저가형 소음측정기보다 비싼 가격이었기 때문입니다.


1. 제품확인 이전에 데시벨 단위 확인

 - 아래의 모듈 테스트는 생각보다 간단합니다. 그러나 음압과 주파수 등 이론에 대한 이해가 먼저 필요했습니다. 직접내용을 적으려고 했는데, 이해가 부족한 관계로 링크로 대체하도록 하겠습니다. 하단에 <참고 사이트> 5~7을 한번 읽어 보시는 것을 추천드립니다.

 

 - 간단하게 이해 것은 “dB와 dBA는 다르다. dB는 음압레벨(Sound Pressure Level) 단위로 이해하거나 두 가지 파워값의 크기 비교를 위해 상대적 비율을 상용로그로 나타내는 값의 단위이다. dBA는 사람의 청각은 주파수에 따라

소리의 세기(민감도)를 다르게 느낀다고 한다. 등청감곡선을 참고로 가중치 보정값을 적용한 것이 dBA라고 한다.”입니다.  만약 잘못 이해한 부분을 답글 달아 주시면 감사한 마음으로 수정하겠습니다.

2. SEN0232 센서 스펙

 - 제조사 사이트의 내용을 가져왔습니다.

  Measuring Range: 30dBA ~ 130dBA

  Measurement Error: ±1.5dB

  Frequency Weighted: A Weighted

  Frequency Response: 31.5Hz ~ 8.5KHz

  Time Characteristics: 125ms

  Input Voltage: 3.3 ~ 5.0V

  Input Current: 22mA@3.3V, 14mA@5.0V

  Output Voltage: 0.6 ~ 2.6V

  Module Size: 60mm * 43mm

3. Raspberry Pi PICO와 연결하기

 - 기본 배선은 +5와 GND, ANALOG0(GP26) 핀에 연결하였습니다.

4. 소스 코드

 - DFROBOT 사이트에 예제는 아두이노로 되어 있습니다. 그러나 소스가 간단한 변환식이라 MicroPython용으로 간단하게 변환할 수 있고, 내용을 조금 추가해 보았습니다.

 - A0(GP26)를 읽어서  레퍼런스 전압을 기준으로 ADC 값(출력전압)을 변환합니다. 그리고 출력전압을 데시벨(decibel)로 변환하기 위한 상수 50을 곱해주면 됩니다.(사이트에서 계산식이 나와 있어 참조함) 그러면 dBA 값을 볼 수 있습니다.

 - 출력전압이 0.6V이면 30dBA가 되고 2.6V이면 130dBA 되는 것을 알려주며 직선 그래프를 참고하라고 나와있습니다. 그리고 교정(캘리브레이션)은 출고 시에 하고 보낸다고 별도의 교정작업은 필요 없다고 사이트에 나와있습니다.

 

from machine import Pin, ADC
import time

# Create an ADC object linked to pin 26
adc = ADC(Pin(26, mode=Pin.IN))

while True:

    # Read ADC and convert to voltage
    val = adc.read_u16()
    val = val * (3.3 / 65535)
    dbValue = val * 50.0
    
    print(round(val, 2), "V ", round(dbValue, 1), "dBA") # Keep only 2 digits
    
    # Wait a bit before taking another reading
    time.sleep_ms(125)

5. 결과 확인

- Thonny에서 실행 보면 전압과 dBA값이 출력되는 것을 확인할 수 있습니다.

  - 스마트폰 프로그램마다 측정값 차이도 나지만 Decibel X 앱에서 보정 기능으로  측정 모듈과 비슷하게 맞출 수도 있었습니다. 2~3dB 큰 차이긴 하지만, 소리에 반응하는 폭은 유사하게 작동하는 것을 볼 수 있었습니다. 그러나 정밀하게 맞고 틀린 것은 현장차이도 있고 스마트폰 등 여러 가지 변수가 있기 때문에 참고 정도만 해주셨으면 합니다.

6. 참고할 사항

 - 모듈 크기가 대략 Raspberry Pi 보다 2배이고 가격이 고가입니다.

 - 비교하기 위해서 저가형 LM2904이 부착된 모듈도 구매해서 테스트해 보았는데, 저가형 보다 노이즈가 적고 반응하는 것이 스마트폰 어플과 유사했습니다.

 - 실제 교정된 정밀한 측정기가 없기 때문에 이것이 정확하다를 판별하지 못했습니다. 사이트에서 교정해서 보낸다고 하지만 상품화한다고 할 때는 한 번쯤 실제 교정 테스트를 받아보는 것이 필요해 보입니다.

 - 모듈은 스마트폰의 소음측정기와 유사하게 반응했습니다. 그러나 “참고 사이트 4”의 학술 신문에서 스마트폰과 정밀측정기와 비교한 내용도 있으니 스마트폰 측정기를 완벽히 신뢰하지는 말고 참고 정도로 하는 것을 추천드립니다.

 - dB와 dBA는 차이가 날 수 있으니 단위를 확인이 필요하며 어떤 가중치 필터를 사용했는지 확인이 필요합니다. 가중치 필터를 사용했는데 dB라고 표시된다면 대부분 dB(A) 일 확률이 높습니다.

 

감사합니다.

 

 

<참고사이트>

1. Measure an analog voltage with the Pi Pico ADC in MicroPython

https://www.upesy.com/blogs/tutorials/micropython-raspberry-pi-pico-adc-usage-measure-voltage

2. SKU:SEN0232

https://wiki.dfrobot.com/Gravity__Analog_Sound_Level_Meter_SKU_SEN0232

3. 아두이노 사운드 센서 사용해 보기!

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=roboholic84&logNo=220801048809

4. 과연 스마트폰 소음측정어플은 정확한가요?

http://press.changwon.ac.kr/news/articleView.html?idxno=3048785

5. 음향학 이야기: A-가중 음향 레벨(A-weighted sound level), dB와 dBA 차이점

https://opee.tistory.com/71

6. 데시벨(Decibel, dB)이란? 1부-정의와 의미 ~ 3부

http://www.hearbest.net/hearing-acoustics/?idx=3619878&bmode=view

7. dB 란 무엇일까?

http://egaudio.kr/10eazy/10eazy/10eazy5.html  

 

 

Comments