ESP32 C3 Super Mini SW-420 진동 센서

SW-420 진동 센서 모듈은 무언가가 흔들리거나, 부딪히거나, 두드리는 순간 ESP32 C3 Super Mini에 알려주므로 충격 알람, 충격 카운터, 배송 모니터를 만들 때 유용한 구성 요소입니다. 이 튜토리얼에서는 SW-420 모듈을 보드에 배선하고 진동 이벤트에 반응하는 스케치를 작성하는 방법을 안내합니다.

이 튜토리얼에서 배울 내용:

ESP32 C3 Super Mini sw-420 진동 센서

기본 스케치가 작동하면 부저를 울리거나, 알림을 보내거나, 프로젝트가 감지한 모든 충격 이벤트를 기록하도록 확장할 수 있습니다.

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×SW-420 Vibration Sensor Module 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(옵션) 5V Power Adapter 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

SW-420 진동 센서 정보

SW-420은 작은 스프링 기반 진동 스위치로 만들어진 충격 감지 모듈입니다. 모듈 내부에서 스프링은 금속 접점 가까이에 있으며, 두드리거나 흔들면 순간적으로 흔들립니다. 온보드 LM393 비교기가 이 흔들림을 ESP32 C3 Super Mini가 직접 읽을 수 있는 깨끗한 디지털 펄스로 바꿉니다.

주요 기능:

  • 깨끗하고 디바운스된 디지털 신호를 위한 온보드 LM393 비교기
  • 온보드 가변저항으로 트리거 임계값 조정 가능
  • 3.3V ~ 5V에서 잘 작동하며 ESP32 C3 Super Mini의 로직 레벨과 일치
  • 온보드 LED로 전원과 트리거 상태를 한눈에 확인
  • 라이브러리 불필요 — GPIO 함수 몇 개만 호출하면 됩니다

SW-420 진동 센서 핀아웃

모듈에 핀이 세 개뿐이므로 배선이 간단합니다.

  • VCC 핀: 전원 공급 장치에 연결 (3.3V ~ 5V)
  • GND 핀: 접지(0V)에 연결
  • DO 핀: 디지털 출력 핀 - 대기 중에는 LOW를 유지하고, 진동이나 충격이 감지되면 HIGH가 됩니다 - ESP32 C3 Super Mini의 디지털 입력 핀에 연결
sw-420 진동 센서 핀아웃
image source: diyables.io

추가 기능:

  • 전원 LED는 보드에 전원이 공급되는 동안 계속 켜져 있습니다
  • 트리거 LED는 DO 핀이 HIGH가 될 때마다 잠깐 깜빡입니다

작동 원리

작은 온보드 트리머 가변저항으로 비교기가 출력을 바꾸기 위해 필요한 충격의 세기를 설정합니다. 따라서 아주 가벼운 두드림부터 강한 충격까지 모듈을 조정할 수 있습니다.

디지털 출력 동작:

  • 진동이 없는 정지 상태 → DO 핀은 LOW를 유지합니다
  • 두드림, 흔들림 또는 충격이 내부 스위치를 흔듦 → DO 핀이 HIGH가 됩니다
  • 온보드 가변저항을 시계 방향 또는 반시계 방향으로 돌림 → 감도 임계값이 높아지거나 낮아집니다

배선 다이어그램

아래와 같이 SW-420 모듈을 ESP32 C3 Super Mini에 배선하세요.

중요 참고 사항:

  • 참고: 전선을 연결하거나 분리하기 전에 보드의 전원을 끄세요
  • 참고: VCC, GND, DO 세 개의 전선만 필요합니다
  • 참고: 풀업 저항이 필요 없습니다. 모듈의 비교기가 이미 DO 라인을 구동합니다
ESP32 C3 Super Mini sw-420 진동 센서 배선 다이어그램

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

SW-420 진동 센서 핀 ESP32 C3 Super Mini 핀
VCC 3.3V 또는 5V
GND GND
DO D3 (GPIO3)

SW-420 진동 센서 프로그래밍 방법

SW-420 모듈을 읽으려면 디지털 입력 핀 하나와 이전 상태와의 비교만 있으면 됩니다.

코드가 하는 일:

  • DO에 연결된 ESP32 C3 Super Mini 핀을 디지털 입력으로 설정합니다
  • 매 루프마다 핀을 확인합니다
  • 새로운 값을 이전 값과 비교하여 변화를 찾아냅니다
  • 진동이 시작되거나 멈추는 순간 시리얼 모니터에 메시지를 출력합니다

1단계 - 핀 초기화:

pinMode(D3, INPUT);

2단계 - 센서 상태 읽기:

int vibrationState = digitalRead(D3);

ESP32 C3 Super Mini 코드 - 진동 감지

/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-sw-420-vibration-sensor */ #define SENSOR_PIN 3 // The ESP32 C3 SuperMini pin 3 connected to the DO pin of the SW-420 vibration sensor int prev_vibration_state = LOW; // The previous state from the input pin (LOW = idle, at rest) int vibration_state; // The current reading from the input pin void setup() { // Initialize the Serial to communicate with the Serial Monitor. Serial.begin(115200); // initialize the ESP32's pin as an input pinMode(SENSOR_PIN, INPUT); } void loop() { // read the state of the ESP32's input pin vibration_state = digitalRead(SENSOR_PIN); if (prev_vibration_state == LOW && vibration_state == HIGH) Serial.println("The vibration has been detected"); else if (prev_vibration_state == HIGH && vibration_state == LOW) Serial.println("The vibration has stopped"); // save the the last state prev_vibration_state = vibration_state; }

빠른 단계

  • ESP32 C3 Mini가 처음이신가요? 먼저 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료하여 개발 환경을 설정하세요.
  • 배선 확인: 모든 연결이 위의 배선 다이어그램과 일치하는지 확인합니다
  • 코드 복사: 제공된 스케치를 Arduino IDE에 복사합니다
  • 보드 선택: 보드 메뉴에서 ESP32 C3 Super Mini를 선택합니다
  • 코드 업로드: Upload를 클릭하여 스케치를 ESP32 C3 Super Mini에 업로드합니다
  • 시리얼 모니터 열기: 보드레이트를 115200으로 설정합니다
  • 센서 테스트: SW-420 모듈을 두드리거나 살짝 흔듭니다
  • 출력 확인: 시리얼 모니터에서 진동 메시지를 확인합니다
∞
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
09:41:02.118 - The vibration has been detected 09:41:02.436 - The vibration has stopped 09:41:07.902 - The vibration has been detected 09:41:08.510 - The vibration has stopped 09:41:15.271 - The vibration has been detected 09:41:16.049 - The vibration has stopped
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

여기서부터 충격 이벤트가 발생할 때마다 부저를 연결하거나, 온보드 LED를 깜빡이거나, WiFi로 알림을 보낼 수 있습니다. 아래의 아이디어와 도전 과제를 참고하세요.

응용 및 프로젝트 아이디어

ESP32 C3 Super Mini와 SW-420 모듈을 충격과 움직임에 반응하는 프로젝트에 활용해 보세요.

  • 누군가 문이나 창문에 부딪히면 부저가 울리는 진동 알람을 만듭니다
  • 운송 중 소포가 받는 모든 충격을 기록하여 배송 중 거친 취급을 확인합니다
  • 세탁기나 모터의 불균형을 나타내는 비정상적인 진동을 모니터링합니다
  • 문을 두드리는 것을 초인종 트리거나 스마트 도어락 깨우기 신호로 만듭니다
  • 물체가 몇 번 맞았는지 세는 간단한 충격 카운터를 만듭니다

비디오 튜토리얼

이 프로젝트를 시각적으로 따라 하려면 아래 비디오를 시청하세요.

도전 과제

다음 도전 과제로 ESP32 C3 Super Mini SW-420 프로젝트를 한 단계 발전시켜 보세요.

  • 쉬움: 진동이 감지될 때마다 LED를 2초 동안 켭니다
  • 쉬움: 켜짐/꺼짐 메시지 대신 진동 이벤트의 누적 횟수를 출력합니다
  • 중간: 한 번의 두드림이 여러 이벤트로 기록되지 않도록 디바운스 타이머를 추가합니다
  • 중간: 센서와 부저를 결합하여 간단한 충격 알람을 만듭니다
  • 고급: 타임스탬프가 포함된 충격 이벤트를 SD 카드에 기록하거나 WiFi를 통해 서버로 보냅니다

문제 해결

ESP32 C3 Super Mini가 진동 이벤트를 제대로 감지하지 못한다면 다음 사항을 확인하세요.

일반적인 문제와 해결 방법:

  • 가변저항 조정: 너무 민감하거나 둔감하다면 — 온보드 트리머를 돌려 트리거 임계값을 조정하세요
  • 주변 진동 차단: 계속되는 오작동을 피하려면 모터, 팬 또는 스스로 흔들리는 표면에서 멀리 모듈을 설치하세요
  • 배선 확인: VCC, GND, DO가 배선 다이어그램과 일치하는지 확인하세요 — DO 연결이 느슨하면 계속 LOW로 읽힙니다
  • 전원 공급 확인: 전원이 불안정하면 비교기가 떨리거나 실제 이벤트를 놓칠 수 있습니다
  • 트리거 LED 확인: DO가 HIGH가 될 때마다 깜빡여야 합니다 — 세게 두드려도 켜지지 않으면 감도 설정을 다시 확인하세요

댓글

관련 튜토리얼