DIY Smart Lock met Arduino en RFID

Hier leest u hoe u een eenvoudig RFID-gebaseerd slim slot kunt bouwen met een Arduino als backbone en een paar goedkope componenten.

Hier leest u hoe u een eenvoudig RFID-gebaseerd slim slot kunt bouwen met een Arduino als backbone en een paar goedkope componenten.
Advertentie

Je loopt naar een onzichtbare vergrendeling waar alleen jij de sleutel voor hebt en opent hem zonder hem zelfs maar aan te raken. Klinkt goed? Vandaag gaan we een eenvoudig RFID-gebaseerd slim slot bouwen met een Arduino als ruggengraat en een paar goedkope componenten.

De technologie achter dit project wordt al in veel industrieën gebruikt. Iedereen die in een modern kantoor heeft gewerkt of openbaar vervoer heeft gebruikt, heeft het waarschijnlijk elke dag gebruikt. RFID (radiofrequentie-identificatie) identificeert gegevens die zijn opgeslagen op een chip in een kaart of dongle en vergelijkt deze met een lijst met reeds gescande tags.

We zullen een testcircuit bouwen om de toegang te regelen met behulp van een Mifare MFRC522-leesmodule, om een ​​slot te openen en te sluiten. We zullen een master keycard gebruiken om toegang tot verschillende tags toe te voegen of te verwijderen, en een eenvoudige LED-uitlezing creëren om ons te vertellen wat er in het systeem gebeurt.

Ten slotte zullen we een solenoïde toevoegen om als slot te fungeren, en een MOSFET om hem veilig aan en uit te schakelen met behulp van onze Arduino.

De MFRC522-lezer kan gegevens naar RC522-chips lezen en schrijven en slaat deze gegevens op in de Arduino EEPROM Hoe Arduino EEPROM te gebruiken om gegevens tussen energiecycli te bewaren Hoe Arduino EEPROM te gebruiken om gegevens tussen energiecycli te bewaren Wist u dat de Arduino gegevens kan opslaan wanneer het is uitgeschakeld? Ik heb het over de EEPROM, dus ga met me mee als ik je laat zien hoe je het moet lezen en schrijven. Lees verder . Dit zou een geweldige aanvulling zijn op elke DIY-opstelling en is vooral relevant voor elk basisbeveiligingssysteem. Het kan naast DIY-alarmsystemen worden gebruikt. Hoe maak je een eenvoudig Arduino-alarmsysteem Hoe maak je een eenvoudig Arduino-alarmsysteem Detecteer beweging en maak de indringer vervolgens bang met hoge alarmgeluiden en knipperende lichten. Klinkt dat leuk? Natuurlijk doet het. Dat is het doel van het Arduino-project van vandaag, geschikt ... Lees Meer of DIY Beveiligingscamera DIY Pan en Tilt Netwerk Beveiligingscamera met Raspberry Pi DIY Pan en Tilt Netwerk Beveiligingscamera met Raspberry Pi Leer hoe je een op afstand te bekijken pan- en tilt-beveiligingscamera kunt maken met een Raspberry Pi. Dit project kan 's morgens worden voltooid met alleen de eenvoudigste onderdelen. Meer lezen systemen.

Je zal nodig hebben

  • Arduino. We hebben een Uno gebruikt, hoewel elk Arduino-bord Arduino Koopgids: welk bord moet je kopen? Arduino Koopwijzer: welk bord moet je kopen? Er zijn zoveel verschillende soorten Arduino-boards, dat je zou worden vergeven dat je in de war was. Welke moet je kopen voor je project? Laat ons helpen, met deze Arduino koopgids! Meer lezen of kloon volstaan.
  • 3 x 220 ohm weerstanden
  • 1 x 10k ohm-weerstand
  • N kanaal Mosfet op logisch niveau
  • MFRC522-module met minimaal twee kaarten / fobs om te lezen. De meesten komen met een van elk, en kunnen voor minder dan $ 2 worden gekocht, maar waarschijnlijk heb je er al een in je portefeuille in de vorm van een openbare reiskaart.
  • Rode, blauwe en groene LED's
  • 12v Solenoid ($ 2)
  • 12v voeding
  • Broodplank en haak draden

De MFRC522-module

De ster van deze set-up is een goedkope MFRC522-module, die zowel een kaart als een fob met een s50- chip bevatte en elk zijn eigen unieke permanente identificatienummer (UID) opsloeg . Deze zijn beide functioneel identiek, alleen in een andere vorm.

module en kaart

Begin met het zoeken naar de MFRC522- bibliotheek in de bibliotheekmanager van je Arduino IDE en installeer deze. Als alternatief kunt u de bibliotheek downloaden en handmatig in de map bibliotheken installeren. Als je Arduino helemaal nieuw bent, kun je deze inleiding vinden om aan de slag te gaan Aan de slag met Arduino: een beginnershandleiding Aan de slag met Arduino: een beginnersgids Arduino is een open-source prototypeplatform voor elektronica op basis van flexibele, gebruiksvriendelijke hardware en software. Het is bedoeld voor kunstenaars, ontwerpers, hobbyisten en iedereen die geïnteresseerd is in het maken van interactieve objecten of omgevingen. Lees meer nuttig!

De bibliotheek bevat ook een Fritzing-diagram, waarvan ik een aantekening heb gemaakt waarin wordt aangegeven hoe de module aan uw Arduino moet worden bevestigd.

arduino rfid pinout-bedrading
Afbeelding tegoed: Miguel Balboa via Github

Wees voorzichtig: dit bord werkt op 3, 3V, niet op 5V, dus zorg ervoor dat je het op de juiste pin aansluit.

Om de installatie te testen, open je de DumpInfo- schets vanuit Bestand> Voorbeelden> MFRC522> DumpInfo en upload je deze naar je Arduino-bord. Open de seriële monitor en houd een van uw RFID-objecten tot aan de lezer. Je zou zoiets als dit moeten zien:

dump info serie-uitlezing

Als u fouten krijgt in de melding MIFARE_Read() failed: Timeout in communication of PCD_Authenticate() failed: Timeout in communication, maak u geen zorgen. Het betekent waarschijnlijk dat u de tag niet lang genoeg aan de lezer hebt vastgehouden om alle gegevens te kunnen lezen. Zolang u de kaart-UID krijgt (die wordt gelezen zodra de tag zich binnen het bereik van de lezer bevindt), zal deze met dit project werken. Als u helemaal geen meting krijgt, controleer dan uw bedrading en probeer het opnieuw.

De rest van het circuit

Nu we hebben gecontroleerd dat onze module werkt, kunnen we de rest van de componenten toevoegen. Verbind uw componenten als volgt:

volledige set-upcircuitfritzing

  • Onze 12v-voeding (voorlopig nog niet aangesloten) maakt verbinding met de rails van onze breadboard. Verbind de Arduino GND-pin en MFRC522 GND-pin met de grondrail.
  • De LEDS zijn verbonden met pennen 2, 3 en 4 en met de grondrail met 220 ohm-weerstanden.
  • Het poortbeen van onze MOSFET (links op afbeelding) wordt aangesloten op pen 5 en geaard via een weerstand van 10k ohm. Het afvoerbeen (midden) wordt aangesloten op de negatieve pool van onze 12v-solenoïde en het bronbeen (rechts) wordt verbonden met de grondrail.
  • Verbind de pluspool van de 12v Solenoid en de VIN van de Arduino met de 12v rail op het breadboard.

Met deze opstelling zal elke keer dat we een HOOG signaal van de Arduino naar de MOSFET sturen, de stroom doorgaan naar de Solenoid. Er is niets dat u ervan weerhoudt een zwaardere of zwaardere solenoïde te gebruiken, hoewel u een stepdown-transformator nodig hebt om de Arduino van meer dan 12V te voorzien. Let ook goed op de datasheet voor uw MOSFET om er zeker van te zijn dat u deze niet overbelast.

Als alles eenmaal in elkaar is gezet, ziet het er ongeveer zo uit:

circuit lay-out

Hoewel het niet nodig is, heb ik een klein tuigje gemaakt om een ​​deurslot van sloophout te simuleren.

De schets aanpassen

Met het circuit gebouwd, is het tijd om onze Arduino Sketch op te zetten. Handig is dat de MFRC522-bibliotheek wordt geleverd met een voorbeeldschets genaamd Access Control die bijna precies doet wat we willen doen. Sluit uw Arduino aan op uw computer en open Bestand> Voorbeelden> MFRC522> AccessControl in de Arduino IDE.

Er is een schat aan informatie beschikbaar, zowel in de voorbeeldschets als op de GitHub-pagina voor de bibliotheek. We hoeven slechts enkele regels aan te passen. Als alternatief kunt u onze gewijzigde code downloaden van deze GitHub Gist.

Ten eerste was de schets ontworpen voor een circuit met een enkele RGB-led die een gemeenschappelijke anode gebruikte. We zullen dat niet gebruiken, dus maak gewoon een opmerking over dit gedeelte.

 //#define COMMON_ANODE 

Pas nu onze LED-pinnen aan aan die welke in de schets zijn gedefinieerd.

 #define redLed 3 // Set Led Pins #define greenLed 4 #define blueLed 2 

We moeten de relaispen wijzigen (hoewel we in dit geval een MOSFET gebruiken) om onze setup te evenaren.

 #define relay 5 // Set MOSFET Pin 

Om het gemakkelijker te maken om te veranderen hoe lang het slot later open blijft, zullen we er een variabele voor maken.

 int lockDelay=10000; // lock stays open for 10 seconds. 

We hoeven alleen nog een wijziging aan te brengen. Helemaal onderaan de lus methode, begraven in een if-statement is de methode call verleend (300) . We moeten dit veranderen zodat het onze lockDelay- variabele gebruikt.

 granted(lockDelay); // Open the door lock for lockDelay duration 

Sla de schets op onder een nieuwe naam en upload deze naar je Arduino. Als het klaar is, opent u de seriële monitor. De eerste keer dat u dit doet, wordt u gevraagd om iets te scannen dat u als uw hoofdkaart kunt gebruiken. Houd uw kaart bij de lezer en de UID van de kaart moet op het seriële scherm worden weergegeven, samen met het bericht Alles gereed

Dat is het! Je hoofdsleutel is helemaal ingesteld. Koppel uw Arduino-kaart los van de computer. Uw hoofdsleutelgegevens worden opgeslagen in de EEPROM van de Arduino, zelfs nadat de stroom is uitgeschakeld.

De volledige installatie testen

Kijk nog een keer snel over uw bedrading om te controleren of alles op zijn plaats zit en sluit uw 12v-voeding aan. Op dit punt is het de moeite waard te vermelden dat u op uw hoede moet zijn voor de werkingscyclus van uw solenoïde. De goedkope solenoïde die ik voor deze test gebruik, heeft geen werkcyclus van 100 procent, dus moet deze niet gedurende lange tijd in de vergrendelde positie blijven staan. Gebruik een 100 procent duty cycle-solenoïde om dit in een permanente opstelling te maken. Nog beter zou een normaal gesloten (NC) solenoïde zijn, die geblokkeerd blijft wanneer deze niet van stroom wordt voorzien. Dit betekent ook dat iedereen die het systeem wil omzeilen, het niet eenvoudigweg kan ontkoppelen!

Wanneer het circuit wordt ingeschakeld, moet de blauwe LED oplichten om aan te geven dat het apparaat operationeel is. Als u de hoofdkaart boven de lezer houdt, plaatst u deze in de admin-modus, zodat alle drie de LED's gaan knipperen. Terwijl ze knipperen, kunt u andere kaarten of fobs over de lezer houden om toegangsrechten toe te voegen of weg te nemen. Het zal groen knipperen om toegang te krijgen, en blauw voor het wegnemen. Gebruik de hoofdkaart opnieuw om de beheerdersmodus te verlaten.

Als je nu een kaart of fob met toegang tot de lezer vasthoudt, moet deze groen knipperen en het slot openen. Als het rood knippert, is de toegang geweigerd!

Helemaal klaar!

Hoewel dit project een eenvoudige start is met het gebruik van RFID-apparaten in je DIY-installatie, is dit niet de meest veilige installatie. We raden niet aan dat de jury dit bij uw voordeur aantikt.

Je zou het hele mechanisme in een doos kunnen bouwen en de solenoïde gebruiken om het te vergrendelen. Vul de doos met cookies in en gebruik uw hoofdsleutel om te beslissen wie toegang heeft en wie niet. Word de koekjesmeester!

U kunt de solenoïde helemaal verwijderen en een ledstrip op zijn plaats bevestigen, en een RFID-geactiveerd licht hebben. U kunt dezelfde ideeën gebruiken om gegevens zoals een Wi-Fi-wachtwoord weer te geven op een klein scherm wanneer een kaart of fob met toegang voor de lezer wordt gehouden.

Hebt u thuis RFID in uw instellingen gebruikt? Laat het ons weten over je projecten in de comments hieronder!

Afbeelding: Annmarie Young via Shutterstock.com

In this article