Arduino - Deursensor

De deursensor wordt veel gebruikt op het gebied van beveiliging. Hij wordt gebruikt om ingangen te detecteren of te monitoren (zoals deuren, ramen enzovoort). De deursensor is ook bekend als "ingangssensoren", "contactsensoren" of "raamsensoren".

Hardware Benodigd

1×Arduino Uno R3
1×USB 2.0 kabel type A/B
1×Deursensor
1×(Aanbevolen) Schroefklem Block Shield voor Arduino Uno
1×(Aanbevolen) Breadboard-Shield voor Arduino Uno
1×(Aanbevolen) Behuizing voor Arduino Uno
1×(Aanbevolen) Prototyping Basisplaat & Breadboard Kit voor Arduino Uno

Of u kunt de volgende kits kopen:

1×DIYables STEM V3 Starterskit (Arduino inbegrepen)
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 Deursensor

Pinout

De deursensor bestaat uit twee onderdelen:

  • Eén reed switch met twee pinnen
  • Eén magneet
Deursensor Pinout

Net als bij een gewone schakelaar/knop hoeft u de twee pinnen van de reed switch niet te onderscheiden.

Hoe Het Werkt

De magneet wordt bevestigd aan de deur/het raam (bewegend gedeelte), en de reed switch wordt bevestigd aan het deurkozijn (vast gedeelte). De twee onderdelen maken contact wanneer de deur gesloten is.

  • Wanneer de magneet dicht bij de reed switch is, is het circuit van de reed switch gesloten
  • Wanneer de magneet ver weg is van de reed switch, is het circuit van de reed switch open
Deursensor Hoe Het Werkt Pinout

※ Notiz:

De reed switch zelf geeft geen LOW of HIGH signaal op zijn pinnen. Het is enkel een gesloten of open stroomkring. Afhankelijk van hoe u de pinnen aan de Arduino aansluit, kan de waarde op de pin LOW, HIGH, of floating (zwevend - onvoorspelbare waarde) zijn. Om deze zwevende waarde te voorkomen, moet u gebruikmaken van een pull-up of pull-down weerstand op de Arduino-pin.

Als u één pin van de reed switch aansluit op GND en de andere pin aansluit op een Arduino input pin met een pull-up weerstand (intern of extern):

  • Wanneer de magneet dichtbij de reed switch is, is de waarde op de Arduino input pin LOW
  • Wanneer de magneet ver weg is van de reed switch, is de waarde op de Arduino input pin HIGH

Dus:

  • Om de staat van de deur te controleren hoeft u alleen de staat van de Arduino input pin te controleren:
    • Als de staat LOW is, is de deur gesloten
    • Als de staat HIGH is, is de deur open
  • Om deur-openings- en deur-sluitingsgebeurtenissen te detecteren, kunt u de statusverandering van de Arduino input pin detecteren:
    • Als de status verandert van LOW naar HIGH, wordt een deur-openingsgebeurtenis gedetecteerd
    • Als de status verandert van HIGH naar LOW, wordt een deur-sluitingsgebeurtenis gedetecteerd

Bedradingsschema

Arduino Deursensor Bedradingsschema

This image is created using Fritzing. Click to enlarge image

Hoe Te Programmeren Voor Deursensor

  • Initialiseer de Arduino pin in digitale inputmodus met de functie pinMode(). Bijvoorbeeld pin 13
pinMode(13, INPUT_PULLUP);
int doorState = digitalRead(13);

Arduino Code - Controleer Of De Deur Open Of Gesloten Is

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-door-sensor */ const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin int doorState; void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode } void loop() { doorState = digitalRead(DOOR_SENSOR_PIN); // read state if (doorState == HIGH) { Serial.println("The door is open"); } else { Serial.println("The door is closed"); } }

Snelle Stappen

  • Kopieer bovenstaande code en open deze in de Arduino IDE
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden
  • Beweeg de magneet dicht naar de reed switch en daarna weer weg van de reed switch
  • Bekijk het resultaat in de Seriële Monitor
COM6
Send
The door is open The door is open The door is closed The door is closed The door is closed The door is closed The door is closed The door is open The door is open
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

Arduino Code - Detecteer Deur-openings- en Deur-sluitingsgebeurtenissen

/* * Deze Arduino code is ontwikkeld door newbiely.nl * Deze Arduino code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino/arduino-door-sensor */ const int DOOR_SENSOR_PIN = 13; // Arduino pin connected to door sensor's pin int currentDoorState; // current state of door sensor int lastDoorState; // previous state of door sensor void setup() { Serial.begin(9600); // initialize serial pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { lastDoorState = currentDoorState; // save the last state currentDoorState = digitalRead(DOOR_SENSOR_PIN); // read new state if (lastDoorState == LOW && currentDoorState == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (lastDoorState == HIGH && currentDoorState == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Kopieer bovenstaande code en open deze in de Arduino IDE
  • Klik op de Upload knop in de Arduino IDE om de code naar de Arduino te uploaden
  • Beweeg de magneet dicht naar de reed switch en daarna weer weg van de reed switch
  • Bekijk het resultaat in de Seriële Monitor
COM6
Send
The door-closing event is detected The door-opening event is detected
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

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.

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