ESP32 SW520D 기울기 센서 (MicroPython)

이 가이드는 SW520D 기울기 센서와 ESP32를 MicroPython으로 사용하여 기울기를 감지하는 방법을 가르쳐드립니다. 구체적으로 배우는 내용:

ESP32 마이크로파이썬 sw520d 기울기 센서

나중에 기울기가 감지될 때 LED나 조명(릴레이 사용)을 켜거나 서보 모터를 회전시키도록 코드를 수정할 수 있습니다.

필요한 하드웨어

1×38-pin ESP32 ESP-WROOM-32 Dev Module - Narrow 쿠팡 | 아마존
1×(또는) 38-pin ESP32 ESP-WROOM-32 Dev Module - Wide 쿠팡 | 아마존
1×(또는) 30-pin ESP32 ESP-WROOM-32 Dev Module - Wide 아마존
1×(또는) ESP32 Uno-form board 아마존
1×(또는) ESP32 S3 Uno-form board 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×SW520D Tilt Sensor Module 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) ESP32용 스크루 터미널 확장 보드 쿠팡 | 아마존
1×(추천) Breakout Expansion Board for ESP32 쿠팡 | 아마존
1×(추천) ESP32용 전원 분배기 쿠팡 | 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

SW520D 기울기 센서에 대하여

SW520D 기울기 센서는 기울기 또는 방향 변화를 감지하는 데 사용할 수 있습니다. 모듈 내부에는 기울기 각도에 따라 두 전기 접점 사이를 굴러다니는 작은 금속 볼이 있습니다. 모듈은 간단한 ON 또는 OFF 디지털 신호를 출력합니다.

SW520D 기울기 센서 핀아웃

SW520D 기울기 센서에는 세 개의 핀이 있습니다:

  • VCC 핀: 이것을 VCC(3.3V~5V)에 연결합니다.
  • GND 핀: 이것을 GND(0V)에 연결합니다.
  • DO 핀: 이 출력 핀은 센서가 수직일 때 HIGH, 기울어졌을 때 LOW가 됩니다. ESP32의 입력 핀에 연결합니다.
sw520d 기울기 센서 핀아웃
image source: diyables.io

SW520D 기울기 센서 모듈에는 두 개의 LED 표시등이 있습니다.

  • 한 LED는 전원이 켜져 있음을 나타냅니다.
  • 한 LED는 기울기 상태를 나타냅니다: 수직일 때 켜지고, 기울어졌을 때 꺼집니다.

작동 원리

모듈은 간단한 볼 스위치 메커니즘을 사용합니다.

  • 센서가 수직일 때 금속 볼이 접점을 닫고, 출력 핀이 HIGH가 됩니다.
  • 센서가 기울어졌을 때 금속 볼이 접점을 열고, 출력 핀이 LOW가 됩니다.

배선도

  • 브레드보드를 사용한 ESP32와 SW520D 기울기 센서 연결 방법
ESP32 마이크로파이썬 sw520d 기울기 센서 배선도

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

ESP32와 sw520d 기울기 센서 연결 방법

SW520D 기울기 센서 프로그래밍 방법

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

ESP32 MicroPython 코드 - 기울기 감지

/* * 이 ESP32 마이크로파이썬 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 마이크로파이썬 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-micropython/esp32-micropython-sw520d-tilt-sensor */ from machine import Pin import time SENSOR_PIN = 18 # The ESP32 pin GPIO18 connected to DO pin of the SW520D tilt sensor prev_tilt_state = 1 # the previous state from the input pin tilt_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 tilt_state = sensor_pin.value() if prev_tilt_state == 1 and tilt_state == 0: print("The tilt has been detected") elif prev_tilt_state == 0 and tilt_state == 1: print("The tilt has disappeared") # Save the last state prev_tilt_state = tilt_state time.sleep(0.1) # Delay for 100 milliseconds

빠른 시작

Thonny IDE를 사용하여 ESP32에서 MicroPython 코드를 설정하고 실행하는 방법:

  • Thonny IDE가 컴퓨터에 설치되어 있는지 확인합니다.
  • ESP32 보드에 MicroPython 펌웨어가 로드되어 있는지 확인합니다.
  • ESP32에서 MicroPython을 처음 사용하는 경우, ESP32 마이크로파이썬 - 시작하기 가이드를 참조하세요.
  • 제공된 배선도에 따라 SW520D 기울기 센서를 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를 눌러 스크립트를 실행합니다.
  • SW520D 센서를 앞뒤로 기울입니다.
  • Thonny 하단의 Shell 메시지를 확인합니다.
Shell x
>>> %Run -c $EDITOR_CONTENT
MPY: soft reboot The tilt has been detected The tilt has disappeared The tilt has been detected The tilt has disappeared
MicroPython (ESP32) • CP2102 USB To UART Bridge Controller @ COM12 ≡

문제 해결

SW520D 기울기 센서가 올바르게 작동하지 않는 경우 다음 단계를 시도해보세요:

  • 방향 확인: SW520D는 장착 각도에 민감합니다. 신뢰할 수 있는 감지를 위해 올바른 수직 위치에 설치되어 있는지 확인하세요.
  • 진동 줄이기: 센서가 진동에 반응하지 않도록 안정적인 표면에 단단히 고정하세요.
  • 배선 확인: VCC, GND, DO 핀이 올바르게 연결되어 있는지 확인하세요.
  • 전원 공급 확인: 일관된 측정을 위해 전원 공급이 안정적인지 확인하세요.

동영상

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

관련 튜토리얼