ESP8266 - Knopf - Relais

Dieses Tutorial zeigt dir, wie du den ESP8266 und einen Taster verwendest, um das Relais zu steuern. Indem wir das Relais mit einem Solenoidschloss, einer Glühbirne, einem LED-Streifen, einem Motor oder einem Aktuator verbinden, können wir einen Taster verwenden, um sie zu steuern. Wir werden zwei verschiedene Anwendungen kennenlernen:

Anwendung 1 - Der Relaiszustand ist mit dem Tasterzustand synchronisiert. Im Detail:

Anwendung 2 - Der Relaiszustand wird jedes Mal umgeschaltet, wenn der Knopf gedrückt wird. Genauer gesagt:

In der Anwendung 2, müssen wir den Taster entprellen, um sicherzustellen, dass er richtig funktioniert. Wir werden sehen, warum das wichtig ist, indem wir vergleichen, wie das Relais sich verhält, wenn wir den ESP8266-Code mit und ohne Entprellung des Tasters verwenden.

Erforderliche Hardware

1×ESP8266 NodeMCU
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×Breadboard-Taster mit Kappe
1×Breadboard-Taster-Kit
1×Panel-Drucktaster
1×Taster-Modul
1×Relais
1×Breadboard
1×Verbindungskabel
1×(Optional) Magnetschloss
1×(Optional) 12V Netzteil
1×(Optional) DC-Stromanschluss
1×(Empfohlen) Schraubklemmen-Erweiterungsboard für ESP8266
1×(Empfohlen) Stromverteiler für ESP8266 Typ-C

Oder Sie können die folgenden Kits kaufen:

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 Button

Wenn Sie mit Relais und Taster (einschließlich Pinbelegung, Betrieb und Programmierung) nicht vertraut sind, können Ihnen die folgenden Tutorials helfen:

Verdrahtungsdiagramm

ESP8266 NodeMCU-Taster-Relais-Schaltplan

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

Weitere Informationen finden Sie unter ESP8266-Pinbelegung und wie man ESP8266 und andere Komponenten mit Strom versorgt.

Anwendung 1 - Der Relaiszustand stimmt mit dem Tasterzustand überein

ESP8266-Code

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-button-relay */ #define BUTTON_PIN D1 // The ESP8266 pin D1 connected to button's pin #define RELAY_PIN D7 // The ESP8266 pin D7 connected to relay's pin void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(BUTTON_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode pinMode(RELAY_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode } void loop() { int button_state = digitalRead(BUTTON_PIN); // read new state if (button_state == LOW) { Serial.println("The button is being pressed"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (button_state == HIGH) { Serial.println("The button is unpressed"); digitalWrite(RELAY_PIN, LOW); // turn off } }

Schnelle Schritte

Um mit dem ESP8266 in der Arduino-IDE zu beginnen, folgen Sie diesen Schritten:

  • Schauen Sie sich das Tutorial Wie man die Umgebung für ESP8266 in der Arduino-IDE einrichtet an, wenn Sie ESP8266 zum ersten Mal verwenden.
  • Verdrahten Sie die Bauteile wie im Diagramm gezeigt.
  • Verbinden Sie das ESP8266-Board mit Ihrem Computer über ein USB-Kabel.
  • Öffnen Sie die Arduino-IDE auf Ihrem Computer.
  • Wählen Sie das richtige ESP8266-Board aus, z. B. NodeMCU 1.0 (ESP-12E-Modul), und den entsprechenden COM-Port.
  • Verbinden Sie einen ESP8266 über ein USB-Kabel mit Ihrem Computer.
  • Starten Sie die Arduino-IDE und wählen Sie das richtige Board und den richtigen Port aus.
  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino-IDE.
  • Klicken Sie in der Arduino-IDE auf die Upload-Schaltfläche, um den Code zu kompilieren und auf den ESP8266 hochzuladen.
Code in der Arduino-IDE hochladen
  • Drücken Sie den Knopf und halten Sie ihn einige Sekunden lang gedrückt.
  • Überprüfen Sie die Veränderung des Zustands des Relais.

Sie werden sehen, dass der Relaiszustand mit dem Tasterzustand übereinstimmt.

Code-Erklärung

Schau dir die Zeile-für-Zeile-Erklärung an, die in den Kommentaren des Quellcodes enthalten ist!

Anwendung 2 - Taster schaltet Relais um

ESP8266-Code – Taste schaltet Relais ohne Entprellung

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-button-relay */ #define BUTTON_PIN D1 // The ESP8266 pin D1 connected to button's pin #define RELAY_PIN D7 // The ESP8266 pin D7 connected to relay's pin int relay_state = LOW; // The current state of relay int button_state; // The current state of button int last_button_state; // The previous state of button void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(BUTTON_PIN, INPUT_PULLUP); // Configure the ESP8266 pin to the input pull-up mode pinMode(RELAY_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode button_state = digitalRead(BUTTON_PIN); } void loop() { last_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if (last_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); // toggle state of relay relay_state = !relay_state; // control relay according to the toggled state digitalWrite(RELAY_PIN, relay_state); } }

Code-Erklärung

Sie können die Erklärung in den Kommentarzeilen des oben gezeigten ESP8266-Codes finden.

Im Code ist der Ausdruck relay_state = !relay_state äquivalent zum folgenden Code:

if(relay_state == LOW) relay_state = HIGH; else relay_state = LOW;

Schnelle Schritte

  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino-IDE.
  • Laden Sie den Code auf den ESP8266 hoch.
  • Drücken Sie Reset und den Knopf mehrmals.
  • Überprüfen Sie die Änderung des Relaiszustands.

Sie könnten feststellen, dass das Relais jedes Mal beim Drücken des Tasters ein- oder ausschaltet, aber es muss nicht immer dasselbe sein. Manchmal kann es bei nur einem Tastendruck mehrfach sehr schnell umschalten, oder es schaltet überhaupt nicht um (es schaltet zweimal sehr schnell um, was mit bloßem Auge nicht zu erkennen ist).

⇒ Um dieses Problem zu lösen, müssen wir Entprellung des Buttons.

ESP8266-Code – Knopf schaltet Relais mit Entprellung um

Das Entprellen eines Knopfes kann für Anfänger eine Herausforderung darstellen. Glücklicherweise macht die ezButton-Bibliothek das einfach.

Warum ist Entprellung notwendig? Siehe das ESP8266 - Button Debounce Tutorial für weitere Informationen.

/* * Dieser ESP8266 NodeMCU Code wurde von newbiely.de entwickelt * Dieser ESP8266 NodeMCU 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/esp8266/esp8266-button-relay */ #include <ezButton.h> #define BUTTON_PIN D1 // The ESP8266 pin D1 connected to button's pin #define RELAY_PIN D7 // The ESP8266 pin D7 connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object for pin 7; int relay_state = LOW; // The current state of relay void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(RELAY_PIN, OUTPUT); // Configure the ESP8266 pin to the output mode button.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) { Serial.println("The button is pressed"); // toggle state of relay relay_state = !relay_state; // control relay according to the toggled state digitalWrite(RELAY_PIN, relay_state); } }

Schnelle Schritte

  • Installieren Sie die ezButton-Bibliothek. Siehe Anleitung für Anweisungen.
  • Kopieren Sie den Code und öffnen Sie ihn in der Arduino IDE.
  • Klicken Sie auf die Hochladen-Schaltfläche in der Arduino IDE, um den Code auf den ESP8266 hochzuladen.
  • Drücken und lassen Sie den Knopf mehrmals los.
  • Beobachten Sie die Veränderung des Relaiszustands.

Sie werden feststellen, dass das Relais jedes Mal, wenn Sie den Knopf drücken, nur einmal ein- oder ausschaltet.

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!