Arduino Nano - Deursensor

De deursensor is een populaire keuze voor beveiligingsdoeleinden. Hij wordt gebruikt om ingangen zoals deuren en ramen te detecteren en te monitoren. Dit apparaat staat ook bekend als ingangssensor, contactsensor of raamsensor.

Deze handleiding laat u zien hoe u de Arduino Nano gebruikt in combinatie met de deursensor. We behandelen in detail:

Hardware Benodigdheden

1×Official Arduino Nano
1×Alternatief: DIYables ATMEGA328P Nano Development Board
1×USB A naar Mini-B USB kabel
1×Deursensor
1×(Aanbevolen) Schroefklem Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Breakout Uitbreidingsboard voor Arduino Nano
1×(Aanbevolen) Stromsplitter voor Arduino Nano

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 de Deursensor

De Pinout van de Deursensor

Een deursensor bestaat uit twee onderdelen:

  • Een magneet.
  • Een reed switch met twee pinnen: vergelijkbaar met een gewone schakelaar/knop, het is niet nodig om de twee pinnen te onderscheiden.
Door Sensor pinout

Werking

De magneet wordt bevestigd aan de deur/het raam (het beweegbare deel), en de reed switch wordt bevestigd aan het deurkozijn (het vaste onderdeel). De twee componenten komen in contact als de deur gesloten is:

  • Wanneer de magneet dicht bij de reed switch is, is het reed switch-circuit gesloten.
  • Wanneer de magneet ver weg van de reed switch is, is het reed switch-circuit open.
Door Sensor how it works

※ Notiz:

De reed switch levert geen output met alleen LOW of HIGH op zijn pinnen. Hij is óf gesloten óf open. Afhankelijk van hoe we hem aansluiten op de Arduino Nano, kan de pin een waarde hebben van LOW, HIGH of een floating value (onvoorspelbaar). Om een floating waarde te voorkomen, moet een pull-up of pull-down weerstand worden gebruikt op de Arduino Nano pin.

Als we één pin van de reed switch verbinden met GND en de andere pin van de reed switch met een input pin van de Arduino Nano die een pull-up weerstand heeft (intern of extern):

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

Om de status van de deur te bepalen kijken we simpelweg naar de status van de Arduino input pin:

  • Als de status LOW is, is de deur gesloten
  • Als de status HIGH is, is de deur open

We kunnen ook detecteren wanneer de deur open of dicht gaat door een verandering in de status van de Arduino input pin te volgen:

  • Als de status verandert van LOW naar HIGH, is een deur-openingsgebeurtenis gedetecteerd
  • Als de status verandert van HIGH naar LOW, is een deur-sluitingsgebeurtenis gedetecteerd

Aansluitschema

Arduino Nano Door Sensor wiring diagram

This image is created using Fritzing. Click to enlarge image

Hoe te Programmeren voor de Deursensor

  • Initialiseer de Arduino Nano pin als digitale ingang met de functie pinMode(). Bijvoorbeeld, om pin 2 als input in te stellen, gebruikt u de volgende code:
pinMode(2, INPUT_PULLUP);
  • Gebruik de functie digitalRead() om de status van de Arduino Nano pin uit te lezen.
int door_state = digitalRead(2);

Arduino Nano Code – Controleer Deur Open- en Gesloten Status

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

Snelle Stappen

  • Kopieer de code en open deze met de Arduino IDE.
  • Klik op de Upload-knop in de Arduino IDE om de code te compileren en te uploaden naar de Arduino Nano.
  • Breng de magneet dichtbij de reed switch en beweeg deze vervolgens weg.
  • Bekijk het resultaat in de Serial 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 Nano Code – Detecteer Door-opening en Door-sluiting Gebeurtenissen

/* * Deze Arduino Nano code is ontwikkeld door newbiely.nl * Deze Arduino Nano code wordt zonder enige beperking aan het publiek beschikbaar gesteld. * Voor volledige instructies en schema's, bezoek: * https://newbiely.nl/tutorials/arduino-nano/arduino-nano-door-sensor */ #define DOOR_SENSOR_PIN 2 // The Arduino Nano pin connected to door sensor's pin int door_state; // current state of door sensor int prev_door_state; // previous state of door sensor void setup() { Serial.begin(9600); // Initialize the Serial to communicate with the Serial Monitor. pinMode(DOOR_SENSOR_PIN, INPUT_PULLUP); // set arduino pin to input pull-up mode door_state = digitalRead(DOOR_SENSOR_PIN); // read state } void loop() { prev_door_state = door_state; // save the last state door_state = digitalRead(DOOR_SENSOR_PIN); // read new state if (prev_door_state == LOW && door_state == HIGH) { // state change: LOW -> HIGH Serial.println("The door-opening event is detected"); // TODO: turn on alarm, light or send notification ... } else if (prev_door_state == HIGH && door_state == LOW) { // state change: HIGH -> LOW Serial.println("The door-closing event is detected"); // TODO: turn off alarm, light or send notification ... } }
  • Kopieer de code en open deze in Arduino IDE.
  • Klik op de Upload-knop om de code naar de Arduino Nano te verzenden.
  • Breng de magneet dichtbij de reed switch en beweeg deze vervolgens weg.
  • Bekijk het resultaat in de Serial 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.

Bekijk onze video-tutorial voor een visuele begeleiding bij dit project! De video biedt extra inzichten en een stapsgewijze uitleg van de aansluitingen en programmering.

Functie Referenties

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