DIY Smart Lock med Arduino og RFID

Sådan bygger du en simpel RFID-baseret smart lås ved hjælp af en Arduino som rygraden og et par billige komponenter.

Sådan bygger du en simpel RFID-baseret smart lås ved hjælp af en Arduino som rygraden og et par billige komponenter.
Reklame

Du går op til en usynlig lås, som du kun har nøglen til, og åbner den uden at røre ved den. Lyder fedt? I dag skal vi bygge en simpel RFID-baseret smart lås ved hjælp af en Arduino som rygraden og et par billige komponenter.

Teknologien bag dette projekt anvendes allerede i mange brancher. Enhver, der har arbejdet i et moderne kontor eller anvendt offentlig transport, vil nok have brugt det hver dag. RFID (radiofrekvensidentifikation) identificerer data lagret på en chip i et kort eller dongle og sammenligner dem med en liste over tags, der allerede er scannet.

Vi vil opbygge et testkredsløb for at styre adgang ved hjælp af et Mifare MFRC522-læsermodul for at åbne og lukke en lås. Vi bruger en master-tastatur til at tilføje eller fjerne adgang til forskellige tags og lave en simpel LED-aflæsning for at fortælle os, hvad der sker i systemet.

Endelig vil vi tilføje en magnetventil til at fungere som lås, og en MOSFET til sikkert at udløse den til og fra ved hjælp af vores Arduino.

MFRC522-læseren kan læse og skrive data til RC522-chips og lagrer disse data i Arduino's EEPROM. Sådan bruges Arduino EEPROM til at gemme data mellem strømcykler. Sådan bruges Arduino EEPROM til at gemme data mellem strømcykler. Vidste du, at Arduino kan gemme data når den er slukket? Jeg taler om EEPROM, så kom med mig, da jeg viser dig, hvordan man læser og skriver til den. Læs mere . Dette ville være en god tilføjelse til ethvert DIY setup, og det er især relevant for ethvert grundlæggende hjem sikkerhedssystem. Det kan bruges sammen med DIY alarmsystemer Sådan laver du et simpelt Arduino alarmsystem Sådan laver du et simpelt alarmsystem Arduino Detekterer bevægelse, så skræm i hælen ud af en indtrenger med højlydede alarmlyde og blinkende lys. Lyder det sjovt? Det gør det selvfølgelig. Det er målet med dagens Arduino-projekt, egnet ... Læs mere eller DIY sikkerhedskamera DIY Pan og Tilt Netværk Sikkerhedskamera med Raspberry Pi DIY Pan og Tilt Netværk Sikkerhedskamera med Raspberry Pi Lær, hvordan man laver fjernsyns pan og tilt sikkerhedskamera med en Raspberry Pi. Dette projekt kan afsluttes om morgenen med kun de enkleste dele. Læs flere systemer.

Du får brug for

  • Arduino. Vi har brugt en Uno, men enhver Arduino bord Arduino Buying Guide: Hvilket bord skal du få? Arduino Købsvejledning: Hvilket bestyrelse skal du få? Der er så mange forskellige slags Arduino boards derude, du ville blive tilgivet for at være forvirret. Hvad skal du købe til dit projekt? Lad os hjælpe med denne Arduino købeguide! Læs mere eller klon er tilstrækkeligt.
  • 3 x 220 ohm modstande
  • 1 x 10k ohm modstand
  • Logisk niveau N kanal Mosfet
  • MFRC522 modul med mindst to kort / fobs at læse. De fleste kommer med en af ​​hver og kan købes for mindre end $ 2, men du har sandsynligvis allerede en i din tegnebog i form af et offentligt rejsekort.
  • Røde, blå og grønne lysdioder
  • 12v Solenoid ($ 2)
  • 12V strømforsyning
  • Brødbræt og kabler

MFRC522 modulet

Stjerne i denne opsætning er et billigt MFRC522 modul, der fulgte med både et kort og en fob, der indeholder en s50 chip, som hver lagrer sit eget unikke permanente identifikationsnummer (UID). Disse er begge funktionelt identiske, bare i en anden form.

modul og kort

Start med at søge efter MFRC522 biblioteket i bibliotekets manager af din Arduino IDE, og installer det. Alternativt kan du downloade biblioteket og installere det manuelt i bibliotekets mappe. Hvis du er helt ny for Arduino, kan du finde denne primer for at komme i gang Kom i gang med Arduino: En nybegyndervejledning Kom godt i gang med Arduino: En nybegyndervejledning Arduino er en open source elektronik prototypeplanlægning baseret på fleksibel, brugervenlig hardware og software. Det er beregnet til kunstnere, designere, hobbyister og alle interesserede i at skabe interaktive objekter eller miljøer. Læs mere nyttigt!

Biblioteket indeholder også et Fritzing diagram, som jeg har noteret om, hvordan du vedhæfter modulet til din Arduino.

arduino rfid pinout ledninger
Billedkredit: Miguel Balboa via Github

Pas på: dette bord arbejder på 3, 3 V, ikke 5 V, så pas på at forbinde det til den rigtige pin.

For at teste opsætningen skal du åbne DumpInfo sketchen fra Filer> Eksempler> MFRC522> DumpInfo og uploade den til din Arduino bord. Åbn seriell skærm, og hold en af ​​dine RFID objekter op til læseren. Du skal se noget som dette:

dump info seriel udlæsning

Hvis du får fejl i udlæsningen, siger MIFARE_Read() failed: Timeout in communication, eller PCD_Authenticate() failed: Timeout in communication, rolig. Det betyder sandsynligvis, at du ikke holdt mærket op til læseren for længe nok til at læse alle dataene. Så længe du får kortet UID (som læses så snart mærket er inden for rækkevidden af ​​læseren), vil det arbejde med dette projekt. Hvis du ikke får en læsning overhovedet, skal du kontrollere ledningerne og prøve igen.

Resten af ​​kredsløbet

Nu hvor vi har kontrolleret, at vores modul fungerer, kan vi tilføje resten af ​​komponenterne. Tilslut dine komponenter som denne:

fuld opsætning kredsløb fritzing

  • Vores 12v strømforsyning (unplugged for now) forbinder til skinnerne på vores breadboard. Tilslut Arduino GND pin og MFRC522 GND pin til jordskinnen.
  • LED'erne er forbundet til stifterne 2, 3 og 4 og til jordskinnen gennem 220 ohm modstande.
  • Vores MOSFET's portben (venstre på billedet) forbinder til pin 5 og til jord gennem en 10k ohm modstand. Afløbsbenet (midten) forbinder til den negative terminal på vores 12V-magnet, og kildebenet (højre) forbinder med jordskinnen.
  • Tilslut den positive terminal på 12v Solenoid, og VIN af Arduino til 12v-skinnen på brødbrættet.

Med denne opsætning, når vi sender et HIGH signal fra Arduino til MOSFET, vil det tillade strømmen at overføre til Solenoid. Der er intet, der forhindrer dig i at bruge en stærkere eller mere kraftig magnetventil, selvom du ville have brug for en stepdown-transformer til at drive Arduino fra højere end 12V. Vær også opmærksom på databladet til din MOSFET for at sikre, at du ikke overbelaster den.

Når det hele er sat sammen, skal det se sådan ud:

kredsløb layout

Selvom det ikke er nødvendigt, skabte jeg en lille rig for at simulere en dørlås fra skrot.

Ændring af skitse

Med kredsløb bygget, er det tid til at oprette vores Arduino Sketch. MFRC522-biblioteket er bekvemt udstyret med et eksempelskitse kaldet Adgangskontrol, der gør næsten præcis det, vi ønsker at gøre. Tilslut din Arduino til din computer, og åbn Fil> Eksempler> MFRC522> AccessControl i Arduino IDE.

Der findes et væld af oplysninger, der findes både i eksempelskissen og på GitHub-siden for biblioteket. Vi behøver kun at ændre nogle linjer. Alternativt kan du downloade vores ændrede kode fra denne GitHub Gist.

For det første blev skissen designet til et kredsløb med en enkelt RGB LED ved hjælp af en fælles anode. Vi vil ikke bruge det, så kommentér blot dette afsnit.

 //#define COMMON_ANODE 

Sammenlign nu vores LED-stifter til dem, der er defineret i skitse.

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

Vi skal ændre relæpinden (selvom vi bruger en MOSFET i dette tilfælde) for at matche vores opsætning.

 #define relay 5 // Set MOSFET Pin 

For at gøre det lettere at ændre, hvor længe låsen forbliver åben senere, opretter vi en variabel for den.

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

Vi behøver kun at lave en ny ændring. Lige i bunden af loop- metoden, begravet i en if-erklæring, er metoden kaldet tildelt (300) . Vi skal ændre dette, så det bruger vores lockDelay- variabel.

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

Gem skissen under et nyt navn, og upload det til din Arduino. Når den er færdig, skal du åbne seriel skærmen. Første gang du gør dette, vil det bede dig om at scanne noget, der skal bruges som dit masterkort. Hold dit kort op til læseren, og kortets UID skal vises på seriemonitoren sammen med meddelelsen Everything Ready

Det er det! Din master nøgle er helt oprettet. Tag stikket ud af computeren. Dine master nøgle detaljer gemmes i Arduino EEPROM, selv efter at strømmen er slukket.

Test af den fulde opsætning

Tag et sidste hurtigt kig over ledningerne for at kontrollere alt er på plads, og tilslut din 12v strømforsyning. På dette tidspunkt er det værd at nævne, at du skal være forsigtig med din solenoids arbejdscyklus. Den billige magnetventil, jeg bruger til denne test, har ikke en 100 procents arbejdscyklus, og derfor bør den ikke stå i låsepositionen i lange perioder. For at gøre dette til et permanent opsætning skal du bruge en 100 procent duty cycle solenoid. Endnu bedre ville være en normalt lukket (NC) magnetventil, som forbliver låst, når den ikke er drevet. Dette betyder også, at alle, der ønsker at omgå systemet, ikke kan bare fjerne det!

Når kredsløbet er tændt, lyser den blå LED for at vise, at enheden er i brug. Hvis du holder hovedkortet over læseren, sættes det i admin-tilstand, skal alle tre LED'er blinke. Mens de blinker, kan du holde andre kort eller fobs over læseren for at tilføje eller fjerne adgangsrettigheder. Det blinker grønt for at give adgang og blå for at tage væk. Brug masterkortet igen for at afslutte admin-tilstand.

Nu, når du holder et kort eller fob med adgang op til læseren, skal den blinke grønt og åbne låsen. Hvis det blinker rødt, er adgang blevet nægtet!

Helt færdig!

Mens dette projekt er en simpel start i at bruge RFID-enheder i din DIY-opsætning, er det ikke det sikreste setup. Vi foreslår ikke, at juryen rigger dette til din hoveddør.

Du kunne bygge hele mekanismen i en kasse, og bruge solenoiden til at låse den. Udfyld kassen med cookies, og brug din hovednøgle til at afgøre, hvem der har adgang, og hvem der ikke gør det. Bliv cookie master!

Du kan helt fjerne solenoiden og vedhæfte en LED-strimmel på det sted og have et RFID-aktiveret lys. Du kan bruge de samme ideer til at vise data som et Wi-Fi-adgangskode til en lille skærm, når et kort eller fob med adgang holdes op til læseren.

Har du brugt RFID i dine opsætninger hjemme? Lad os vide om dine projekter i kommentarfeltet nedenfor!

Billedkredit: Annmarie Young via Shutterstock.com

In this article