ESP8266 - Capteur de porte - Relais

Ce tutoriel vous explique comment utiliser l'ESP8266 et un capteur de porte pour contrôler un relais. En connectant le relais à un verrou à solénoïde, une ampoule, une bande LED, un moteur ou un actionneur..., nous pouvons utiliser un capteur de porte pour les contrôler. Nous allons apprendre deux applications différentes :

Application 1 - Le relais est activé lorsque la porte est ouverte et le relais est désactivé lorsque la porte est fermée. L'état du relais est synchronisé avec l'état du capteur de porte. En détail :

Application 2 - L'état du relais est basculé à chaque ouverture de porte. Plus précisément :

Préparation du matériel

1×ESP8266 NodeMCU
1×Micro USB Cable
1×Door Sensor
1×Relay
1×Breadboard
1×Jumper Wires
1×(Optional) Solenoid Lock
1×(Optional) 12V Power Adapter
1×(Optional) DC Power Jack
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 relais et du capteur de porte

Si vous n'êtes pas familier avec le relais et le capteur de porte (y compris le brochage, le fonctionnement et la programmation), les tutoriels suivants peuvent vous aider :

Diagramme de câblage

Schéma de câblage du relais de capteur de porte 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.

Application 1 - L'état du relais est synchronisé avec l'état du capteur de porte

Code ESP8266

/* * 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-door-sensor-relay */ #define DOOR_SENSOR_PIN D3 // The ESP8266 pin D3 connected to door sensor's pin #define RELAY_PIN D7 // The ESP8266 pin D7 connects to the IN pin of relay int door_state; void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_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() { door_state = digitalRead(DOOR_SENSOR_PIN); // read state if (door_state == HIGH) { Serial.println("The door is open!, turns the relay ON"); digitalWrite(RELAY_PIN, HIGH); // turn on relay } else { Serial.println("The door is closed, turns the relay OFF"); digitalWrite(RELAY_PIN, LOW); // turn off relay } }

É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.
  • Connectez 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.
  • Choisissez la bonne carte ESP8266, comme par exemple NodeMCU 1.0 (Module ESP-12E), et son port COM respectif.
  • Connectez un ESP8266 à votre ordinateur avec un câble USB.
  • Lancez Arduino IDE, et sélectionnez la bonne carte et le bon port.
  • Copiez le code et ouvrez-le dans Arduino IDE.
  • Cliquez sur le bouton Upload sur Arduino IDE pour compiler et téléverser le code sur l'ESP8266.
Téléversement de code Arduino IDE
  • Ouvrez et fermez la porte
  • Vérifiez le changement d'état du relais.

Vous verrez que l'état du relais est synchronisé avec l'état du capteur de porte.

Explication du code

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

Application 2 - Le capteur de porte active le relais

Code ESP8266 - Le capteur de porte bascule le relais

/* * 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-door-sensor-relay */ #define DOOR_SENSOR_PIN D3 // The ESP8266 pin D3 connected to door sensor's pin #define RELAY_PIN D7 // The ESP8266 pin D7 connects to the IN pin of relay int relay_state = LOW; // The current state of relay int prev_door_state; // The previous state of door sensor int door_state; // The current state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_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 door_state = digitalRead(DOOR_SENSOR_PIN); } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected, toggles state of relay"); // toggle state of relay relay_state = !relay_state; // control relay according to the toggled state digitalWrite(RELAY_PIN, relay_state); } }

Explication du code

Vous pouvez trouver l'explication dans les lignes de commentaire du code ESP8266 ci-dessus.

Dans le code, l'expression relay_state = !relay_state est équivalente au code suivant :

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

Étapes rapides

  • Copiez le code et ouvrez-le dans l'IDE Arduino.
  • Téléversez le code sur l'ESP8266.
  • Ouvrez et fermez la porte plusieurs fois.
  • Vérifiez le changement d'état du relais.

Vous remarquerez que le relais s'activera ou se désactivera une fois à chaque fois que vous fermerez la porte.

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!