ESP32 - Deursensor schakelt LED aan/uit

Deze tutorial legt uit hoe u de ESP32 gebruikt om een LED aan of uit te schakelen elke keer dat de deur wordt gesloten.

Hardware Benodigd

1×ESP32 ESP-WROOM-32 Ontwikkelingsmodule
1×USB Kabel Type-C
1×Deursensor
1×LED Kit
1×LED (red)
1×220 ohm weerstand
1×Breadboard (experimenteerprint)
1×Jumperdraden (man-vrouw)
1×(Optioneel) DC Stroomaansluiting
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor ESP32
1×(Aanbevolen) Breakout Expansion Board for ESP32
1×(Aanbevolen) Stromsplitter voor ESP32

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Over LED en Deursensor

We hebben specifieke tutorials over LED en deursensor. Elke tutorial bevat gedetailleerde informatie en stapsgewijze instructies over hardware pinout, werkingsprincipe, aansluitingen naar ESP32 en ESP32 code... Leer er meer over via de volgende links:

Aansluitschema

ESP32 Deursensor LED Aansluitschema

This image is created using Fritzing. Click to enlarge image

ESP32 Code - Deursensor schakelt LED aan/uit

/* * 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-door-sensor-toggle-led */ #define DOOR_SENSOR_PIN 23 // ESP32 pin GPIO23 connected to the OUTPUT pin of door sensor #define LED_PIN 17 // ESP32 pin GPIO17 connected to LED's pin // variables will change: int ledState = LOW; // the current state of LED 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(LED_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 the state of LED"); // toggle state of LED ledState = !ledState; // control LED arccoding to the toggled state digitalWrite(LED_PIN, ledState); } }

Snel aan de slag

  • Als dit de eerste keer is dat u de ESP32 gebruikt, bekijk dan hoe u de omgeving instelt voor ESP32 in Arduino IDE.
  • Maak de bedrading zoals het bovenstaande plaatje.
  • Verbind de ESP32 met uw pc via een micro USB-kabel.
  • Open Arduino IDE op uw pc.
  • Selecteer het juiste ESP32 board (bijv. ESP32 Dev Module) en de juiste COM-poort.
  • Kopieer bovenstaande code en plak die in Arduino IDE.
  • Compileer en upload de code naar het ESP32 board door te klikken op de Upload knop in Arduino IDE.
  • Beweeg de magneet dicht naar de reed switch en daarna weer weg. Herhaal dit meerdere keren.
  • Observeer de verandering in de LED-status.

Regel-voor-regel Code Uitleg

De bovenstaande ESP32 code bevat een regel-voor-regel uitleg. Lees de commentaren in de code goed door!

In de code betekent ledState = !ledState hetzelfde als de volgende code:

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

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.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en helpt u om dit project snel succesvol te voltooien.

Opmerkingen

※ 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!