DIY Smart Lock med Arduino og RFID

Slik bygger du en enkel RFID-basert smart lås ved hjelp av en Arduino som ryggrad og noen få billige komponenter.

Slik bygger du en enkel RFID-basert smart lås ved hjelp av en Arduino som ryggrad og noen få billige komponenter.
Annonse

Du går opp til en usynlig lås som bare har nøkkelen til, og åpner den uten å berøre den. Høres kult ut? I dag skal vi bygge en enkel RFID-basert smart lås ved hjelp av en Arduino som ryggraden og noen få billige komponenter.

Teknologien bak dette prosjektet er allerede brukt i mange bransjer. Alle som har jobbet i et moderne kontor eller brukt offentlig transport, vil nok ha brukt det hver dag. RFID (radiofrekvensidentifikasjon) identifiserer data lagret på en brikke i et kort eller dongle, og sammenligner dem med en liste over merker som allerede er skannet.

Vi skal bygge en testkrets for å styre tilgang ved hjelp av en Mifare MFRC522-lesermodul, for å åpne og lukke en lås. Vi bruker en master-nøkkelkort for å legge til eller fjerne tilgang til forskjellige koder, og opprette en enkel LED-avlesning for å fortelle oss hva som skjer i systemet.

Til slutt vil vi legge til en magnet for å fungere som lås, og en MOSFET for å trygt utløse den på og av med vår Arduino.

MFRC522-leseren kan lese og skrive data til RC522-sjetonger og lagrer disse dataene i Arduino's EEPROM. Slik bruker du Arduino EEPROM for å lagre data mellom effektsykluser. Hvordan bruke Arduino EEPROM for å lagre data mellom effektsykluser. Visste du at Arduino kan lagre data når den er slått av? Jeg snakker om EEPROM, så bli med meg når jeg viser deg hvordan du leser og skriver til den. Les mer . Dette ville være et flott tillegg til ethvert DIY-oppsett, og er spesielt relevant for ethvert grunnleggende hjemmesikkerhetssystem. Det kan brukes sammen med DIY-alarmsystemer. Hvordan lage et enkelt Arduino-alarmsystem. Hvordan lage et enkelt Arduino-alarmsystem. Oppdag bevegelse, og skrem deg så mye av en inntrenger med høylydede alarmlyder og blinkende lys. Lyder det morsomt? Selvfølgelig gjør det det. Det er målet for dagens Arduino-prosjekt, egnet ... Les mer eller DIY sikkerhetskamera DIY Pan og Tilt Network Security Cam med Raspberry Pi DIY Pan og Tilt Network Security Cam med Raspberry Pi Lær hvordan du gjør eksternt synlig pan og tilt sikkerhet kamera med en Raspberry Pi. Dette prosjektet kan fullføres om morgenen med bare de enkleste delene. Les flere systemer.

Du vil trenge

  • Arduino. Vi har brukt en Uno, men noen Arduino-bord Arduino Buying Guide: Hvilket styre bør du få? Arduino Kjøpsguide: Hvilket styre bør du få? Det er så mange forskjellige typer Arduino boards der ute, du vil bli tilgitt for å være forvirret. Hvilken bør du kjøpe for prosjektet ditt? La oss hjelpe, med denne Arduino kjøpesiden! Les mer eller klonen er tilstrekkelig.
  • 3 x 220 ohm motstander
  • 1 x 10k ohm motstand
  • Logisk nivå N kanal Mosfet
  • MFRC522 modul med minst to kort / fobs å lese. De fleste kommer med en av hver og kan kjøpes for mindre enn $ 2, men du har sannsynligvis allerede en i lommeboken i form av et offentlig reisekort.
  • Røde, blå og grønne lysdioder
  • 12v Solenoid ($ 2)
  • 12V strømforsyning
  • Brødbrett og koble opp ledninger

MFRC522-modulen

Stjerne i dette oppsettet er en billig MFRC522-modul, som fulgte med både et kort og en fob som inneholder en s50- chip, som hver lagrer sitt eget unike, permanente identifikasjonsnummer (UID). Disse er begge funksjonelt identiske, bare i en annen form.

modul og kort

Begynn med å søke etter MFRC522- biblioteket i bibliotekets leder av din Arduino IDE, og installer det. Alternativt kan du laste ned biblioteket og installere det manuelt i bibliotekets mappe. Hvis du er helt ny i Arduino, kan du finne denne grunnen for å komme i gang. Komme i gang med Arduino: En nybegynnersveiledning Komme i gang med Arduino: En nybegynnersguide Arduino er en åpen kilde elektronikk prototyping plattform basert på fleksibel, brukervennlig maskinvare og programvare. Det er ment for kunstnere, designere, hobbyister, og alle som er interessert i å lage interaktive objekter eller miljøer. Les mer nyttig!

Biblioteket inneholder også et Fritzing-diagram, som jeg har merket med, og viser hvordan du kobler modulen til din Arduino.

arduino rfid pinout ledninger
Bilde Kreditt: Miguel Balboa via Github

Vær forsiktig: dette kortet fungerer på 3, 3 V, ikke 5 V, så pass på å koble den til riktig stift.

For å teste oppsettet åpner du DumpInfo- skissen fra Fil> Eksempler> MFRC522> DumpInfo og laster den opp til Arduino-brettet. Åpne seriell skjerm, og hold et av dine RFID-objekter opp til leseren. Du bør se noe slikt:

dump info seriell utlasting

Hvis du får feil i MIFARE_Read() failed: Timeout in communication sier MIFARE_Read() failed: Timeout in communication, eller PCD_Authenticate() failed: Timeout in communication, ikke bekymre deg. Det betyr sannsynligvis at du ikke holdt merket opp til leseren for lenge nok til å lese alle dataene. Så lenge du får kortet UID (som leses så snart taggen er innenfor rekkevidden til leseren), vil den fungere med dette prosjektet. Hvis du ikke får en lesing i det hele tatt, kontroller ledningen og prøv igjen.

Resten av kretsen

Nå som vi har bekreftet at modulen fungerer, kan vi legge til resten av komponentene. Koble komponentene dine til slik:

full oppsett krets fritzing

  • Våre 12V strømforsyning (unplugged for now) kobles til skinnene på vårt brødbrett. Koble Arduino GND pin og MFRC522 GND pin til bakken.
  • Lysdiodene er koblet til pinnene 2, 3 og 4 og til jordskinnen gjennom 220 ohm motstander.
  • Vår MOSFETs portben (venstre på bildet) kobles til pin 5, og til jord gjennom en 10k ohm motstand. Dreneringsbenet (midt) kobles til den negative terminalen på 12V-solenoiden, og kildebenet (høyre) kobles til bakken.
  • Koble den positive terminalen til 12v Solenoid, og VIN av Arduino til 12v-skinnen på brødbrettet.

Med dette oppsettet, når vi sender et HØY signal fra Arduino til MOSFET, vil det tillate at strømmen overføres til Solenoid. Det er ingenting å stoppe deg fra å bruke en kraftigere eller kraftigere solenoid, selv om du vil trenge en stepdown-transformator for å drive Arduino fra høyere enn 12V. Vær også oppmerksom på databladet for din MOSFET for å sikre at du ikke overbelaster den.

Når det er satt sammen, bør det se slik ut:

kretsoppsett

Selv om det ikke er nødvendig, opprettet jeg en liten rigg for å simulere en dørlås fra skraptre.

Endre skissen

Med kretsen bygget, er det på tide å sette opp vår Arduino Sketch. Praktisk er MFRC522-biblioteket utstyrt med et eksempelskisse som heter Access Control som gjør nesten nøyaktig hva vi vil gjøre. Koble Arduino til datamaskinen, og åpne Fil> Eksempler> MFRC522> AccessControl i Arduino IDE.

Det finnes et vell av informasjon gitt både i eksempelskissen og på GitHub-siden for biblioteket. Vi trenger bare å endre noen linjer. Alternativt kan du laste ned vår endrede kode fra denne GitHub Gist.

For det første ble skissen konstruert for en krets med en enkelt RGB LED med en vanlig anode. Vi vil ikke bruke det, så bare kommentere denne delen.

 //#define COMMON_ANODE 

Nå, match våre LED-pinner til de som er definert i skissen.

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

Vi må endre relépinnen (selv om vi bruker en MOSFET i dette tilfellet) for å matche oppsettet vårt.

 #define relay 5 // Set MOSFET Pin 

For å gjøre det lettere å endre hvor lenge låsen forblir åpen senere, oppretter vi en variabel for den.

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

Vi trenger bare å gjøre en ny endring. Rett nederst i loop- metoden, begravet i en if-setning er metoden anrop gitt (300) . Vi må endre dette slik at det bruker vår lockDelay- variabel.

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

Lagre skissen under et nytt navn, og last opp det til din Arduino. Når den er ferdig, åpner du seriell skjerm. Første gang du gjør dette, vil det be deg om å skanne noe som skal brukes som hovedkort. Hold kortet ditt til leseren, og UID på kortet skal vises på seriell skjerm, sammen med meldingen Everything Ready

Det er det! Din hovednøkkel er alt opprettet. Trekk ut din Arduino-brett fra datamaskinen. Dine hovednøkkel detaljer blir lagret i Arduino EEPROM, selv etter at strømmen er slått av.

Tester full oppsett

Ta en siste rask titt over ledningen for å sjekke alt er på plass, og koble til 12V strømforsyningen. På dette punktet er det verdt å nevne at du bør være skeptisk til arbeidscyklusen til solenoiden din. Den billige solenoiden jeg bruker for denne testen, har ikke en 100 prosent arbeids syklus, derfor bør den ikke stå igjen i den låste stillingen i lange perioder. For å gjøre dette til et permanent oppsett, bruk en 100 prosent arbeidscyklus solenoid. Enda bedre ville være en normalt lukket (NC) solenoid, som forblir låst når den ikke er drevet. Dette betyr også at alle som vil omgå systemet, ikke bare kan koble fra det!

Når kretsen er slått på, må den blå lysdioden lyse for å vise at enheten er i bruk. Hvis du holder hovedkortet over leseren, legger det i admin-modus, må alle tre LEDene blinke. Mens de blinker, kan du holde andre kort eller fobs over leseren for å legge til eller ta bort tilgangsrettigheter. Det vil blinke grønt for å gi tilgang og blå for å ta bort. Bruk hovedkortet igjen for å gå ut av adminmodus.

Nå når du holder et kort eller fob med tilgang opp til leseren, skal den blinke grønt og åpne låsen. Hvis det blinker rødt, har tilgang blitt nektet!

Ferdig!

Selv om dette prosjektet er en enkel start i å bruke RFID-enheter i DIY-oppsettet, er det ikke det sikreste oppsettet. Vi foreslår ikke at juryen rigger dette til inngangsdøren din.

Du kan bygge hele mekanismen i en boks, og bruk solenoiden til å låse den. Fyll boksen med informasjonskapsler, og bruk hovedtasten for å avgjøre hvem som har tilgang og hvem som ikke gjør det. Bli kakemesteren!

Du kan helt fjerne solenoiden og feste en LED-stripe på stedet og ha et RFID-aktivert lys. Du kan bruke de samme ideene til å vise data som et Wi-Fi-passord til en liten skjerm når et kort eller fob med tilgang holdes opp til leseren.

Har du brukt RFID i oppsettene dine hjemme? Gi oss beskjed om dine prosjekter i kommentarfeltet nedenfor!

Bilde Kreditt: Annmarie Young via Shutterstock.com

In this article