Arduino UNO Q - Schallsensor

Ein Schallsensor erkennt Geräusche in der Umgebung und gibt ein digitales Signal aus. Er verfügt über ein eingebautes Potentiometer zur Empfindlichkeitsregelung. Verwenden Sie ihn, um Aktionen auszulösen, wenn ein Klatsch, Klopfen oder lautes Geräusch erkannt wird. Mit Bridge und Telegram kann Ihr Arduino UNO Q Sie sofort benachrichtigen, wenn er ein Geräusch hört.

In diesem Tutorial werden Sie lernen:

Arduino UNO Q Schallsensor

Erforderliche Hardware

1×Arduino UNO Q
1×USB-Kabel für Arduino Uno Q
1×Schallsensor
1×Jumper-Drähte
1×(Empfohlen) Schraubklemmenblock-Shield für Arduino Uno
1×(Empfohlen) Sensors/Servo Expansion Shield for Arduino Uno
1×(Empfohlen) Breadboard-Shield für Arduino Uno
1×(Empfohlen) Gehäuse für Arduino Uno
1×(Empfohlen) Prototyping-Grundplatte & Breadboard-Kit für Arduino Uno

Oder Sie können die folgenden Kits kaufen:

1×DIYables Sensor-Kit (18 Sensoren/Displays)
Offenlegung: Einige der in diesem Abschnitt bereitgestellten Links sind Amazon-Affiliate-Links. Wir können eine Provision für Käufe erhalten, die über diese Links getätigt werden, ohne zusätzliche Kosten für Sie. Wir schätzen Ihre Unterstützung.

Über den Schallsensor

Ein Schallsensormodul verfügt über ein kleines Mikrofon, das Vibrationen in der Luft (Schallwellen) erkennt. Das Modul konvertiert diese in ein digitales Signal:

  • HIGH: Still — kein Schall oberhalb des Schwellwerts erkannt
  • LOW: Schall erkannt

Das Modul enthält:

  • VCC-Anschluss: 3,3V bis 5V Stromversorgung
  • GND-Anschluss: Masse
  • OUT-Anschluss: Digitaler Ausgang — HIGH = still, LOW = Schall erkannt
  • Eingebautes Potentiometer: Regelt die Erkennungsempfindlichkeit
  • PWR-LED: Stromversorgungsanzeige
  • Sound-LED: Leuchtet auf, wenn Schall erkannt wird
Schallsensor Pinbelegung

So passen Sie die Empfindlichkeit an

Drehen Sie das Potentiometer am Modul:

  • Im Uhrzeigersinn: Empfindlicher (erkennt leisere Geräusche)
  • Gegen den Uhrzeigersinn: Weniger empfindlich (nur laute Geräusche lösen es aus)

Stellen Sie es so ein, dass die Sound-LED zuverlässig auf einen Klatsch oder ein Klopfen reagiert, aber bei Umgebungsgeräuschen ausgeschaltet bleibt.

Schaltschema

Arduino UNO Q Schallsensor Schaltschema

Dieses Bild wurde mit Fritzing erstellt. Klicken Sie, um das Bild zu vergrößern.

Schallsensor-Pin Arduino UNO Q MCU
GND GND
VCC 5V
OUT D8

Wie man für den Schallsensor programmiert

  • Konfigurieren Sie den Sensorpin als digitalen Eingang:
pinMode(SENSOR_PIN, INPUT);
  • Lesen Sie den digitalen Ausgang:
int sound_state = digitalRead(SENSOR_PIN);
  • Erkennen Sie Schallereignisse, indem Sie mit dem vorherigen Zustand vergleichen:
if (prev_state == HIGH && sound_state == LOW) Serial.println("Sound DETECTED"); else if (prev_state == LOW && sound_state == HIGH) Serial.println("Quiet again"); prev_state = sound_state;

Arduino UNO Q Code

Der Arduino UNO Q hat zwei Prozessoren, die zusammenarbeiten:

  • Die STM32 MCU liest den digitalen Ausgang des Schallsensors und erkennt Schallereignisse
  • Der Qualcomm MPU führt Debian Linux mit Wi-Fi aus — in diesem Abschnitt wird nur die MCU programmiert. Ein späterer Abschnitt zeigt, wie beide Prozessoren über Bridge zusammenarbeiten.
/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-sound-sensor */ // Sound sensor DO pin: HIGH = quiet, LOW = sound detected // Sensitivity is adjusted by the onboard potentiometer #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to OUT of the sound sensor int prev_sound_state = HIGH; int sound_state; void setup() { Serial.begin(9600); pinMode(SENSOR_PIN, INPUT); Serial.println("Arduino UNO Q Sound Sensor ready"); } void loop() { sound_state = digitalRead(SENSOR_PIN); if (prev_sound_state == HIGH && sound_state == LOW) Serial.println("Sound DETECTED"); else if (prev_sound_state == LOW && sound_state == HIGH) Serial.println("Sound gone — quiet again"); prev_sound_state = sound_state; }

Schnelle Schritte

Zum ersten Mal mit Arduino UNO Q? Folgen Sie dem Erste Schritte mit Arduino UNO Q Tutorial, bevor Sie fortfahren.

  • Verbinden: Verkabeln Sie den Schallsensor mit der Arduino UNO Q MCU wie im Schaltschema dargestellt.
  • Öffnen Sie Arduino App Lab: Starten Sie Arduino App Lab und warten Sie, bis es Ihren Arduino UNO Q erkennt.
  • Erstellen Sie eine neue App: Klicken Sie auf die Schaltfläche Neue App erstellen.
Neue App in Arduino App Lab auf Arduino UNO Q erstellen
  • Geben Sie der App einen Namen, z.B.: SoundSensor
  • Klicken Sie auf Erstellen, um zu bestätigen.
Arduino App Lab App-Ordner und -Dateien auf Arduino UNO Q
  • Fügen Sie den Sketch ein: Kopieren Sie den MCU-Code oben und fügen Sie ihn in sketch/sketch.ino ein.
  • Hochladen: Klicken Sie in Arduino App Lab auf die Run-Schaltfläche.
Klicken Sie auf die Run-Schaltfläche in Arduino App Lab auf Arduino UNO Q
  • Klatschen Sie in die Nähe des Sensors oder tippen Sie auf den Tisch — beobachten Sie die Serial Monitor-Ausgabe.
  • Stellen Sie das Potentiometer am Modul ein, wenn die Erkennung nicht zuverlässig ist.

App Lab Konsolenausgabe

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-04-29 09:00:01] Arduino UNO Q Sound Sensor ready [2026-04-29 09:00:05] Sound DETECTED [2026-04-29 09:00:05] Sound gone — quiet again [2026-04-29 09:00:08] Sound DETECTED [2026-04-29 09:00:08] Sound gone — quiet again

Bridge: Linux + MCU

Dieser Abschnitt zeigt, wie man beide Prozessoren des Arduino UNO Q programmiert, damit die Linux-Seite den Schallzustand lesen und Schallereignisse über Bridge empfangen kann:

  • Der Schallsensor ist mit der MCU verbunden — die MCU überwacht den digitalen Ausgang kontinuierlich und speichert den aktuellen Zustand
  • Die MPU kann den Sensorpin nicht direkt auslesen — sie ruft Bridge-Funktionen auf, um den aktuellen Zustand zu ermitteln oder auf neue Schallereignisse zu prüfen
  • Die MPU hat Wi-Fi — mit vollständigem Debian Linux kann sie Telegram-Benachrichtigungen im Moment der Schallerkennung senden
  • Arduino_RouterBridge aktiviert die RPC-Kommunikation zwischen den beiden Prozessoren
  • ⚠️ /dev/ttyHS1 (Linux) und Serial1 (MCU) sind RESERVIERT für den Router — öffnen Sie sie niemals in Benutzercode

Kurz gesagt: MCU erkennt Schall über DO-Pin → setzt Ereignis-Flag → MPU ruft Bridge ab → MPU sendet Telegram-Benachrichtigung.

MCU-Code (Bridge)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-sound-sensor */ #include "Arduino_RouterBridge.h" #define SENSOR_PIN 8 // The Arduino UNO Q MCU pin connected to OUT of the sound sensor bool cached_sound = false; // true = sound present bool sound_event = false; // true = new sound detected (rising edge) int prev_state = HIGH; String get_state(String arg) { return cached_sound ? "sound" : "quiet"; } String get_event(String arg) { if (sound_event) { sound_event = false; return "sound_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 Sound Sensor Bridge ready"); } void loop() { int current = digitalRead(SENSOR_PIN); if (prev_state == HIGH && current == LOW) { // Quiet → Sound cached_sound = true; sound_event = true; Monitor.println("Sound detected!"); } else if (prev_state == LOW && current == HIGH) { // Sound → Quiet cached_sound = false; Monitor.println("Quiet again."); } prev_state = current; }

Python-Code (Bridge)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-sound-sensor */ from arduino.app_utils import * import time def loop(): state = Bridge.call("get_state") print(f"Sound state: {state}") time.sleep(0.5) App.run(user_loop=loop)

Schnelle Schritte

  • Verbinden: Verkabeln Sie den Schallsensor mit Arduino UNO Q wie im Schaltschema dargestellt.
  • Öffnen Sie Arduino App Lab und erstellen Sie eine neue App namens SoundSensorBridge.
  • Fügen Sie den MCU-Sketch in sketch/sketch.ino ein.
  • Fügen Sie den Python-Code in die Python-Datei ein.
  • 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
  • Hochladen: Klicken Sie auf die Run-Schaltfläche.
Klicken Sie auf die Run-Schaltfläche in Arduino App Lab auf Arduino UNO Q
  • Klatschen Sie in die Nähe des Sensors — beobachten Sie, wie das Ereignis in beiden Konsolen angezeigt wird.

App Lab Konsolenausgabe

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-04-29 09:00:01] Arduino UNO Q Sound Sensor Bridge ready [2026-04-29 09:00:05] Sound detected! [2026-04-29 09:00:05] Quiet again.
DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:00:02] Sound state: quiet [2026-04-29 09:00:03] Sound state: quiet [2026-04-29 09:00:05] Sound state: sound [2026-04-29 09:00:06] Sound state: quiet

Telegram

Erhalten Sie sofortige Telegram-Benachrichtigungen, wenn Schall vom Arduino UNO Q Schallsensor erkannt wird.

MCU-Sketch: Behalten Sie den gleichen MCU-Sketch aus dem vorherigen Bridge-Abschnitt bei.

Python-Code (Telegram)

/* * Dieser Arduino UNO Q Code wurde von newbiely.de entwickelt * Dieser Arduino UNO Q Code wird der Öffentlichkeit ohne jegliche Einschränkung zur Verfügung gestellt. * Für vollständige Anleitungen und Schaltpläne besuchen Sie bitte: * https://newbiely.de/tutorials/arduino-uno-q/arduino-uno-q-sound-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 sound detection event = Bridge.call("get_event") if event == "sound_detected": print("Sound detected! Sending Telegram alert.") send_message(CHAT_ID, "🔊 Sound 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 Sound Sensor Bot\n" "/state - Current sound state (sound / quiet)\n" "Automatic alert when sound is detected") elif text == "/state": result = Bridge.call("get_state") send_message(chat_id, f"Sound state: {result}") else: send_message(chat_id, "Unknown command. Send /start for help.") time.sleep(0.3) App.run(user_loop=loop)

Schnelle Schritte

  • Ersetzen Sie YOUR_TELEGRAM_BOT_TOKEN durch Ihren tatsächlichen Bot-Token von BotFather.
  • Ersetzen Sie YOUR_CHAT_ID durch Ihre Telegram-Chat-ID.
  • Fügen Sie diesen Python-Code in die Python-Datei Ihrer App ein (behalten Sie den gleichen MCU-Sketch bei).
  • Klicken Sie auf die Run-Schaltfläche — klatschen Sie in die Nähe des Sensors, um eine Telegram-Benachrichtigung auszulösen.

App Lab Konsolenausgabe

DIYables_Apps
Stop
sketch.ino
1#include "Arduino_RouterBridge.h"
Serial Monitor
Python
[2026-04-29 09:10:00] Waiting for Telegram messages... [2026-04-29 09:10:05] Sound detected! Sending Telegram alert. [2026-04-29 09:10:10] 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
🔊 Sound detected by Arduino UNO Q!
10:15 AM
/state
10:16 AM ✓✓
Sound state: quiet
10:17 AM
/state
10:18 AM ✓✓
Sound state: sound
10:19 AM

OpenClaw

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

Projektideen

Mit dem Schallsensor und Arduino UNO Q können Sie viele nützliche Projekte realisieren:

  • Klatsch-Schalter: Erkennen Sie zwei schnelle Klatsche und schalten Sie ein Relais über Bridge um, um ein Licht oder einen Ventilator ein- oder auszuschalten — Python zählt Klatsch-Ereignisse innerhalb eines Zeitfensters von 500 ms und sendet den Umschaltbefehl
  • Babyüberwachung: Montieren Sie den Sensor in einem Raum — wenn er kontinuierliches Geräusch erkennt (Weinen), sendet die MPU eine Telegram-Benachrichtigung, damit Sie sofort von überall im Haus Bescheid wissen
  • Eindring-Warnung: Kombinieren Sie den Schallsensor mit dem Türsensor — Telegram-Benachrichtigungen für Türöffnung und unerwartete laute Geräusche, mit Zeitstempel und Dauer, die in eine Datei auf Linux protokolliert werden
  • Schallpegel-Protokollierungstool: Rufen Sie den Schallzustand jede Sekunde ab und protokollieren Sie die Erkennungshäufigkeit in eine CSV — senden Sie täglich einen Telegram-Bericht, der die Spitzenlautstundenstunden zur Lärmmessung anzeigt
  • Intelligente Türklingel: Erkennen Sie einen Klopfer an der Tür über den Schallsensor — die MPU sendet eine Telegram-Nachricht mit einem Foto (falls eine Kamera angeschlossen ist), damit Sie von remote sehen können, wer an der Tür ist

Fordern Sie sich selbst heraus

Bereit, noch weiter mit dem Schallsensor auf Arduino UNO Q zu gehen? Versuchen Sie diese Herausforderungen:

  • Einfach: Fügen Sie einen Schallzähler zum Python-Code hinzu — zählen Sie, wie oft Schall pro Minute erkannt wird, und drucken Sie die Summe alle 60 Sekunden in der Konsole aus.
  • Mittel: Implementieren Sie die Klatschmuster-Erkennung in Python: Erkennen Sie einen Doppelklatsch (zwei Geräusche innerhalb von 600 ms) versus einen Einzelklatsch — senden Sie für jedes Muster unterschiedliche Telegram-Nachrichten.
  • Fortgeschrittene: Erstellen Sie einen Schallzauer-Tracker: Notieren Sie die Start- und Endzeit jedes Schallereignisses auf der MCU-Seite mit millis() — stellen Sie die letzte Dauer über eine get_duration()-Bridge-Funktion bereit und beziehen Sie sie in jede Telegram-Benachrichtigung ein.

Verwandte Tutorials

※ UNSERE NACHRICHTEN

  • Sie können gerne den Link zu diesem Tutorial teilen. Bitte verwenden Sie jedoch unsere Inhalte nicht auf anderen Websites. Wir haben viel Mühe und Zeit in die Erstellung der Inhalte investiert, bitte respektieren Sie unsere Arbeit!