ESP32 - Bewegingssensor - Relay

Deze handleiding legt uit hoe u de ESP32 gebruikt met een HC-SR501 bewegingssensor en een relay. In detail schakelt de ESP32 automatisch de relay in zodra beweging wordt gedetecteerd, en schakelt de relay uit als er geen beweging is.

We kunnen deze handleiding uitbreiden om de bewegingssensor te gebruiken voor het aansturen van een led-strip, sirene, gloeilamp of actuator... door deze aan te sluiten op de relay.

Over Relay en Bewegingssensor

We hebben specifieke handleidingen over relay en bewegingssensor. Elke handleiding bevat uitgebreide informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, bekabeling naar ESP32 en ESP32 code... Lees meer over deze onderwerpen via de volgende links:

Bedradingsschema

ESP32 Bewegingssensor Relay Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Begininstelling

Detection Range Adjuster Draai deze helemaal met de klok mee dicht.
Time Delay Adjuster Draai deze helemaal tegen de klok in dicht.
Repeat Trigger Selector Plaats de jumper zoals op onderstaande afbeelding.
ESP32 bewegingssensor begininstelling

ESP32 Code

/* * Deze ESP32 code is ontwikkeld door newbiely.nl * Deze ESP32 code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/esp32/esp32-motion-sensor-relay */ #define MOTION_SENSOR_PIN 22 // ESP32 pin GPIO22 connected to the OUTPUT pin of motion sensor #define RELAY_PIN 26 // ESP32 pin GPIO26 connected to Relay's pin int motionStateCurrent = LOW; // current state of motion sensor's pin int motionStatePrevious = LOW; // previous state of motion sensor's pin void setup() { Serial.begin(9600); // initialize serial pinMode(MOTION_SENSOR_PIN, INPUT); // set ESP32 pin to input mode pinMode(RELAY_PIN, OUTPUT); // set ESP32 pin to output mode } void loop() { motionStatePrevious = motionStateCurrent; // store old state motionStateCurrent = digitalRead(MOTION_SENSOR_PIN); // read new state if (motionStatePrevious == LOW && motionStateCurrent == HIGH) { // pin state change: LOW -> HIGH Serial.println("Motion detected!, turns relay ON"); digitalWrite(RELAY_PIN, HIGH); // turn on } else if (motionStatePrevious == HIGH && motionStateCurrent == LOW) { // pin state change: HIGH -> LOW Serial.println("Motion stopped!, turns relay OFF"); digitalWrite(RELAY_PIN, LOW); // turn off } }

Snelle Stappen

  • Als u voor het eerst met ESP32 werkt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Maak de bekabeling zoals in bovenstaande afbeelding.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer de juiste ESP32 board (bijv. ESP32 Dev Module) en COM-poort.
  • Kopieer bovenstaande code en plak deze in Arduino IDE.
  • Compileer en upload de code naar het ESP32 board door te klikken op de knop Upload in Arduino IDE.
Arduino IDE code uploaden
  • Beweeg uw hand voor de sensor.
  • Observeer de verandering van de status van de relay.

Regel-voor-regel Code Uitleg

De bovenstaande ESP32 code bevat commentaarregel-voor-regel. Lees alstublieft deze commentaren in de code!

Video Tutorial

We overwegen het maken van videotutorials. Als u videotutorials belangrijk vindt, abonneer u dan op ons YouTube-kanaal om ons te motiveren de video's te maken.

Reacties

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!