Arduino UNO Q - Capteur de Vibration SW-420

Le module capteur de vibration SW-420 surveille les chocs ou les vibrations et les signale sous forme d'un signal numérique propre, de sorte que votre programme n'a jamais à interpréter une onde analogique bruitée. À l'intérieur du module, un petit interrupteur à ressort se trouve près d'un contact métallique ; le comparateur LM393 intégré surveille cet interrupteur et bascule sa sortie à l'instant où une vibration le perturbe, tandis qu'un petit potentiomètre sur la carte vous permet de régler la quantité de secousse qui compte comme un événement. Associé au Bridge et à l'intégration Telegram de l'Arduino UNO Q, vous pouvez recevoir une alerte instantanée sur votre téléphone dès que quelque chose est heurté, secoué ou manipulé.

Dans ce tutoriel, vous apprendrez :

Arduino UNO Q Capteur de Vibration SW-420

Matériel Requis

1×Arduino UNO Q
1×USB Cable for Arduino Uno Q
1×SW-420 Vibration Sensor Module
1×Fils de connexion
1×Recommandé: Shield à bornier à vis pour Arduino Uno
1×Recommandé: Sensors/Servo Expansion Shield for Arduino Uno
1×Recommandé: Shield plaque d'essai pour Arduino Uno
1×Recommandé: Boîtier pour Arduino Uno
1×Recommandé: Kit plaque de base prototypage et plaque d'essai pour Arduino Uno

Ou vous pouvez acheter les kits suivants:

1×Kit de Capteurs DIYables (18 capteurs/écrans)
Divulgation : Certains des liens fournis dans cette section sont des liens affiliés Amazon. Nous pouvons recevoir une commission pour tout achat effectué via ces liens, sans coût supplémentaire pour vous. Nous vous remercions de votre soutien.

À propos du Capteur de Vibration SW-420

Le module capteur de vibration SW-420 est construit autour d'un minuscule interrupteur de vibration à ressort. Tant que le module reste immobile, l'interrupteur reste dans une position de repos ; dès qu'une vibration ou un choc le perturbe, l'état de contact de l'interrupteur bascule. Un comparateur LM393 intégré transforme ce changement mécanique en un signal numérique propre, et un petit potentiomètre vous permet d'ajuster exactement la quantité de secousse nécessaire avant que la sortie ne se déclenche. Le module fournit un simple signal numérique :

  • LOW : Aucune vibration — le module est au repos
  • HIGH : Vibration ou choc détecté

Le module comprend :

  • Broche VCC : alimentation 3,3V à 5V
  • Broche GND : Masse
  • Broche DO : Sortie numérique — LOW = repos, HIGH = vibration détectée
  • LED PWR : Indicateur d'alimentation
  • LED d'état : S'allume chaque fois que la sortie passe à HIGH
Brochage du Capteur de Vibration SW-420
image source: diyables.io

Schéma de Câblage

Schéma de câblage Arduino UNO Q Capteur de Vibration SW-420

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Broche du Capteur de Vibration SW-420 MCU Arduino UNO Q
GND GND
VCC 5V
DO D8

Comment Programmer pour le Capteur de Vibration SW-420

  • Configurez la broche du capteur en entrée numérique :
pinMode(SENSOR_PIN, INPUT);
  • Lisez la sortie numérique :
int vibration_state = digitalRead(SENSOR_PIN);
  • Détectez les événements de vibration en comparant avec l'état précédent :
if (prev_state == LOW && vibration_state == HIGH) Serial.println("Vibration DETECTED"); else if (prev_state == HIGH && vibration_state == LOW) Serial.println("Vibration stopped — idle again"); prev_state = vibration_state;

Code Arduino UNO Q

L'Arduino UNO Q dispose de deux processeurs qui fonctionnent ensemble :

  • Le MCU STM32 lit la sortie numérique du capteur de vibration SW-420 et détecte les événements de vibration
  • Le MPU Qualcomm exécute Debian Linux avec le Wi-Fi — dans cette section, seul le MCU est programmé. Une section ultérieure montre comment les deux processeurs fonctionnent ensemble via Bridge.
/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-sw-420-vibration-sensor */ // SW-420 vibration sensor DO pin: LOW = idle, HIGH = vibration detected #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to DO of the SW-420 vibration sensor int prev_vibration_state = LOW; int vibration_state; void setup() { Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); Serial.println("Arduino UNO Q SW-420 Vibration Sensor ready"); } void loop() { vibration_state = digitalRead(SENSOR_PIN); if (prev_vibration_state == LOW && vibration_state == HIGH) Serial.println("Vibration DETECTED"); else if (prev_vibration_state == HIGH && vibration_state == LOW) Serial.println("Vibration stopped — idle again"); prev_vibration_state = vibration_state; }

Étapes Rapides

Première fois avec Arduino UNO Q ? Suivez le tutoriel Démarrer avec Arduino UNO Q avant de continuer.

  • Connecter : Câblez le capteur de vibration SW-420 au MCU de l'Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrir Arduino App Lab : Lancez Arduino App Lab et attendez qu'il détecte votre Arduino UNO Q.
  • Créer une nouvelle application : Cliquez sur le bouton Créer une nouvelle application.
Créer une nouvelle application dans Arduino App Lab sur Arduino UNO Q
  • Donnez un nom à l'application, par exemple : SW420VibrationSensor
  • Cliquez sur Créer pour confirmer.
Dossiers et fichiers de l'application Arduino App Lab sur Arduino UNO Q
  • Coller le sketch : Copiez le code MCU ci-dessus et collez-le dans sketch/sketch.ino.
  • Téléverser : Cliquez sur le bouton Exécuter dans Arduino App Lab.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Tapotez ou secouez doucement le capteur — observez la sortie du Moniteur Série.
  • Tournez le potentiomètre intégré si le capteur vous semble trop sensible ou pas assez.

Sortie Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-05-06 14:20:01] Arduino UNO Q SW-420 Vibration Sensor ready [2026-05-06 14:20:07] Vibration DETECTED [2026-05-06 14:20:07] Vibration stopped — idle again [2026-05-06 14:20:12] Vibration DETECTED [2026-05-06 14:20:13] Vibration stopped — idle again

Bridge : Linux + MCU

Cette section montre comment programmer les deux processeurs de l'Arduino UNO Q pour que le côté Linux puisse lire l'état de vibration et recevoir les événements de vibration via Bridge :

  • Le capteur de vibration SW-420 est connecté au MCU — le MCU surveille la sortie numérique en continu et met en cache l'état actuel
  • Le MPU ne peut pas lire la broche du capteur directement — il appelle des fonctions Bridge pour obtenir l'état actuel ou vérifier la présence de nouveaux événements de vibration
  • Le MPU dispose du Wi-Fi — exécutant Debian Linux complet, il peut envoyer des alertes Telegram dès qu'une vibration est détectée
  • Arduino_RouterBridge permet la communication RPC entre les deux processeurs
  • ⚠️ /dev/ttyHS1 (Linux) et Serial1 (MCU) sont RÉSERVÉS par le routeur — ne les ouvrez jamais dans le code utilisateur

En résumé : MCU détecte la vibration via la broche DO → active un drapeau d'événement → MPU interroge Bridge → MPU envoie une alerte Telegram.

Code MCU (Bridge)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-sw-420-vibration-sensor */ #include "Arduino_RouterBridge.h" #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to DO of the SW-420 vibration sensor bool cached_vibration = false; // true = vibration present bool vibration_event = false; // true = new vibration detected (rising edge) int prev_state = LOW; String get_state(String arg) { return cached_vibration ? "vibrating" : "idle"; } String get_event(String arg) { if (vibration_event) { vibration_event = false; return "vibration_detected"; } return "none"; } void setup() { Bridge.begin(); Monitor.begin(); pinMode(SENSOR_PIN, INPUT); Bridge.provide("get_state", get_state); Bridge.provide("get_event", get_event); Monitor.println("Arduino UNO Q SW-420 Vibration Sensor Bridge ready"); } void loop() { int current = digitalRead(SENSOR_PIN); if (prev_state == LOW && current == HIGH) { // Idle → Vibrating cached_vibration = true; vibration_event = true; Monitor.println("Vibration detected!"); } else if (prev_state == HIGH && current == LOW) { // Vibrating → Idle cached_vibration = false; Monitor.println("Idle again."); } prev_state = current; }

Code Python (Bridge)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-sw-420-vibration-sensor */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Vibration state: {state}") time.sleep(0.5) App.run(user_loop=loop)

Étapes Rapides

  • Connecter : Câblez le capteur de vibration SW-420 à l'Arduino UNO Q comme indiqué dans le schéma de câblage.
  • Ouvrez Arduino App Lab et créez une nouvelle application nommée VibrationSensorBridge.
  • Collez le sketch MCU dans sketch/sketch.ino.
  • Collez le code Python dans le fichier Python.
  • Install the library: Click the Add sketch library button (the open book icon with a + sign) in the left sidebar.
Add sketch library in Arduino App Lab on Arduino UNO Q
  • Search for Arduino_RouterBridge created by Arduino and click the Install button.
My Apps / DIYables Apps
Run
Bricks
No bricks added...
Sketch Libraries
No sketch libra...
Files
python
sketch
.gitignore
README.md
app.yaml
sketch.ino
Add sketch library
Arduino_RouterBridge Arduino

This library provides a simple RPC bridge for Arduino UNO Q boards, allowing communication between the board and other devices using MsgPack serialization.

0.4.1
Install
More Info
  • Téléverser : Cliquez sur le bouton Exécuter.
Cliquez sur le bouton Exécuter dans Arduino App Lab sur Arduino UNO Q
  • Tapotez le capteur — observez l'événement apparaître dans les deux consoles.

Sortie Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
Message (Enter to send a message to "Newbiely" on usb(2820070321))
New Line
9600 baud
[2026-05-06 14:25:01] Arduino UNO Q SW-420 Vibration Sensor Bridge ready [2026-05-06 14:25:09] Vibration detected! [2026-05-06 14:25:10] Idle again.
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-05-06 14:25:02] Vibration state: idle [2026-05-06 14:25:04] Vibration state: idle [2026-05-06 14:25:09] Vibration state: vibrating [2026-05-06 14:25:11] Vibration state: idle

Telegram

Recevez des alertes Telegram instantanées lorsqu'une vibration est détectée par le capteur de vibration SW-420 de l'Arduino UNO Q.

Sketch MCU : Conservez le même sketch MCU de la section Bridge précédente.

Code Python (Telegram)

/* * Ce code Arduino UNO Q a été développé par newbiely.fr * Ce code Arduino UNO Q est mis à disposition du public sans aucune restriction. * Pour des instructions complètes et des schémas de câblage, veuillez visiter: * https://newbiely.fr/tutorials/arduino-uno-q/arduino-uno-q-sw-420-vibration-sensor */ from arduino.app_utils import * import requests import time TELEGRAM_BOT_TOKEN = "YOUR_TELEGRAM_BOT_TOKEN" CHAT_ID = "YOUR_CHAT_ID" last_update_id = 0 def get_updates(): global last_update_id url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/getUpdates" params = {"offset": last_update_id + 1, "timeout": 5} try: response = requests.get(url, params=params, timeout=10) data = response.json() if data["ok"]: return data["result"] except Exception as e: print(f"Error getting updates: {e}") return [] def send_message(chat_id, text): url = f"https://api.telegram.org/bot{TELEGRAM_BOT_TOKEN}/sendMessage" payload = {"chat_id": chat_id, "text": text} try: requests.post(url, data=payload, timeout=10) except Exception as e: print(f"Error sending message: {e}") def loop(): # Auto-alert on new vibration detection event = Bridge.call("get_event") if event == "vibration_detected": print("Vibration detected! Sending Telegram alert.") send_message(CHAT_ID, "🔨 Vibration detected by Arduino UNO Q!") # Handle Telegram commands updates = get_updates() for update in updates: last_update_id = update["update_id"] if "message" not in update: continue message = update["message"] chat_id = message["chat"]["id"] text = message.get("text", "").strip() print(f"Received: {text}") if text == "/start": send_message(chat_id, "Arduino UNO Q SW-420 Vibration Sensor Bot\n" "/state - Current vibration state (vibrating / idle)\n" "Automatic alert when vibration is detected") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Vibration state: {result}") App.run(user_loop=loop)

Étapes Rapides

  • Remplacez YOUR_TELEGRAM_BOT_TOKEN par votre vrai token de bot de BotFather.
  • Remplacez YOUR_CHAT_ID par votre identifiant de chat Telegram.
  • Collez ce code Python dans le fichier Python de votre application (conservez le même sketch MCU).
  • Cliquez sur le bouton Exécuter — tapotez ou secouez le capteur pour déclencher une alerte Telegram.

Sortie Console App Lab

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-05-06 14:30:00] Waiting for Telegram messages... [2026-05-06 14:30:06] Vibration detected! Sending Telegram alert. [2026-05-06 14:30:15] Received: /state
Telegram
Telegram 12:45
Welcome to Telegram!
ArduinoBot 10:19
Chatting with Arduino...
telegram-botfather
BotFather Yesterday
Your bot has been created.

ArduinoBot

bot
Today
🔨 Vibration detected by Arduino UNO Q!
10:15 AM
/state
10:16 AM ✓✓
Vibration state: idle
10:17 AM
/state
10:18 AM ✓✓
Vibration state: vibrating
10:19 AM

OpenClaw

You can adapt the OpenClaw to this tutorial by refering the instruction on Arduino UNO Q - OpenClaw Tutorial

Idées de Projets

Vous pouvez réaliser de nombreux projets utiles avec le capteur de vibration SW-420 et l'Arduino UNO Q :

  • Alerte d'effraction porte/fenêtre : Collez le capteur sur une porte ou une fenêtre — si quelqu'un la force ou frappe dessus, le MPU envoie une alerte Telegram instantanée pour que vous le sachiez tout de suite
  • Enregistreur de chocs pour colis : Fixez le capteur à l'intérieur d'un carton d'expédition — le MPU horodate chaque choc dans un fichier journal sous Linux pour que vous puissiez savoir si un colis a été malmené pendant le transport
  • Surveillance de machine à laver : Montez le capteur sur un appareil — le MPU suit les événements de vibration via Bridge et envoie un message Telegram si la machine vibre anormalement fort ou ne s'arrête pas à l'heure prévue
  • Jouet de démonstration séisme/impact : Utilisez le capteur comme une simple démonstration d'alerte précoce — le MCU signale instantanément tout choc soudain, et le MPU diffuse un avertissement Telegram en quelques instants
  • Moniteur d'équipement d'atelier : Fixez le capteur sur un outil ou une machine en marche — le MPU interroge Bridge en continu et vous alerte par Telegram dès qu'une vibration inattendue suggère que l'équipement a besoin d'attention

Tutoriels connexes

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !