DIY Smart Lock met Arduino en RFID
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 te fungeren als het slot en een MOSFET om het 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 Netwerkbeveiligingsnok met Raspberry Pi DIY Pan en Tilt Netwerkbeveiligingsnok 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 je hebt er waarschijnlijk al een in je portefeuille in de vorm van een openbare reisscard.
- Rode, blauwe en groene LED's
- 12v Solenoid ($ 2)
- 12v voeding
- Broodplank en haak draden
De MFRC522-module
De ster van deze setup is een goedkope MFRC522-module, die zowel een kaart als een fob met een bevatte s50 chip, elk met een eigen uniek permanent identificatienummer (UID). Deze zijn beide functioneel identiek, alleen in een andere vorm.
Begin met het zoeken naar de MFRC522 bibliotheek in de bibliotheekbeheerder van uw Arduino IDE, en installeer het. 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-sourceprotocol voor prototyping van 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.
Wees voorzichtig: dit bord werkt op 3,3V, niet op 5V, dus zorg ervoor dat je het op de juiste pin aansluit.
Als u de installatie wilt testen, opent u de DumpInfo schets van Bestand> Voorbeelden> MFRC522> DumpInfo en upload het 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:
Als u fouten krijgt in het voorlezen MIFARE_Read () mislukt: time-out in communicatie
, of PCD_Authenticate () mislukt: time-out in communicatie
, Maak je 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:
- 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 via 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:
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 Toegangscontrole dat doet bijna precies wat we willen doen. Verbind uw Arduino met 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 deel gewoon dit gedeelte uit.
// # 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 relais 5 // Stel MOSFET-pin in
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; // vergrendeling blijft open gedurende 10 seconden.
We hoeven alleen nog een wijziging aan te brengen. Rechts onderaan de lus methode, begraven in een if-statement is de methodeaanroep verleend (300). We moeten dit veranderen zodat het onze lockDelay veranderlijk.
verleend (lockDelay); // Open het deurslot voor lockDelay-duur
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 samen met het bericht op het seriële scherm worden weergegeven Alles klaar
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 uw 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 cookie-meester!
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
Ontdek meer over: Arduino, Home Security, Smart Locks.