Innehållsförteckning:

Arduino RFID dörrlås: 5 steg (med bilder)
Arduino RFID dörrlås: 5 steg (med bilder)

Video: Arduino RFID dörrlås: 5 steg (med bilder)

Video: Arduino RFID dörrlås: 5 steg (med bilder)
Video: Rfid lås 2024, Juli
Anonim
Arduino RFID dörrlås
Arduino RFID dörrlås
Arduino RFID dörrlås
Arduino RFID dörrlås
Arduino RFID dörrlås
Arduino RFID dörrlås
Arduino RFID dörrlås
Arduino RFID dörrlås

*** Uppdaterad 8/9/2010 *** Jag ville göra ett enkelt och säkert sätt att komma in i mitt garage. RFID var det bästa sättet att låsa upp min dörr, även med mina händer fulla kan jag låsa upp dörren och öppna den! Jag byggde en enkel krets med ett grundläggande ATMega 168 arduino-chip och en ID-20 RFID-läsare för att styra ett elektroniskt dörrlås. Kretsen består av 3 separata delar, en läsare för att läsa RFID -taggar, en styrenhet för att ta emot data från läsaren och styra utsignalen från RGB -lysdioden och det elektriska dörrlåset. Dörrlåset installeras först i en dörr och testas med ett 9v batteri för att säkerställa korrekt installation. I de flesta fall vill du ha en normalt öppen krets på dörrlåset eller Fail Secure. Det betyder att dörren förblir låst när ingen ström passerar genom den. När 12vDC passerar genom elektromagneten i dörrlåset, ger en platta i låset plats och låter dörren öppnas fritt. Läsaren är placerad på utsidan av dörren och är separat från kontrollen på insidan så att ingen kan kringgå säkerheten genom att bryta upp läsaren och försöka kortsluta läsaren. Styrenheten tar emot seriell data från läsaren och styr RGB -lysdioden och dörrlåset. I det här fallet har jag lagt båda på separata brödbrädor för testning. Här är en videoöversikt över systemet i aktion Läs vidare för att se hur du bygger en för dig själv! ** Uppdatering ** Alla koder, scheman och PCB -konstruktioner har testats och förfinats. De publiceras alla här från och med den 8/9/2010 Uppdaterad video av det slutliga systemet som är installerat och fungerar.

Steg 1: Delar som behövs

Delar som behövs
Delar som behövs

Här är en lista över delar och länkar till SparkFun.com där jag köpte dem. Detta är den grundläggande uppsättningen delar du behöver för att bygga och arduino och en krets för att läsa in RFID -taggar i arduino. Jag antar att du redan har en brödbräda, strömförsörjning och anslutningskablar.

Arduino saker

ATmega168 med Arduino Bootloader $ 4,95

Kristall 16MHz $ 1,50

Kondensator Keramik 22pF $ 0,25 (x2)

Motstånd 10k Ohm 1/6 Watt PTH $ 0,25

Mini tryckknappsbrytare $ 0,35

Triple Output LED RGB - Diffused $ 1,95

RFID -grejer

Antingen en av dessa, 20 har bättre räckvidd, 12 är mindre RFID-läsare ID-12 $ 29,95 RFID-läsare ID-20 $ 34,95

RFID Reader Breakout $ 0,95

Break Away Headers - Raka $ 2,50

RFID -tagg - 125 kHz $ 1,95

Övrig

TIP31A transistor (radiohack/lokal elektronikbutik $ 1,50)

Dörrlåset är från ebay. Door Fail Säker åtkomstkontroll Electric Strike v5 NO $ 17.50 (kawamall, bay)

Steg 2: Bygg Arduino Controller

Bygg Arduino Controller
Bygg Arduino Controller
Bygg Arduino Controller
Bygg Arduino Controller
Bygg Arduino Controller
Bygg Arduino Controller

Det första steget för att bygga ett RFID -dörrlås med en grundläggande Arduino är att brödbräda ut en grundläggande fungerande arduino. De flesta Arduino-förblixtade ATMega 168-chips levereras med standardblinkprogrammet förinstallerat. Anslut en LED till digital utgång 13 och kontrollera att allt fungerar.

Hårdvarudelen av denna RFID -läsare skulle vara för enkel om vi använde en vanlig arduino med inbyggd USB -programmerare. Eftersom jag planerar att sätta detta i väggen och inte röra det igen vill jag inte använda en stor skrymmande $ 30 arduino -skiva när jag kan köpa en ATMega 168 $ 5 och göra en mycket mindre anpassad kretskort.

Eftersom jag valde att göra en grundläggande Arduino-krets själv behöver jag en extern USB-> Seriell FDIT-programmerare. Jag har inkluderat Eagle -scheman för regulatorn med en strömförsörjning byggd från en 7805 spänningsregulator. I testet använde jag en brödbräda strömförsörjning.

För att få igång en arduino är allt du verkligen behöver ATMega168 med arduino -programvaran blinkad på den, 2x 22pF kondensatorer, 16mhz kristall, 10k ohm motstånd, tryckknapp och ett bräda. Anslutningen till detta är välkänd men jag har inkluderat hela schemat för kretsen.

Arduino kommer att utlösa 4 utgångar, 1 vardera för röda/gröna/blåa lysdioder, och 1 för att trigga TIP31A att skicka 12vDC till dörrlåset. Arduino tar emot seriell data på sin Rx-linje från ID-20 RFID-läsaren.

Steg 3: Bygg RFID -läsaren

Bygg RFID -läsaren
Bygg RFID -läsaren
Bygg RFID -läsaren
Bygg RFID -läsaren
Bygg RFID -läsaren
Bygg RFID -läsaren

Nu när du har ditt arduino-bröd ombord och fungerar kan du sätta ihop RFID-läsardelen av kretsen som innehåller ID-10 eller ID-20 och RGB LED för att indikera kretsens status. Kom ihåg att läsaren kommer att vara utanför och separat från kontrollern inuti så att någon inte lätt kan bryta sig in.

För att bygga detta kommer vi att skicka 5v/mark över från det primära brödbrädet till ett sekundärt brödbräda som vi bygger läsaren på. Skicka också över 3 ledningar från 3 av arduino -utgångsstiften för att styra RGB -lysdioden, en för varje färg. Ytterligare en tråd, Brown på bilderna, kommer att vara en seriell anslutning för ID-20 för att prata med arduino Rx seriell ingång. Detta är en mycket enkel krets att ansluta. Lysdioder får motstånd och några punkter på ID-20 är bundna till marken/5v för att ställa in rätt status.

För att underlätta brödbrädan säljer ID-10/ID-20 Sparkfun en Breakout-bräda som gör att du kan fästa längre stifthuvuden som är åtskilda för att passa en brödbräda. Denna del och stifthuvuden och listade i reservdelslistan.

Schemat ska vara sund framåt och lätt att följa.

Steg 4: Programmera

Dags att programmera din arduino. Detta kan vara lite knepigt med en grundläggande arduino, du kan behöva trycka på återställningsknappen flera gånger före och under den första delen av uppladdningen. En mycket viktig sak att komma ihåg, du får ett uppladdningsfel om du inte tillfälligt kopplar bort ID-20-serielinjen till arduinos Rx-linje. ATMega168 har bara 1 Rx -ingång och den använder den för att ladda upp kod för att prata med programmeraren. Koppla bort ID-20 medan du programmerar och anslut sedan den igen när du är klar. Jag använde en FTDI -programmerare som låter dig programmera arduino via USB med bara 4 ledningar. Controller -schemat visar en pin -header -anslutning så att du kan ansluta en direkt. Sparkfun säljer också denna del men många kanske redan har den.

Du kan enkelt ladda upp min kod till din arduino och aldrig se tillbaka, men vad är det roliga i det? Låt mig förklara grundtanken om hur det fungerar.

Först och främst ville jag inte ha några externa knappar/omkopplare/etc och jag ville inte programmera om arduino varje gång jag ville lägga till ett nytt kort. Därför ville jag bara använda RFID för att styra kretsens funktion samt kontrollera över dörrlåset.

Programmet tänder den blå lysdioden för att indikera att det är klart att läsa ett nytt kort. När kortet läses avgör det om det är ett giltigt kort eller inte genom att jämföra vad det läste in med en lista med giltiga kort. Om användaren är giltig stänger arduino AV den blå lysdioden och tänder den gröna lysdioden i 5 sekunder. Det slår också på en annan utgång hög i 5 sekunder. Denna utgång är ansluten till TIP31A -transistorn och gör att den lilla arduino kan styra ett mycket större 12v 300mA dörrlås utan att skadas. Efter 5 sekunder låses dörrlåset igen och lysdioden återgår till blått för att vänta på att ett annat kort ska läsas. Om kortet är ogiltigt ändras lysdioden till RÖD i några sekunder och tillbaka till blå för att vänta på ett annat kort.

Det är viktigt att dörrlåset fortfarande fungerar även om arduino tappar ström över en natt eller återställs. Därför lagras alla giltiga kort -ID i EEPROM -minne. ATMega168 har 512 Bytes EEPROM -minne. Varje RFID-kort har ett 5 Hex Byte serienummer och en 1 Hex Byte Check summa som vi kan använda för att verifiera att det inte fanns några fel i överföringen mellan ID-20 och arduino.

Giltiga kort lagras i EEPROM genom att använda den första byten som en räknare. Till exempel, om det finns 3 giltiga kort lagrade, skulle den första byten i EEPROM vara 3. EEPROM.read (0); = 3. Genom att veta detta och det faktum att varje ID är 5 Bytes långt vet vi att 1-5 är kort ett, 6-10 är kort 2 och 11-15 är kort 3. Vi kan göra en loop som tittar genom EEPROM 5 byte åt gången och försöker hitta kortet som lästes in av läsaren.

Men hur kan vi lägga till nya kort till EEPROM efter att kretsen är installerad? Jag har läst in ett av RFID -korten jag har och hårdkodat det för att vara Master RFID -kortet. Så även om hela EEPROM torkas kommer huvudkortet fortfarande att fungera. När ett kort läses kontrollerar det först om det är Master -kortet, om inte, fortsätter det att se om det är ett giltigt kort eller inte. Om kortet är huvudkortet har vi arduino gå in i ett "programmeringsläge" där det blinkar RGB och väntar på att en annan giltig tagg ska läsas. Nästa tagg som läses läggs till nästa lediga plats i EEPROM och räknaren ökas 1 om kortet inte redan finns i EEPROM -minnet. Läsaren återgår sedan till normalt läge och väntar på att ett nytt kort ska läsas.

För närvarande har jag inte programmerat ett sätt att ta bort ett kort eftersom orsakerna för att radera ett kort troligen skulle vara att det var förlorat eller stulet. Eftersom detta troligen skulle användas med 1-10 personer skulle det enklaste vara att hårt programmera ett Master Erase-kort som kommer att torka alla kort från EEPROM och sedan lägga till dem igen, vilket bara tar några sekunder. Jag har lagt till kod för att torka EEPROM men jag har inte implementerat den här funktionen än..

Koden bifogas i en textfil tillsammans med en kopia av listan med delar.

Steg 5: Expandera

Detta är bara några av de coola sakerna du kan göra med RFID. Du kan utöka detta mycket ytterligare med en LCD -utgång, loggning av vem som kommer in och när, nätverks-/twitter -anslutning etc. Jag planerar att göra en färdig PCB -version av denna krets. Jag har aldrig gjort ett kretskort tidigare så jag arbetar fortfarande med design och layout på delarna. När jag har gjort dem färdiga kommer jag att lägga upp dem också. Jag uppmuntrar alla att ta koden jag har skrivit och ändra den för att göra ännu mer coola saker!

Finalist i Arduino -tävlingen

Rekommenderad: