ESP8266 - Contrôle de serrure électromagnétique par bouton

Le tutoriel vous explique comment utiliser un ESP8266 et un bouton pour contrôler un verrou électromagnétique. Lorsque le bouton est pressé, l'ESP8266 déverrouille la porte pour une période de temps (par exemple, 10 secondes). Après cela, la porte se verrouille à nouveau.

Nous passerons du facile au difficile en deux étapes :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Electromagnetic Lock
1×Relay
1×12V Power Adapter
1×DC Power Jack
1×Push Button
1×(Optional) Panel-mount Push Button
1×Breadboard
1×Jumper Wires
1×(Optional) 5V Power Adapter for ESP8266
1×(Optional) ESP8266 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 bouton et de la serrure électromagnétique

Si vous n'êtes pas familier avec les serrures électromagnétiques et les boutons (y compris les brochages, le fonctionnement et la programmation), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du verrou électromagnétique à bouton ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Voir plus dans l'agencement des broches de l'ESP8266 et comment alimenter l'ESP8266 et d'autres composants.

Code ESP8266 - Bouton contrôle un verrou électromagnétique sans anti-rebond

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-button-control-electromagnetic-lock */ #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define RELAY_PIN D8 // The ESP8266 pin connected to relay's pin int prev_button_state; // The previous state of button int button_state; // The current 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 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

Pour commencer avec ESP8266 sur Arduino IDE, suivez ces étapes :

  • Consultez le tutoriel comment configurer l'environnement pour ESP8266 sur Arduino IDE si c'est votre première utilisation de l'ESP8266.
  • Câblez les composants comme indiqué dans le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Choisissez la bonne carte ESP8266, comme (par exemple NodeMCU 1.0 (Module ESP-12E)), et son port COM respectif.
  • Connectez un ESP8266 à un ordinateur à l'aide d'un câble USB.
  • Ouvrez l'Arduino IDE, sélectionnez la carte et le port appropriés.
  • Copiez le code et ouvrez-le dans l'Arduino IDE.
  • Appuyez sur le bouton Upload dans l'Arduino IDE pour compiler et télécharger le code vers l'ESP8266.
  • Rapprochez la plaque d'armature de l'électroaimant.
  • Appuyez une fois sur le bouton.
  • Observez l'attraction entre la plaque d'armature et l'électroaimant pendant 10 secondes.

Explication du code

Découvrez l'explication ligne par ligne contenue dans les commentaires du code source !

※ NOTE THAT:

En pratique, le code mentionné ci-dessus ne fonctionne pas toujours correctement. Pour garantir son bon fonctionnement, nous devons debouncer le bouton. Le debouncing peut être délicat pour les débutants. Heureusement, la bibliothèque ezButton simplifie grandement les choses.

Code ESP8266 - Contrôle d'un verrou électromagnétique avec anti-rebond

Quel est le but de l'anti-rebond ? ⇒ Consultez le tutoriel sur l'anti-rebond des boutons ESP8266 pour comprendre pourquoi l'anti-rebond est nécessaire.

/* * Ce code ESP8266 NodeMCU a été développé par newbiely.fr * Ce code ESP8266 NodeMCU 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/esp8266/esp8266-button-control-electromagnetic-lock */ #include <ezButton.h> #define BUTTON_PIN D1 // The ESP8266 pin connected to button's pin #define RELAY_PIN D8 // The ESP8266 pin connected to relay's pin ezButton button(BUTTON_PIN); // create ezButton object for pin D8 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 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

  • Câblez les composants comme indiqué sur le schéma.
  • Connectez la carte ESP8266 à votre ordinateur à l'aide d'un câble USB.
  • Ouvrez Arduino IDE sur votre ordinateur.
  • Sélectionnez la bonne carte ESP8266, comme par exemple le NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.
  • Installez la bibliothèque ezButton. Référez-vous à Comment Faire pour les instructions.
  • Ouvrez le code dans Arduino IDE et cliquez sur le bouton Upload pour le charger sur l'ESP8266.
  • Rapprochez la plaque d'armature de l'électroaimant et appuyez une fois sur le bouton.
  • Observez l'attraction entre la plaque d'armature et l'électroaimant pendant 10 secondes.

※ NOTE THAT:

Dans le code ci-dessus, nous avons utilisé la fonction de délai. En conséquence, il n'est pas nécessaire de déboguer le bouton. Néanmoins, nous fournissons quand même le code avec débogage au cas où vous voudriez effectuer plus de tâches sans utiliser la fonction de délai. Consultez Comment utiliser millis() au lieu de delay() pour plus d'informations.

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!