DIY Smart Lock med Arduino och RFID
Du går upp till ett osynligt lås som du bara har nyckeln till, och öppnar den utan att ens röra den. Låter coolt? Idag ska vi bygga ett enkelt RFID-baserat smartlås med hjälp av en Arduino som ryggraden och några billiga komponenter.
Tekniken bakom detta projekt används redan i många branscher. Den som har arbetat på ett modernt kontor eller använt kollektivtrafik kommer noga ha använt det varje dag. RFID (radiofrekvensidentifiering) identifierar data lagrad på ett chip i ett kort eller en dongle och jämför dem med en lista med taggar som redan har skannats.
Vi ska bygga en testkrets för att styra åtkomst med en Mifare MFRC522-läsarmodul, för att öppna och stänga ett lås. Vi använder en masterknapp för att lägga till eller ta bort åtkomst till olika taggar och skapa en enkel LED-avläsning för att berätta vad som händer i systemet.
Slutligen lägger vi till en magnet för att fungera som lås, och en MOSFET för att säkert släcka den på och av med vår Arduino.
MFRC522-läsaren kan läsa och skriva data till RC522-chips och lagrar den här data i Arduino's EEPROM. Hur man använder Arduino EEPROM för att spara data mellan strömcykler. Hur man använder Arduino EEPROM för att spara data mellan strömcykler. Visste du att Arduino kan lagra data när den är avstängd? Jag pratar om EEPROM, så kom med mig när jag visar dig hur man läser och skriver till den. Läs mer . Detta skulle vara ett bra komplement till alla DIY-inställningar, och är särskilt relevant för alla grundläggande hemförsörjningssystem. Det kan användas tillsammans med DIY-larmsystem. Hur man gör ett enkelt Arduino-larmsystem. Hur man gör ett enkelt Arduino larmsystem. Upptäck rörelsen, skräck då av en inkräktare med högljudda larmljud och blinkande ljus. Låter det roligt? Det gör det självklart. Det är målet med dagens Arduino-projekt, lämpligt ... Läs mer eller DIY-säkerhetskamera DIY Pan och Tilt Nätverkssäkerhetskamera med hallon Pi DIY Pan och Tilt Nätverkssäkerhetskamera med hallon Pi Lär dig hur man gör en fjärrbar pan och tilt-säkerhetskamera med en hallon Pi. Projektet kan slutföras på morgonen med endast de enklaste delarna. Läs mer system.
Du kommer behöva
- Arduino. Vi har använt en Uno, men någon Arduino-styrelse Arduino Buying Guide: Vilket styrelse ska du få? Arduino Köpguide: Vilket styrelse ska du få? Det finns så många olika typer av Arduino brädor där ute, du skulle bli förlåtad för att vara förvirrad. Vilket ska du köpa för ditt projekt? Låt oss hjälpa till med den här Arduino-köpguiden! Läs mer eller klon är tillräckligt.
- 3 x 220 ohm motstånd
- 1 x 10 k ohm motstånd
- Logisk nivå N kanal Mosfet
- MFRC522 modul med minst två kort / fob att läsa. De flesta kommer med en av varje och kan köpas för mindre än 2 dollar, men du har förmodligen redan en i din plånbok i form av ett offentligt resekort.
- Röd, blå och grön lysdioder
- 12v Solenoid ($ 2)
- 12V strömförsörjning
- Brödbräda och haka upp ledningar
MFRC522-modulen
Stjärnan i denna inställning är en billig MFRC522-modul, som medföljer både ett kort och en fob som innehåller en s50 chip, var och en lagrar sitt eget unika permanenta identifieringsnummer (UID). Dessa är båda funktionellt identiska, bara i en annan form.
Börja med att söka efter MFRC522 bibliotek i bibliotekets chef för din Arduino IDE, och installera det. Alternativt kan du hämta biblioteket och installera det manuellt i bibliotekets mapp. Om du är helt ny på Arduino kan du hitta den här primeren för att komma igång. Komma igång med Arduino: En nybörjarhandbok Komma igång med Arduino: En nybörjarhandbok Arduino är en öppen prototypplattform för öppen källkod baserad på flexibel, lättanvänd maskinvara och programvara. Den är avsedd för artister, designers, hobbyister och alla som är intresserade av att skapa interaktiva objekt eller miljöer. Läs mer användbart!
Biblioteket innehåller också ett Fritzing-diagram, som jag har antecknat om hur man kopplar modulen till din Arduino.
Var försiktig: det här kortet fungerar på 3,3V, inte 5V, så var försiktig med att ansluta den till rätt stift.
För att testa inställningen öppnar du DumpInfo skiss från Arkiv> Exempel> MFRC522> DumpInfo och ladda upp det till din Arduino-styrelse. Öppna seriell bildskärm och håll ett av dina RFID-objekt upp till läsaren. Du borde se något så här:
Om du får fel i läsningstalet MIFARE_Read () misslyckades: Timeout i kommunikation
, eller PCD_Authenticate () misslyckades: Timeout i kommunikation
, oroa dig inte. Det betyder troligtvis att du inte håller taggen upp till läsaren tillräckligt länge för att läsa all data. Så länge du får kortet UID (som läses så snart taggen ligger inom läsarens räckvidd), kommer det att fungera med det här projektet. Om du inte får läsa alls kontrollerar du kablarna och försöker igen.
Resten av kretskortet
Nu när vi har verifierat att vår modul fungerar, kan vi lägga till resten av komponenterna. Anslut dina komponenter så här:
- Vår 12V strömförsörjning (frånkopplad för nu) ansluts till skenorna på vår breadboard. Anslut Arduino GND-stiftet och MFRC522 GND-stiftet till markskenan.
- LED-lamporna är anslutna till stift 2, 3 och 4 och till jordskena genom 220 ohm motstånd.
- Vår MOSFETs grindben (vänster på bilden) ansluter till stift 5, och jordas genom ett 10 k ohm motstånd. Avloppsbenet (mitt) kopplas till negativkontakten på vår 12V-magnet, och källbenet (höger) ansluter till jordskenan.
- Anslut den positiva kontakten på 12v Solenoid, och VIN av Arduino till 12v-skenan på breadboard.
Med denna inställning, när vi skickar en HÖG signal från Arduino till MOSFET, kommer det att tillåta strömmen att överföras till Solenoid. Det finns inget som hindrar dig från att använda en kraftigare eller kraftigare magnet, trots att du skulle behöva en stepdown-transformator för att driva Arduino från högre än 12V. Var noga med databladet för din MOSFET för att se till att du inte överbelastar den.
När allt är sammanlagt borde det se ut så här:
Medan det inte är nödvändigt skapade jag en liten rigg för att simulera ett dörrlås från skrot.
Ändra skissen
Med kretsen byggd är det dags att ställa in vår Arduino Sketch. Bekvämt kommer MFRC522-biblioteket med ett exempelskiss som heter Åtkomstkontroll det gör nästan exakt vad vi vill göra. Anslut din Arduino till din dator och öppna Arkiv> Exempel> MFRC522> AccessControl i Arduino IDE.
Det finns en mängd information som tillhandahålls både i exempelskissen och på GitHub-sidan för biblioteket. Vi behöver bara ändra några rader. Alternativt kan du hämta vår modifierade kod från denna GitHub Gist.
För det första konstruerades skissen för en krets med en enda RGB-LED med en gemensam anod. Vi kommer inte använda det, så enkelt kommentera det här avsnittet.
// # definiera COMMON_ANODE
Matcha nu våra LED-stift till de som definieras i skissen.
#define redLed 3 // Set Led Pins #define greenLed 4 #define blueLed 2
Vi behöver ändra relästiftet (även om vi använder en MOSFET i det här fallet) för att matcha vår inställning.
#define relä 5 // Ställ in MOSFET Pin
För att göra det enklare att ändra hur länge låset är öppet senare skapar vi en variabel för den.
int lockDelay = 10000; // låset är öppet i 10 sekunder.
Vi behöver bara göra en mer förändring. Höger längst ner på slinga Metod, begravd i ett if-uttalande är metodanropet beviljas (300). Vi behöver ändra detta så att det använder vår lockDelay variabel.
beviljades (lockDelay); // Öppna dörrlåset för lockDelay-varaktighet
Spara skissen under ett nytt namn och ladda upp det till din Arduino. När det är klart, öppna seriell bildskärm. Första gången du gör det, kommer det att be dig att skanna något att använda som ditt mästerkort. Håll ditt kort upp till läsaren, och kortets UID ska visas på seriell bildskärm tillsammans med meddelandet Allt klart
Det är allt! Din huvudnyckel är helt konfigurerad. Koppla ur Arduino-kortet ur datorn. Dina huvudnyckel detaljer sparas i Arduino EEPROM, även efter att strömmen är avstängd.
Testa fullständig inställning
Ta en sista snabb titt över dina kablar för att kontrollera allt är på plats, och anslut din 12v nätaggregat. Vid denna punkt är det värt att nämna att du bör vara försiktig med din solenoidens arbetscykel. Den billiga solenoid som jag använder för detta test har inte en 100 procents arbetscykel, därför borde den inte vara kvar i den låsta positionen under långa perioder. För att göra detta till en permanent inställning, använd en 100 procent arbetscykel solenoid. Ännu bättre skulle vara en normalt sluten (NC) magnet, som fortfarande är låst när den inte är driven. Det innebär också att alla som vill kringgå systemet inte bara kan koppla ur det!
När kretsen är påslagen, blinkar den blå LED-lampan för att visa att enheten är i drift. Om du håller huvudkortet över läsaren sätter det i admin-läge bör alla tre LED-lampor blinka. Medan de blinkar kan du hålla andra kort eller fob över läsaren för att lägga till eller ta bort åtkomsträttigheter. Det blinkar grönt för att ge åtkomst och blå för att ta bort. Använd masterkortet igen för att avsluta admin-läget.
Nu när du håller ett kort eller fob med tillgång upp till läsaren ska den blinka grönt och öppna låset. Om den blinkar rött har åtkomst nekats!
Klart!
Även om det här projektet är en enkel start med att använda RFID-enheter i din DIY-konfiguration, är det inte den säkraste inställningen. Vi föreslår inte att juryn riggar detta till din ytterdörr.
Du kan bygga hela mekanismen i en låda och använda solenoiden för att låsa den. Fyll i rutan med kakor och använd din huvudnyckel för att bestämma vem som har åtkomst och vem som inte gör det. Bli kakmästaren!
Du kan helt enkelt göra bort solenoiden och fästa en LED-remsa på platsen och ha ett RFID-aktiverat ljus. Du kan använda samma idéer för att visa data som ett Wi-Fi-lösenord till en liten skärm när ett kort eller fob med åtkomst hålls upp till läsaren.
Har du använt RFID i dina inställningar hemma? Låt oss veta om dina projekt i kommentarfältet nedan!
Bildkrediter: Annmarie Young via Shutterstock.com
Utforska mer om: Arduino, Hemsäkerhet, Smart Locks.