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

나중에 기울기가 감지될 때 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의 입력 핀에 연결합니다.

image source: diyables.io
SW520D 기울기 센서 모듈에는 두 개의 LED 표시등이 있습니다.
- 한 LED는 전원이 켜져 있음을 나타냅니다.
- 한 LED는 기울기 상태를 나타냅니다: 수직일 때 켜지고, 기울어졌을 때 꺼집니다.
작동 원리
모듈은 간단한 볼 스위치 메커니즘을 사용합니다.
- 센서가 수직일 때 금속 볼이 접점을 닫고, 출력 핀이 HIGH가 됩니다.
- 센서가 기울어졌을 때 금속 볼이 접점을 열고, 출력 핀이 LOW가 됩니다.
배선도
- 브레드보드를 사용한 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 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.