ESP32 - Knop Toggle Relay

Deze tutorial leert u hoe u met ESP32 de status van een relais schakelt tussen AAN en UIT door op een knop te drukken. Meer specifiek:

De ESP32 code bevat een voorbeeld om een relais te schakelen met een knop, zonder en met debouncing.

We kunnen deze tutorial uitbreiden om een solenoïde, ventilator, gloeilamp of actuator aan te sturen door deze op het relais aan te sluiten.

Over Relay en Knop

We hebben specifieke tutorials over relais en knop. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, bedrading op ESP32, ESP32 code... Leer er meer over via de volgende links:

Bedradingsschema

ESP32 Knop Relay Bedradingsschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code - Knop schakelt relais zonder debouncing

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-button-toggle-relay */ #define BUTTON_PIN 22 // ESP32 pin GPIO22 connected to button's pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to relay's pin // variables will change: 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 serial pinMode(BUTTON_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to 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 arccoding to the toggled state digitalWrite(RELAY_PIN, relay_state); } }

Snelle Stappen

  • Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Maak de bedrading zoals in de bovenstaande afbeelding.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar het ESP32 board door op de Upload-knop in Arduino IDE te klikken.
  • Houd de knop enkele seconden ingedrukt en laat dan los.
  • Bekijk de statuswissel van het relais.

Regel-voor-regel Code Uitleg

De bovenstaande ESP32 code bevat regel-voor-regel uitleg. Lees de opmerkingen in de code!

In de code is relay_state = !relay_state gelijk aan de volgende code:

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

※ Notiz:

Bovenstaande code bevat geen debounce code voor de knop. Zonder debouncing kunnen onverwachte gedragingen optreden. Zie Waarom heeft een knop debounce nodig. Debouncing is vaak ingewikkeld voor beginners. Gelukkig neemt de ezButton bibliotheek het debouncen voor de knop voor u uit handen.

ESP32 Code - Knop schakelt relais met debouncing

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-button-toggle-relay */ #include <ezButton.h> #define BUTTON_PIN 22 // ESP32 pin GPIO22 connected to button's pin #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; // variables will change: int relay_state = LOW; // the current state of relay void setup() { Serial.begin(9600); // initialize serial pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to 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 arccoding to the toggled state digitalWrite(RELAY_PIN, relay_state); } }

Snelle Stappen

  • Als u deze ESP32 voor het eerst gebruikt, zie hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Installeer de ezButton bibliotheek. Bekijk Hoe te doen.
  • Kopieer de bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar het ESP32 board via de Upload-knop in Arduino IDE.
  • Druk meerdere keren op de knop.
  • Observeer de statusverandering van het relais.

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en laat het proces stap voor stap zien.

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!