ESP32 마이크로파이썬 소리 음성 사운드 센서

이 가이드는 MicroPython을 사용하여 ESP32와 사운드 센서를 활용해 소리를 감지하는 방법을 가르쳐 줄 것입니다. 자세히는, 우리는 다음 내용을 배우게 될 것입니다:

ESP32 마이크로파이썬 사운드 센서

나중에 소리를 감지하면 (릴레이를 사용하여) LED나 불빛을 켜거나 서보 모터를 회전하도록 코드를 변경할 수 있습니다.

준비물

1×ESP32 ESP-WROOM-32 개발 모듈 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×디지털 사운드 센서 쿠팡 | 아마존
1×아날로그 사운드 센서 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

사운드 센서에 대하여

소리 센서는 가까운 소리를 감지하는 데 사용될 수 있습니다. 소리 센서 모듈에는 두 가지 유형이 있습니다:

  • 디지털 사운드 센서 모듈: 간단한 ON 또는 OFF 신호를 제공합니다.
  • 아날로그 사운드 센서 모듈: ON/OFF 신호와 함께 연속적인 범위 값을 제공합니다.

디지털 출력의 민감도는 내장된 포텐셔미터를 사용하여 조절할 수 있습니다.

디지털 사운드 센서 핀아웃

디지털 사운드 센서에는 세 개의 핀이 있습니다:

  • VCC 핀: 3.3V에서 5V 사이의 전압을 가진 VCC에 연결하세요.
  • GNC 핀: 0V인 GND에 연결하세요.
  • OUT 핀: 소리가 없으면 이 출력 핀은 HIGH 상태로 유지되며, 소리가 감지되면 LOW 상태가 됩니다. ESP32의 입력 핀에 연결하세요.
사운드 센서 핀아웃
image source: diyables.io

소리 센서에는 감도 조절 노브와 상태를 표시하는 두 개의 불빛이 있습니다.

  • 하나의 LED 조명이 전원이 켜진 상태임을 보여줍니다.
  • 하나의 LED 조명이 소리에 반응하여: 소리가 있을 때 켜지고, 조용하면 꺼집니다.

아날로그 사운드 센서 핀아웃

아날로그 사운드 센서에는 네 개의 커넥터가 있습니다.

  • + 핀: 5V 또는 3.3V에 연결하세요.
  • G 핀: GND (0V)에 연결하세요.
  • DO 핀: 소리가 없으면 HIGH 상태를 유지하고, 소리가 감지되면 LOW 상태가 되는 디지털 출력 핀입니다. ESP32의 디지털 입력 핀에 연결하세요.
  • AO 핀: 이 아날로그 출력 핀은 소리의 레벨을 아날로그 값으로 제공합니다. ESP32의 아날로그 입력 핀에 연결하세요.
아날로그 사운드 센서 핀아웃
image source: diyables.io

아날로그 사운드 센서는 민감도 조정을 쉽게 할 수 있도록 내장 포텐셔미터 장치를 갖추고 있습니다. 또한 두 개의 LED 표시가 있습니다.

  • 하나의 LED 표시등은 전원이 켜져 있음을 나타냅니다.
  • 또 다른 LED 표시등은 소리의 존재를 알립니다. 소음이 있을 때 켜지고 정적일 때 꺼집니다.

작동 원리

모듈에는 소리에 대한 민감도를 조절할 수 있는 가변저항이 포함되어 있습니다. 센서가 소리를 감지하면 출력 핀이 LOW로 전환되며, 소리가 감지되지 않으면 HIGH 상태로 유지됩니다.

선연결

  • 브레드보드를 사용하여 ESP32와 사운드 센서를 연결하는 방법
ESP32 마이크로파이썬 사운드 센서 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

ESP32와 사운드 센서 연결 방법

사운드 센서를 위한 프로그래밍 방법

  • ESP32 핀 8을 디지털 입력으로 설정합니다.
sensor_pin = Pin(SENSOR_PIN, Pin.IN)
  • ESP32의 핀 상태를 확인합니다.
sound_state = sensor_pin.value()

ESP32 MicroPython 코드 - 소리 감지

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-sound-sensor */ from machine import Pin import time SENSOR_PIN = 18 # The ESP32 pin GPIO18 connected to OUT pin of the sound sensor prev_sound_state = 1 # the previous state from the input pin sound_state = 1 # the current reading from the input pin # Initialize the sensor pin as an input sensor_pin = Pin(SENSOR_PIN, Pin.IN) # Main loop while True: # Read the state of the input pin sound_state = sensor_pin.value() if prev_sound_state == 1 and sound_state == 0: print("The sound has been detected") elif prev_sound_state == 0 and sound_state == 1: print("The sound has disappeared") # Save the last state prev_sound_state = sound_state time.sleep(0.1) # Delay for 100 milliseconds to mimic Arduino's loop delay

자세한 사용 방법

ESP32에서 Thonny IDE를 사용하여 MicroPython 코드를 설정하고 실행하는 방법에 대한 지침은 다음과 같습니다:

  • 컴퓨터에 Thonny IDE가 설치되어 있는지 확인하세요.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인하세요.
  • MicroPython과 함께 ESP32를 처음 사용한다면 단계별 지침이 포함된 ESP32 마이크로파이썬 - 시작하기 가이드를 확인하세요.
  • 제공된 다이어그램에 따라 사운드 센서를 ESP32에 연결하세요.
  • USB 케이블을 사용하여 ESP32 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Thonny IDE를 여세요.
  • Thonny IDE에서 Tools Options로 이동하세요.
  • Interpreter 탭에서 드롭다운 메뉴에서 MicroPython (ESP32)를 선택하세요.
  • 올바른 포트가 선택되어 있는지 확인하세요. Thonny IDE는 일반적으로 포트를 자동 감지하지만, 필요하다면 수동으로 선택해야 할 수도 있습니다 (예: Windows의 경우 COM12 또는 Linux의 경우 /dev/ttyACM0).
  • 제공된 MicroPython 코드를 복사하여 Thonny의 편집기에 붙여넣으세요.
  • 코드를 ESP32에 저장하려면:
    • Save 버튼을 클릭하거나 Ctrl+S를 누르세요.
    • 저장 대화 상자에서 MicroPython device를 선택하세요.
    • 파일 이름을 main.py로 지정하세요.
  • 녹색 Run 버튼을 클릭하거나 (또는 F5를 눌러) 스크립트를 실행하세요.
  • 사운드 센서 근처에서 박수를 치세요.
  • Thonny 하단의 Shell에서 메시지를 확인하세요.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The sound has been detected The sound has disappeared The sound has been detected The sound has disappeared
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

소리가 있을 때도 LED 불빛이 항상 켜져 있거나 항상 꺼져 있다면, 센서가 소리에 반응하는 방식을 개선하기 위해 포텐셔미터 설정을 조정할 수 있습니다.

문제 해결

사운드 센서가 제대로 작동하지 않는 경우, 다음 단계를 시도하십시오:

  • 감도 조절: 센서의 작은 나사를 돌려 감도 수준을 변경합니다.
  • 진동 감소: 센서가 진동이나 바람 소음을 감지하지 않도록 단단히 고정된 표면에 부착하세요.
  • 감지 범위 고려: 센서는 10인치 내의 소리만 감지할 수 있습니다. 정확한 측정을 위해 센서에 가까운 곳에서 소리를 발생시키세요.
  • 전원 공급 확인: 전원 공급이 안정적인지 확인하세요. 전원 변동은 이 아날로그 센서의 성능에 영향을 줄 수 있습니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

관련 튜토리얼