ESP32 SW-420 진동 센서 (MicroPython)
이 튜토리얼에서는 MicroPython을 실행하는 ESP32에 SW-420 진동 센서를 연결하여, 여러분의 프로젝트에서 충격과 진동을 감지하는 방법을 보여 드립니다. 다음 내용을 배우게 됩니다:
- SW-420 진동 센서 모듈을 ESP32에 배선하는 방법
- SW-420 센서에서 오는 진동이나 충격 이벤트를 ESP32가 보고하도록 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 | × | SW-420 Vibration Sensor Module | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Breakout Expansion Board for ESP32 | 쿠팡 | 아마존 | |
| 1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 |
SW-420 진동 센서에 대하여
SW-420 진동 센서 모듈은 부착된 물체의 두드림, 부딪힘, 흔들림을 알아차려야 할 때 유용합니다. 모듈 내부에는 작은 스프링 방식의 스위치가 금속 접점 가까이에 떠 있습니다. 보드의 LM393 비교기가 이 스위치를 계속 감시하다가, 진동이나 충격이 스위치를 건드리는 순간 깔끔한 디지털 신호를 출력합니다. 보드의 작은 가변저항으로 출력이 동작하기까지 얼마나 흔들려야 하는지를 정확하게 조정할 수 있습니다.
핀아웃
SW-420 진동 센서 모듈에는 세 개의 핀이 있습니다:
- VCC 핀: VCC(3.3볼트 ~ 5볼트)에 연결합니다
- GND 핀: GND(0볼트)에 연결합니다
- DO 핀: 이 출력 핀은 정지 상태에서는 LOW를 유지하다가, 진동이나 충격이 감지되는 순간 HIGH로 바뀝니다. ESP32의 입력 핀에 연결합니다.

모듈에는 LED도 두 개 달려 있습니다.
- 한 LED는 보드에 전원이 들어왔는지 확인해 줍니다
- 다른 LED는 DO 핀이 HIGH가 될 때마다, 즉 진동이 감지될 때마다 켜집니다
작동 원리
덮개 아래에는 고정 접점 옆에 작은 스프링 스위치가 놓여 있습니다.
- 모듈이 정지해 있는 동안에는 스프링이 접점에 닿지 않으므로 출력 핀은 LOW로 읽힙니다.
- 진동이나 충격으로 스프링이 접점에 닿으면 비교기가 출력 핀을 HIGH로 만듭니다.
- 보드의 가변저항을 돌리면 스위치가 동작하는 데 필요한 흔들림의 정도를 높이거나 낮출 수 있어, 가벼운 두드림부터 강한 충격까지 조정할 수 있습니다.
배선도
- 브레드보드를 사용하여 ESP32와 SW-420 진동 센서를 배선하는 방법

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
- 스크류 터미널 블록 브레이크아웃 보드를 사용하여 ESP32와 SW-420 진동 센서를 배선하는 방법

SW-420 진동 센서 프로그래밍 방법
- ESP32 핀을 디지털 입력으로 설정합니다.
- ESP32에서 해당 핀의 현재 상태를 읽습니다.
ESP32 MicroPython 코드 - 진동 감지
빠른 단계
Thonny IDE를 통해 ESP32에서 MicroPython 스크립트를 실행하려면 다음 단계를 따르세요:
- 아직 설치하지 않았다면 컴퓨터에 Thonny IDE를 설치하세요.
- ESP32 보드에 MicroPython 펌웨어가 이미 플래시되어 있는지 확인하세요.
- ESP32에서 MicroPython을 처음 사용하시나요? 계속하기 전에 ESP32 마이크로파이썬 - 시작하기 가이드를 먼저 따라 해 보세요.
- 위의 배선도에 따라 SW-420 진동 센서를 ESP32에 배선하세요.
- USB 케이블로 ESP32를 컴퓨터에 연결하세요.
- Thonny IDE를 실행하세요.
- Thonny에서 Tools Options로 이동하세요.
- Interpreter 탭에서 드롭다운 메뉴의 MicroPython (ESP32)를 선택하세요.
- 올바른 포트가 선택되어 있는지 확인하세요. Thonny는 보통 자동으로 찾지만, 수동으로 선택해야 할 수도 있습니다(Windows에서는 COM12, Linux에서는 /dev/ttyACM0 등).
- 아래 MicroPython 코드를 복사하여 Thonny 편집기에 붙여넣으세요.
- 스크립트를 ESP32에 저장하세요:
- Save 버튼을 클릭하거나 Ctrl+S를 누릅니다.
- 저장 대화상자에서 MicroPython device를 선택합니다.
- 파일 이름을 main.py로 지정합니다.
- 초록색 Run 버튼을 누르거나 F5 키를 눌러 스크립트를 시작하세요.
- SW-420 센서를 두드리거나 흔들어 감지할 진동을 주세요.
- Thonny 하단의 Shell 창에 출력되는 메시지를 확인하세요.
문제 해결
SW-420 진동 센서가 예상대로 동작하지 않으면 다음 단계를 시도해 보세요:
- 감도 조정: 보드의 가변저항을 돌려 센서의 감도를 높이거나 낮춘 다음, 가볍게 두드려 보고 조금 더 세게 두드려 다시 테스트하세요.
- 주변 진동으로부터 분리: 주변 잡음으로 동작하지 않도록 센서를 단단히 고정하고, 모터, 팬, 또는 스스로 흔들리는 표면에서 멀리 두세요.
- 배선 확인: VCC, GND, DO 핀이 올바르고 단단하게 연결되어 있는지 확인하세요.
- 전원 확인: 전압 강하가 불규칙한 읽기 값을 일으킬 수 있으므로, ESP32에 안정적인 전원이 공급되는지 확인하세요.
동영상
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.