ESP32 - Verrou à solénoïde avec bouton

Ce tutoriel vous explique comment utiliser l'ESP32 avec un bouton et un verrou à solénoïde. En détail, nous apprendrons à utiliser le bouton pour contrôler le verrou à solénoïde sans anti-rebond et avec anti-rebond. Chaque fois que le bouton est pressé, déverrouillez la porte pendant 10 secondes puis verrouillez la porte.

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×Solenoid Lock
1×12V Power Adapter
1×(Optional) DC Power Jack
1×Breadboard
1×Jumper Wires
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 des boutons et des serrures à solénoïde

Nous avons des tutoriels spécifiques sur la serrure à solénoïde et le bouton. 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 câbles à l'ESP32, le code ESP32... Pour en savoir plus, consultez les liens suivants :

Diagramme de câblage

Schéma de câblage du verrou à solénoïde avec 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 Contrôle Serrure à Solénoïde Sans Antirebond

/* * 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-solenoid-lock */ #define BUTTON_PIN 22 // ESP32 pin GPIO22 connected to button #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to the solenoid lock relay // variables will change: int prev_button_state; // the previous state of button int button_state; // the current 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 digitalWrite(RELAY_PIN, HIGH); // lock the door button_state = digitalRead(BUTTON_PIN); } void loop() { prev_button_state = button_state; // save the last state button_state = digitalRead(BUTTON_PIN); // read new state if (prev_button_state == HIGH && button_state == LOW) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

Étapes rapides

  • Si c'est la première fois que vous utilisez un ESP32, 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, ESP32 Dev Module) 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
  • Appuyez sur le bouton une fois.
  • Observez l'état de la langue de la serrure.

Explication du code ligne par ligne

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

En pratique, nous devons supprimer le rebond du bouton. La partie suivante montrera comment supprimer le rebond pour le bouton.

Code ESP32 - Contrôle d'un verrou à solénoïde avec anti-rebond

Pourquoi faut-il désactiver le rebond pour le bouton ? ⇒ voir Tutoriel sur le Debounce de bouton ESP32

/* * 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-solenoid-lock */ #include <ezButton.h> #define BUTTON_PIN 22 // ESP32 pin GPIO22 connected to button #define RELAY_PIN 27 // ESP32 pin GPIO27 connected to the solenoid lock relay ezButton button(BUTTON_PIN); // create ezButton object that attach to pin 7; 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 digitalWrite(RELAY_PIN, HIGH); // lock the door } void loop() { button.loop(); // MUST call the loop() function first if (button.isPressed()) { Serial.println("The button is pressed"); digitalWrite(RELAY_PIN, LOW); // unlock the door in 10 seconds delay(10000); // 10 seconds digitalWrite(RELAY_PIN, HIGH); // lock the door again } }

É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 sur le bouton une fois.
  • Observez l'état de la gâche de la serrure.

※ NOTE THAT:

Étant donné que le code ci-dessus utilise la fonction delay(), nous n'avons pas besoin de réaliser de rebond pour le bouton. Cependant, nous fournissons toujours le code avec anti-rebond au cas où vous modifieriez ce code et n'utiliseriez pas la fonction delay().

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!