ESP32 - Relais bascule pour capteur de porte

Ce tutoriel vous explique comment utiliser l'ESP32 pour basculer l'état du relais à chaque fermeture de porte.

Nous pouvons étendre ce tutoriel pour utiliser le capteur de porte afin de contrôler une bande de LED, une sirène, une ampoule ou un actionneur... en les connectant au relais.

À propos du relais et du capteur de porte

Nous proposons des tutoriels spécifiques sur le relais et le capteur de porte. 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 relais de capteur de porte ESP32

Cette image a été créée avec Fritzing. Cliquez pour agrandir l'image.

Si vous ne savez pas comment alimenter l'ESP32 et d'autres composants, consultez les instructions dans le tutoriel suivant : Comment alimenter l'ESP32..

Code ESP32 - Le capteur de porte bascule le relais

/* * 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-door-sensor-toggle-relay */ #define DOOR_SENSOR_PIN 16 // ESP32 pin GPIO16 connected to door sensor's pin #define RELAY_PIN 26 // ESP32 pin GPIO26 connects to the IN pin of relay // variables will change: int relayState = LOW; // the current state of relay int lastDoorState; // the previous state of door sensor int currentDoorState; // the current state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set ESP32 pin to input pull-up mode pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode currentDoorState = digitalRead(DOOR_SENSOR_PIN); } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected, toggles state of relay"); // toggle state of relay relayState = !relayState; // control relay arccoding to the toggled state digitalWrite(RELAY_PIN, relayState); } }

Étapes rapides

  • Si c'est la première fois que vous utilisez ESP32, consultez Installation du logiciel ESP32..
  • Faites 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.
  • Approchez l'aimant du commutateur à lames puis éloignez-le. Répétez plusieurs fois cette opération.
  • Observez le changement d'état du relais.

Explication du code ligne par ligne

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

Dans le code, relayState = !relayState est équivalent au code suivant :

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

Vidéo

※ NOS MESSAGES

  • N'hésitez pas à partager le lien de ce tutoriel. Cependant, veuillez ne pas utiliser notre contenu sur d'autres sites web. Nous avons investi beaucoup d'efforts et de temps pour créer ce contenu, veuillez respecter notre travail !