아두이노 우노 Q SW-420 진동 센서
SW-420 진동 센서 모듈은 충격이나 진동을 감시하고 이를 깨끗한 디지털 신호로 보고하므로, 프로그램이 노이즈가 많은 아날로그 파형을 해석할 필요가 없습니다. 모듈 내부에는 작은 스프링 방식의 스위치가 금속 접점 가까이에 있으며, 온보드 LM393 비교기가 그 스위치를 지켜보다가 진동이 스위치를 흔드는 순간 출력을 바꿉니다. 보드의 작은 가변저항으로 어느 정도의 흔들림을 이벤트로 볼지 조절할 수 있습니다. Arduino UNO Q의 Bridge 및 Telegram 연동과 함께 사용하면, 무언가가 부딪히거나, 흔들리거나, 조작되는 순간 휴대폰으로 즉시 알림을 받을 수 있습니다.
이 튜토리얼에서 배울 내용:
- SW-420 진동 센서가 무엇이며 어떻게 작동하는지
- SW-420 진동 센서를 Arduino UNO Q MCU에 배선하는 방법
- 디지털 출력을 읽어 진동을 감지하는 방법
- Bridge를 사용하여 진동 상태와 이벤트를 Linux 측(Python)에 전달하는 방법
- Arduino UNO Q에서 진동이 감지되면 Telegram 알림을 받는 방법
- SW-420 진동 센서와 함께 Arduino UNO Q에서 OpenClaw를 사용하는 방법

준비물
| 1 | × | Arduino UNO Q | 아마존 | |
| 1 | × | USB Cable for Arduino Uno Q | 아마존 | |
| 1 | × | SW-420 Vibration Sensor Module | 아마존 | |
| 1 | × | 점퍼케이블 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 스크루 터미널 블록 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) Sensors/Servo Expansion Shield for Arduino Uno | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 브레드보드 쉴드 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 케이스 | 쿠팡 | 아마존 | |
| 1 | × | (추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 | 아마존 |
SW-420 진동 센서에 대하여
SW-420 진동 센서 모듈은 작은 스프링 방식의 진동 스위치를 중심으로 만들어졌습니다. 모듈이 가만히 있는 동안 스위치는 하나의 정지 위치에 머물고, 진동이나 충격이 스위치를 흔드는 순간 스위치의 접점 상태가 바뀝니다. 온보드 LM393 비교기가 이 기계적 변화를 깨끗한 디지털 신호로 바꾸고, 작은 가변저항으로 출력이 트리거되기 전에 필요한 흔들림의 정도를 정확하게 조절할 수 있습니다. 모듈은 간단한 디지털 신호를 출력합니다:
- LOW: 진동 없음 — 모듈이 대기 상태
- HIGH: 진동 또는 충격 감지됨
모듈 구성:
- VCC 핀: 3.3V ~ 5V 전원 공급
- GND 핀: 접지
- DO 핀: 디지털 출력 — LOW = 대기, HIGH = 진동 감지됨
- PWR LED: 전원 표시등
- 상태 LED: 출력이 HIGH가 될 때마다 켜집니다

배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
| SW-420 진동 센서 핀 | Arduino UNO Q MCU |
|---|---|
| GND | GND |
| VCC | 5V |
| DO | D8 |
SW-420 진동 센서 프로그래밍 방법
- 센서 핀을 디지털 입력으로 설정합니다:
- 디지털 출력을 읽습니다:
- 이전 상태와 비교하여 진동 이벤트를 감지합니다:
Arduino UNO Q 코드
Arduino UNO Q에는 함께 동작하는 두 개의 프로세서가 있습니다:
- STM32 MCU는 SW-420 진동 센서의 디지털 출력을 읽고 진동 이벤트를 감지합니다
- Qualcomm MPU는 Wi-Fi가 있는 Debian Linux를 실행합니다 — 이 섹션에서는 MCU만 프로그래밍합니다. 두 프로세서가 Bridge를 통해 함께 동작하는 방법은 뒤 섹션에서 보여줍니다.
빠른 단계
Arduino UNO Q를 처음 사용하시나요? 진행하기 전에 아두이노 우노 Q 시작하기 튜토리얼을 따라 하세요.
- 연결: 배선도와 같이 SW-420 진동 센서를 Arduino UNO Q MCU에 연결합니다.
- Arduino App Lab 열기: Arduino App Lab을 실행하고 Arduino UNO Q를 감지할 때까지 기다립니다.
- 새 App 만들기: Create New App 버튼을 클릭합니다.

- App에 이름을 지정합니다. 예: SW420VibrationSensor
- Create를 클릭하여 확인합니다.

- 스케치 붙여넣기: 위의 MCU 코드를 복사하여 sketch/sketch.ino에 붙여넣습니다.
- 업로드: Arduino App Lab에서 Run 버튼을 클릭합니다.

- 센서를 가볍게 두드리거나 흔들어 보고 — 시리얼 모니터 출력을 확인합니다.
- 센서가 너무 민감하거나 충분히 민감하지 않다고 느껴지면 온보드 가변저항을 돌려 조절합니다.
App Lab 콘솔 출력
Bridge: Linux + MCU
이 섹션에서는 Linux 측이 Bridge를 통해 진동 상태를 읽고 진동 이벤트를 받을 수 있도록 Arduino UNO Q의 두 프로세서를 모두 프로그래밍하는 방법을 보여줍니다:
- SW-420 진동 센서는 MCU에 연결됩니다 — MCU는 디지털 출력을 계속 감시하고 현재 상태를 캐시합니다
- MPU는 센서 핀을 직접 읽을 수 없습니다 — Bridge 함수를 호출하여 현재 상태를 가져오거나 새 진동 이벤트를 확인합니다
- MPU에는 Wi-Fi가 있습니다 — 완전한 Debian Linux를 실행하므로, 진동이 감지되는 순간 Telegram 알림을 보낼 수 있습니다
- Arduino_RouterBridge는 두 프로세서 간의 RPC 통신을 가능하게 합니다
- ⚠️ /dev/ttyHS1(Linux)과 Serial1(MCU)은 라우터가 예약한 것입니다 — 사용자 코드에서 절대 열지 마세요
요약하면: MCU가 DO 핀으로 진동 감지 → 이벤트 플래그 설정 → MPU가 Bridge를 폴링 → MPU가 Telegram 알림 전송.
MCU 코드 (Bridge)
Python 코드 (Bridge)
빠른 단계
- 연결: 배선도와 같이 SW-420 진동 센서를 Arduino UNO Q에 연결합니다.
- Arduino App Lab을 열고 VibrationSensorBridge라는 이름의 새 App을 만듭니다.
- MCU 스케치를 sketch/sketch.ino에 붙여넣습니다.
- Python 코드를 Python 파일에 붙여넣습니다.
- Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.

- Search for Arduino_RouterBridge created by Arduino and click the Install button.
- 업로드: Run 버튼을 클릭합니다.

- 센서를 두드려 보고 — 두 콘솔 모두에 이벤트가 나타나는 것을 확인합니다.
App Lab 콘솔 출력
Telegram
Arduino UNO Q의 SW-420 진동 센서에서 진동이 감지되면 즉시 Telegram 알림을 받으세요.
MCU 스케치: 이전 Bridge 섹션의 MCU 스케치를 그대로 사용합니다.
Python 코드 (Telegram)
빠른 단계
- YOUR_TELEGRAM_BOT_TOKEN을 BotFather에서 받은 실제 봇 토큰으로 바꿉니다.
- YOUR_CHAT_ID를 여러분의 Telegram 채팅 ID로 바꿉니다.
- 이 Python 코드를 App의 Python 파일에 붙여넣습니다 (MCU 스케치는 그대로 유지).
- Run 버튼을 클릭한 다음 — 센서를 두드리거나 흔들어 Telegram 알림을 발생시킵니다.
App Lab 콘솔 출력
ArduinoBot
OpenClaw
You can adapt the OpenClaw to this tutorial by refering the instruction on 아두이노 우노 Q - OpenClaw Tutorial
프로젝트 아이디어
SW-420 진동 센서와 Arduino UNO Q로 다양한 유용한 프로젝트를 만들 수 있습니다:
- 문/창문 조작 경보: 센서를 문이나 창문에 붙여 두세요 — 누군가 억지로 열거나 두드리면 MPU가 즉시 Telegram 알림을 보내 바로 알 수 있습니다
- 소포 충격 기록기: 센서를 배송 상자 안에 테이프로 붙여 두세요 — MPU가 모든 충격 이벤트의 시각을 Linux의 로그 파일에 기록하므로, 운송 중에 소포가 험하게 다뤄졌는지 알 수 있습니다
- 세탁기 감시기: 센서를 가전제품에 장착하세요 — MPU가 Bridge를 통해 진동 이벤트를 추적하고, 기계가 비정상적으로 심하게 흔들리거나 예상 시간에 멈추지 않으면 Telegram 메시지를 보냅니다
- 지진/충격 데모 장난감: 센서를 간단한 조기 경보 데모로 사용하세요 — MCU가 갑작스러운 충격을 즉시 표시하고, MPU가 곧바로 Telegram 경고를 보냅니다
- 작업장 장비 모니터: 센서를 동작 중인 공구나 기계에 부착하세요 — MPU가 Bridge를 계속 폴링하다가, 예상치 못한 진동으로 장비 점검이 필요해 보이는 순간 Telegram으로 알려줍니다