ESP32 - Bouton bascule relais

Ce tutoriel vous explique comment utiliser l'ESP32 pour basculer l'état d'un relais entre ON et OFF lorsque vous appuyez sur un bouton. Plus précisément :

Les codes ESP32 contiennent du code pour un bouton qui bascule un relais sans et avec anti-rebond.

Nous pouvons étendre ce tutoriel pour utiliser un bouton afin de basculer l'état d'un solénoïde, d'un ventilateur, d'une ampoule ou d'un actionneur... en les connectant au relais.

Préparation du matériel

1×ESP-WROOM-32 Dev Module
1×USB Cable Type-C
1×Push Button
1×(Optional) Panel-mount Push Button
1×Relay
1×Breadboard
1×Jumper Wires
1×(Optional) Solenoid Lock
1×(Optional) 12V Power Adapter
1×(Optional) DC Power Jack
1×(Recommended) ESP32 Screw Terminal Adapter

Or you can buy the following sensor kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)
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 relais et du bouton

Nous disposons de tutoriels spécifiques sur les relais et les boutons. Chaque tutoriel contient des informations détaillées et des instructions étape par étape sur le brochage du matériel, le principe de fonctionnement, la connexion des fils à l'ESP32, le code ESP32... Pour en savoir plus, consultez les liens suivants :

Diagramme de câblage

Schéma de câblage du relais à bouton ESP32

This image is created using Fritzing. Click to enlarge image

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, vous pouvez trouver des conseils dans le tutoriel suivant : Comment alimenter l'ESP32.

Code ESP32 - Bouton bascule relais sans anti-rebond

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/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); } }

Étapes rapides

  • Si vous utilisez l'ESP32 pour la première fois, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Réalisez le câblage comme sur l'image ci-dessus.
  • Connectez la carte ESP32 à votre PC via un câble micro USB.
  • Ouvrez Arduino IDE sur votre PC.
  • Sélectionnez la bonne carte ESP32 (par exemple, Module ESP32 Dev) et le port COM.
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans Arduino IDE.
  • Continuez à appuyer sur le bouton plusieurs secondes puis relâchez-le.
  • Observez le changement d'état du relais.

Explication du code ligne par ligne

Le code ESP32 ci-dessus contient des explications ligne par ligne. Veuillez lire les commentaires dans le code !

Dans le code, relay_state = !relay_state équivaut au code suivant :

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

※ NOTE THAT:

Le code ci-dessus ne contient pas de code de rebond pour le bouton. Sans rebond pour le bouton, des comportements inattendus peuvent se produire. Voir Pourquoi le rebond est nécessaire pour un bouton. Le rebond pour le bouton est compliqué pour les débutants. Heureusement, la bibliothèque ezButton effectue le rebond du bouton pour nous.

Code ESP32 - Bouton bascule le relais avec anti-rebond

/* * Ce code ESP32 a été développé par newbiely.fr * Ce code ESP32 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/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); } }

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, consultez comment configurer l'environnement pour ESP32 sur Arduino IDE.
  • Installez la bibliothèque ezButton. Voir Comment faire
  • Copiez le code ci-dessus et collez-le dans Arduino IDE.
  • Compilez et téléchargez le code sur la carte ESP32 en cliquant sur le bouton Upload dans Arduino IDE
  • Appuyez plusieurs fois sur le bouton
  • Observez le changement d'état du relais.

Vidéo

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!