ESP32 - Schallsensor - Relais

In diesem Tutorial werden wir untersuchen, wie man den Schallsensor zur Steuerung eines Relais einsetzt. Genauer gesagt werden wir zwei spannende Anwendungen untersuchen:

Indem Sie ein Relais an eine Glühbirne, einen LED-Streifen, einen Motor oder einen Aktuator anschließen, können wir den Schallsensor verwenden, um eine Glühbirne, einen LED-Streifen, einen Motor oder einen Aktuator zu steuern.

Erforderliche Hardware

1×ESP32 ESP-WROOM-32 Entwicklungsmodul
1×USB-Kabel Typ-A zu Typ-C (für USB-A PC)
1×USB-Kabel Typ-C zu Typ-C (für USB-C PC)
1×Schallsensor
1×Relais
1×Verbindungskabel
1×(Optional) Magnetschloss
1×(Optional) 12V Netzteil
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP32
1×(Empfohlen) Breakout Expansion Board for ESP32
1×(Empfohlen) Stromverteiler für ESP32

Oder Sie können die folgenden Kits kaufen:

1×DIYables ESP32 Starter-Kit (ESP32 enthalten)
1×DIYables Sensor-Kit (30 Sensoren/Displays)
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 Relais und Schallsensor

Wenn Sie nichts über Relais und Schallsensoren wissen (Pinbelegung, Funktionsweise, Programmierung …), informieren Sie sich in den folgenden Tutorials über sie:

Verdrahtungsdiagramm

ESP32 Schallsensor Relais Verdrahtungsdiagramm

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

Wenn Sie nicht wissen, wie Sie ESP32 und andere Komponenten mit Strom versorgen, finden Sie Anleitungen im folgenden Tutorial: Wie man ESP32 mit Strom versorgt.

ESP32-Code - Klangschalter schaltet Relais um

Der folgende Code schaltet den Zustand des Relais jedes Mal um, wenn ein Ton erkannt wird.

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-sound-sensor-relay */ #define SENSOR_PIN 25 // The ESP32 pin GPIO25 connected to the sound sensor #define RELAY_PIN 26 // The ESP32 pin GPIO26 connected to the relay int prev_sound_state; // the previous state of sound sensor int sound_state; // the current state of sound sensor int relay_state = LOW; // the current state of relay void setup() { Serial.begin(9600); // initialize serial pinMode(SENSOR_PIN, INPUT); // set ESP32 pin to input mode pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode sound_state = digitalRead(SENSOR_PIN); } void loop() { prev_sound_state = sound_state; // save the last state sound_state = digitalRead(SENSOR_PIN); // read new state if (prev_sound_state == HIGH && sound_state == LOW) { // state change: HIGH -> LOW Serial.println("The sound has been detected"); // toggle state of relay relay_state = !relay_state; // control relay arccoding to the toggrelay state digitalWrite(RELAY_PIN, relay_state); } }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet.
  • Verbinden Sie die Verkabelung gemäß dem obigen Bild.
  • Verbinden Sie das ESP32-Board über ein Micro-USB-Kabel mit Ihrem PC.
  • Öffnen Sie die Arduino-IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Verbinden Sie den ESP32 über ein USB-Kabel mit dem PC.
  • Öffnen Sie die Arduino-IDE und wählen Sie das richtige Board und den Port aus.
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf Upload, um den Code auf den ESP32 hochzuladen.
Arduino-IDE Code hochladen
  • Klatsche deine Hand vor dem Schallsensor
  • Sieh dir die Änderung des Relaiszustands an

Code-Erklärung

Lies die zeilenweise Erklärung in den Kommentarzeilen des Quellcodes!

ESP32-Code - schallaktiviertes Relais für eine bestimmte Zeit

Der unten stehende Code schaltet das Relais für einen Zeitraum ein, wenn ein Geräusch erkannt wird. Nach Ablauf dieses Zeitraums wird das Relais ausgeschaltet.

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-sound-sensor-relay */ #define SENSOR_PIN 25 // The ESP32 pin GPIO25 connected to the sound sensor #define RELAY_PIN 26 // The ESP32 pin GPIO26 connected to the relay #define TIME_PERIOD 5000 // in milliseconds int prev_sound_state; // the previous state of sound sensor int sound_state; // the current state of sound sensor void setup() { Serial.begin(9600); // initialize serial pinMode(SENSOR_PIN, INPUT); // set ESP32 pin to input mode pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode sound_state = digitalRead(SENSOR_PIN); } void loop() { prev_sound_state = sound_state; // save the last state sound_state = digitalRead(SENSOR_PIN); // read new state if (prev_sound_state == HIGH && sound_state == LOW) { // state change: HIGH -> LOW Serial.println("The sound has been detected"); // turn on relay digitalWrite(RELAY_PIN, HIGH); delay(TIME_PERIOD); // turn off relay digitalWrite(RELAY_PIN, LOW); } }

Bitte beachten Sie, dass der oben erwähnte Code zur Vereinfachung die delay()-Funktion verwendet. Wenn Sie jedoch zusätzlichen Code integrieren, kann dieser während der Verzögerung blockiert werden. Um dem entgegenzuwirken, implementiert der folgende Code einen nicht blockierenden Ansatz unter Verwendung der ezLED-Bibliothek. Hinter den Kulissen verwendet die ezLED-Bibliothek die millis()-Funktion anstelle von delay, um eine Blockierung zu verhindern.

/* * Dieser ESP32 Code wurde von newbiely.de entwickelt * Dieser ESP32 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/esp32/esp32-sound-sensor-relay */ #include <ezLED.h> // ezLED library #define SENSOR_PIN 25 // The ESP32 pin GPIO25 connected to the sound sensor #define RELAY_PIN 26 // The ESP32 pin GPIO26 connected to the relay #define TIME_PERIOD 5000 // in milliseconds ezLED relay(RELAY_PIN); // create a relay object that attach to pin RELAY_PIN int prev_sound_state; // the previous state of sound sensor int sound_state; // the current state of sound sensor void setup() { Serial.begin(9600); // initialize serial pinMode(SENSOR_PIN, INPUT); // set ESP32 pin to input mode sound_state = digitalRead(SENSOR_PIN); } void loop() { relay.loop(); // MUST call the relay.loop() function in loop() prev_sound_state = sound_state; // save the last state sound_state = digitalRead(SENSOR_PIN); // read new state if (prev_sound_state == HIGH && sound_state == LOW) { // state change: HIGH -> LOW Serial.println("The sound has been detected"); relay.turnON(); // turn on relay immediately relay.turnOFF(TIME_PERIOD); // turn off relay after TIME_PERIOD } }

Schnelle Schritte

  • Wenn Sie ESP32 zum ersten Mal verwenden, sehen Sie sich wie man die Umgebung für ESP32 in der Arduino-IDE einrichtet an.
  • Verkabeln Sie gemäß dem obigen Bild.
  • Schließen Sie das ESP32-Board über ein Mikro-USB-Kabel an Ihren PC an.
  • Öffnen Sie die Arduino-IDE auf Ihrem PC.
  • Wählen Sie das richtige ESP32-Board (z. B. ESP32 Dev Module) und den COM-Port aus.
  • Verbinden Sie das ESP32-Board über ein USB-Kabel mit dem PC.
  • Öffnen Sie die Arduino-IDE und wählen Sie das richtige Board und den richtigen Port aus.
  • Klicken Sie auf das Libraries-Symbol in der linken Leiste der Arduino-IDE.
  • Suchen Sie “ezLED”, und finden Sie anschließend die LED-Bibliothek von ArduinoGetStarted.
  • Klicken Sie auf die Install-Schaltfläche, um die ezLED-Bibliothek zu installieren.
ESP32-LED-Bibliothek
  • Kopieren Sie den obigen Code und öffnen Sie ihn in der Arduino IDE
  • Klicken Sie auf die Schaltfläche Hochladen in der Arduino IDE, um den Code auf den ESP32 hochzuladen
Code in der Arduino-IDE hochladen
  • Klatsche vor dem Schallsensor in die Hände
  • Beobachte die Änderung des Relaiszustands

Video Tutorial

Wir erwägen die Erstellung von Video-Tutorials. Wenn Sie Video-Tutorials für wichtig halten, abonnieren Sie bitte unseren YouTube-Kanal , um uns zu motivieren, die Videos zu erstellen.

※ 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!