Arduino Nano - Keypad Deurslot
Deze tutorial laat u zien hoe u een deurbeveiligingssysteem kunt bouwen dat beveiligd is met een wachtwoord, met behulp van een Arduino Nano, keypad, solenoïde slot of elektromagnetisch slot, en een LCD-display. Het deurslot systeem werkt als volgt:
- Gebruikers voeren een wachtwoord in via het keypad.
- De Arduino Nano controleert of het wachtwoord correct is.
- Als het ingevoerde wachtwoord klopt, zal de Arduino Nano het solenoïde slot deactiveren om de deur te ontgrendelen. De deur blijft vervolgens gedurende een ingestelde tijd (bijvoorbeeld 20 seconden) ontgrendeld voordat deze automatisch weer vergrendelt.
Om het eenvoudig te maken, is deze tutorial opgedeeld in meerdere stappen, van makkelijk tot moeilijk:
- Deel 1: Een simpel keypad deurslot systeem met Arduino Nano, keypad en solenoïde of elektromagnetisch slot.
- Deel 2: (Optioneel) Meerdere wachtwoorden ondersteunen
- Deel 3: (Optioneel) LCD-display toevoegen aan het keypad deurslot
- Deel 4: (Optioneel) Een pieptoon toevoegen wanneer een toets wordt ingedrukt
- Deel 5: (Optioneel) Een deursensor toevoegen aan het keypad deurslot
- Deel 6: (Optioneel) Beheer en opslag van geldige wachtwoorden in de interne EEPROM van de Arduino Nano
- Deel 7: (Optioneel) Opslaan van de toegangsgeschiedenis op een SD-kaart
Hardware Benodigd
Of u kunt de volgende kits kopen:
| 1 | × | DIYables Sensorkit (30 sensoren/displays) | |
| 1 | × | DIYables Sensorkit (18 sensoren/displays) |
Over Keypad, Solenoïde Slot, Elektromagnetisch Slot en LCD-display
Zowel het solenoïde slot als het elektromagnetisch slot worden gebruikt om de deur te vergrendelen/ontgrendelen. Ze verschillen vooral qua mechanisch ontwerp. De bedrading naar de Arduino Nano is vergelijkbaar en de Arduino Nano-code om ze te besturen is hetzelfde.
Bent u niet bekend met keypad, solenoïde slot, elektromagnetisch slot en LCD-display (pinout, hoe het werkt, programmeren, enz.), dan kunnen de volgende tutorials u helpen:
Bedradingsschema
- Bedradingsschema met Arduino Nano, keypad en solenoïde slot

This image is created using Fritzing. Click to enlarge image
- Bedradingsschema met Arduino Nano, keypad en elektromagnetisch slot

This image is created using Fritzing. Click to enlarge image
Arduino Nano Code - Keypad Deurslot
※ Notiz:
Het adres van het LCD kan verschillen afhankelijk van de fabrikant. In onze code is 0x27 gebruikt, zoals aangegeven door DIYables.
Snelle Stappen
- Verbind een USB-kabel met de Arduino Nano en de PC.
- Open de Arduino IDE en selecteer het juiste board en de juiste poort.
- Klik op het Libraries icoon in de linker balk van de Arduino IDE.
- Zoek naar “keypad”, en vind de keypad bibliotheek van Mark Stanley en Alexander Brevig.
- Druk op de Install knop om de keypad bibliotheek te installeren.

- Kopieer bovenstaande code en open deze in de Arduino IDE.
- Klik op de Upload knop om de code naar de Arduino Nano te uploaden.
- Open de Serial Monitor.
- Druk op de toetsen 12345 gevolgd door het symbool #.
- Druk daarna op de toetsen 1234 gevolgd door het symbool #.
- Controleer de status van de vergrendelingspen gedurende 20 seconden.
- Bekijk het resultaat in de Serial Monitor.
Code Uitleg
De geldige wachtwoorden zijn vooraf gedefinieerd in de Arduino Nano code. Een string wordt gebruikt om het door gebruikers ingevoerde wachtwoord op te slaan, dit heet input string. Op het keypad worden twee toetsen (* en #) gebruikt voor speciale functies: om het wachtwoord te wissen en om het wachtwoord te beëindigen. Het systeem werkt als volgt:
- Behalve de twee speciale toetsen, wordt elke andere ingedrukte toets toegevoegd aan de input string.
- Als * wordt ingedrukt, wordt de input string gewist. Dit kan gebruikt worden om de invoer opnieuw te starten.
- Als # wordt ingedrukt:
- Vergelijkt de Arduino Nano de input string met de vooraf gedefinieerde wachtwoorden. Als het overeenkomt met één van deze wachtwoorden, bestuurt Arduino Nano het relais om de deur te ontgrendelen.
- Ongeacht of het wachtwoord juist is of niet, wist de Arduino Nano de input string voor de volgende invoer.
Arduino Nano Code - Meerdere Wachtwoorden
LCD-Display Toevoegen aan het RFID Deurslot
Optioneel kunnen we een LCD-display toevoegen om de status (bijvoorbeeld TOEGEKEND/GEWEIGERD) aan gebruikers te tonen.
Bedradingsschema - Deurslot systeem met keypad, solenoïde of elektromagnetisch slot en LCD-display

This image is created using Fritzing. Click to enlarge image
Houd er rekening mee dat in bovenstaand bedrading schema zowel het relais als de LCD mogelijk niet werkt of onstabiel functioneert door onvoldoende stroomvoorziening. Wij raden sterk aan om een externe voeding te gebruiken voor zowel het relais als de LCD. Raadpleeg het volgende bedrading schema voor richtlijnen:

This image is created using Fritzing. Click to enlarge image
Arduino Nano Code - Keypad Deurslot
※ Notiz:
Het adres van het LCD kan verschillen afhankelijk van de fabrikant. In onze code is 0x27 gebruikt, zoals aangegeven door DIYables.
Pieptoon Toevoegen bij Toetsindrukking
We kunnen het deurslot responsiever maken door een piezo buzzer toe te voegen die een korte piep laat horen elke keer wanneer een toets op het keypad wordt ingedrukt.
Dit is vrij eenvoudig te realiseren. Daarom laten we dit deel aan uw creativiteit over. U kunt de Arduino Nano - Keypad Pieptoon tutorial bekijken voor meer begeleiding.
Een Deursensor Toevoegen aan het Keypad Deurslot
In de eerder genoemde code vergrendelt de Arduino Nano de deur na een time-out na het ontgrendelen. In de praktijk wordt er meestal een deursensor aan het systeem toegevoegd. Als de Arduino Nano detecteert dat de deur gesloten is, vergrendelt hij de deur direct in plaats van te wachten op de time-out.
Om het overzichtelijk te houden, hebben we de deursensor niet opgenomen in het bedrading schema en de code. Dit deel laten we aan uw creativiteit over. Raadpleeg de tutorials Arduino Nano - Deursensor en Arduino Nano - Deursensor besturing Relay voor meer uitleg.
Beheer en Opslag van Geldige Wachtwoorden in EEPROM
De hierboven genoemde code gebruikt vaste wachtwoorden (UID’s) die in de Arduino Nano code zijn vastgelegd. Dit betekent dat u de code moet aanpassen en opnieuw uploaden als u wachtwoorden wilt toevoegen of verwijderen, wat onhandig is.
In praktische toepassingen is het noodzakelijk om wachtwoorden te beheren zonder telkens de code te wijzigen en te uploaden. Om dit mogelijk te maken kunnen wachtwoorden opgeslagen worden in de EEPROM in plaats van hardcoded. Hiervoor is een methode nodig om gemakkelijk de wachtwoorden vanuit de EEPROM te beheren.
Er zijn twee methoden beschikbaar om wachtwoorden in EEPROM te beheren:
- Gebruik van master wachtwoorden
- Door een wachtwoord te gebruiken als ADD master wachtwoord, kunnen nieuwe wachtwoorden aan het systeem worden toegevoegd. Zodra de Arduino Nano het ADD master wachtwoord detecteert, schakelt hij tussen ADD-modus en OPERATION-modus.
- Tijdens de ADD-modus voegt Arduino Nano nieuwe wachtwoorden die hij detecteert toe aan de EEPROM.
- Een vergelijkbare aanpak wordt toegepast voor het DELETE master wachtwoord en DELETE-modus.
- Gebruik van ADD/DELETE-commando’s via Serial/Bluetooth/IR
- Commando’s worden verzonden via Serial/Bluetooth/IR met tools als Serial Monitor, Bluetooth-app of IR-controller.
- De commando’s bestaan uit een instructie (ADD/DELETE) en het wachtwoord.
Om één van deze twee methoden te gebruiken, moet er aanzienlijke Arduino Nano-code toegevoegd worden. Dit kan een uitdaging zijn voor beginners in programmeren. Daarom is deze tutorial bedoeld om een basisbegrip van het deurslot systeem te bieden zonder beginners te overladen met complexe code. Wilt u dit systeem praktisch toepassen, neem dan contact met ons op via onze betaalde programmeerservice.
Toegangsgeschiedenis Opslaan op een SD-kaart
Om de toegangsgeschiedenis bij te houden, kan het nodig zijn om de toegangstoestand (TOEGESTAAN/GEWEIGERD), datum en tijd op te slaan. Omdat EEPROM onvoldoende capaciteit heeft om de volledige geschiedenis op te slaan, kan hiervoor een SD-kaart worden gebruikt. Zie de tutorial Arduino Nano - Gegevens loggen met tijdstempel naar SD-kaart voor meer informatie.
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.
[Video-inhoud en links blijven onveranderd en worden hier weergegeven.]
[Geen opmerkingen]