İçindekiler:

Arduino RFID Kapı Kilidi: 5 Adım (Resimli)
Arduino RFID Kapı Kilidi: 5 Adım (Resimli)

Video: Arduino RFID Kapı Kilidi: 5 Adım (Resimli)

Video: Arduino RFID Kapı Kilidi: 5 Adım (Resimli)
Video: Pinoo ile Otomatik Kapı Kilidi-Automatic Door Lock with Pinoo 2024, Temmuz
Anonim
Arduino RFID Kapı Kilidi
Arduino RFID Kapı Kilidi
Arduino RFID Kapı Kilidi
Arduino RFID Kapı Kilidi
Arduino RFID Kapı Kilidi
Arduino RFID Kapı Kilidi
Arduino RFID Kapı Kilidi
Arduino RFID Kapı Kilidi

***9.08.2010'da güncellendi*** Garajıma girmenin kolay ve güvenli bir yolunu yapmak istedim. RFID, kapımı açmanın en iyi yoluydu, ellerim doluyken bile kapıyı açıp iterek açabiliyorum! Elektronik kapı kilidini kontrol etmek için temel bir ATMega 168 arduino çipi ve bir ID-20 RFID okuyucu ile basit bir devre kurdum. Devre, RFID etiketlerini okumak için bir Okuyucu, Okuyucudan veri kabul etmek ve RGB LED'in çıkışını kontrol etmek için bir Kontrolör ve Elektrikli kapı kilidi olmak üzere 3 ayrı parçadan oluşmaktadır. Kapı kilidi önce bir kapıya takılır ve doğru montajı sağlamak için 9v pil ile test edilir. Çoğu durumda, kapı kilidinde Normalde Açık devre veya Güvenli Arıza olmasını istersiniz. Bu, içinden akım geçmediğinde kapının kilitli kalacağı anlamına gelir. Kapı kilidindeki elektromıknatıstan 12vDC geçirildiğinde, kilitteki bir plaka yol vererek kapının serbestçe itilerek açılmasını sağlar. Okuyucu, kapının dışına yerleştirilir ve iç kısımdaki kontrolörden ayrıdır, böylece kimse Okuyucuyu kırarak ve okuyucuyu kısa devre yapmaya çalışarak güvenliği atlatamaz. Kontrolör, Reader'dan seri verileri alır ve RGB ledini ve Kapı kilidini kontrol eder. Bu durumda, test için her ikisini de ayrı ekmek tahtalarına koydum. İşte sistemin çalışma halindeki bir video genel bakışı Kendiniz için bir tane nasıl oluşturacağınızı görmek için okumaya devam edin! **Güncelleme** Tüm kod, şemalar ve PCB tasarımları test edilmiş ve iyileştirilmiştir. Hepsi 8/9/2010 itibariyle burada yayınlanmıştır Kurulan ve çalışan son sistemin güncellenmiş videosu.

Adım 1: Gerekli Parçalar

Gerekli Parçalar
Gerekli Parçalar

Parçaların bir listesi ve onları satın aldığım SparkFun.com'a bağlantılar. Bu, inşa etmeniz gereken temel parça seti ve arduino ve arduino'ya RFID etiketlerini okumak için bir devredir. Zaten bir breadboard, güç kaynağı ve bağlantı kablolarınız olduğunu varsayıyorum.

Arduino Eşyaları

Arduino Bootloader ile ATmega168 $ 4,95

Kristal 16MHz 1,50$

Kondansatör Seramik 22pF 0,25 ABD Doları (x2)

Direnç 10k Ohm 1/6 Watt PTH $0.25

Mini Basmalı Düğme Anahtarı $0.35

Üçlü Çıkışlı LED RGB - Dağınık $1,95

RFID malzemeleri

Bunlardan herhangi biri, 20'nin menzili daha iyi, 12'si daha küçükRFID Reader ID-12 29,95$RFID Reader ID-20 34,95$

RFID Okuyucu Koparma $0,95

Break Away Headers - Düz 2,50$

RFID Etiketi - 125kHz 1,95 $

Başka

TIP31A transistör (radyo kulübesi/yerel elektronik mağazası 1,50$)

Kapı Kilidi ebay'den. Kapı Arızası Güvenli erişim kontrolü Electric Strike v5 NO 17.50 $ (kawamall, bay)

Adım 2: Arduino Denetleyicisini Oluşturun

Arduino Denetleyicisini Oluşturun
Arduino Denetleyicisini Oluşturun
Arduino Denetleyicisini Oluşturun
Arduino Denetleyicisini Oluşturun
Arduino Denetleyicisini Oluşturun
Arduino Denetleyicisini Oluşturun

Temel bir Arduino ile bir RFID kapı kilidi oluşturmanın ilk adımı, temel bir çalışan arduinoyu devre dışı bırakmaktır. Çoğu Arduino ön flaşlı ATMega 168 yongası, önceden yüklenmiş varsayılan yanıp sönme programı ile birlikte gelir. Dijital çıkış 13'e bir LED bağlayın ve her şeyin çalıştığını doğrulayın.

Dahili USB programlayıcıya sahip normal bir arduino kullansaydık, bu RFID okuyucunun donanım kısmı çok basit olurdu. Bunu duvara yerleştirmeyi ve bir daha dokunmamayı planladığım için, 5 dolarlık bir ATMega 168 satın alıp çok daha küçük bir özel PCB yapabileceğimde 30 dolarlık büyük hacimli bir arduino kartı kullanmak istemiyorum.

Kendim temel bir Arduino devresi yapmayı seçtiğim için harici bir USB->Seri FDIT programlayıcısına ihtiyacım var. 7805 voltaj regülatöründen yapılmış bir güç kaynağına sahip kontrolörün Eagle şemalarını ekledim. Testte bir breadboard güç kaynağı kullandım.

Bir arduino'yu çalıştırmak ve çalıştırmak için gerçekten ihtiyacınız olan tek şey, üzerinde flaşlı arduino yazılımı bulunan ATMega168, 2x 22pF kapasitörler, 16mhz kristal, 10k ohm direnç, basma düğmesi ve bir devre tahtasıdır. Bunun için bağlantı iyi biliniyor ancak devre için tüm şemayı ekledim.

Arduino, her biri Kırmızı/Yeşil/Mavi LED'ler için 1 ve TIP31A'yı kapı kilidine 12vDC göndermek üzere tetiklemek için 1 olmak üzere 4 çıkışı tetikleyecektir. Arduino, ID-20 RFID okuyucudan Rx hattındaki seri verileri alır.

3. Adım: RFID Okuyucuyu Oluşturun

RFID Okuyucuyu Oluşturun
RFID Okuyucuyu Oluşturun
RFID Okuyucuyu Oluşturun
RFID Okuyucuyu Oluşturun
RFID Okuyucuyu Oluşturun
RFID Okuyucuyu Oluşturun

Artık arduino ekmek tahtasına sahip olduğunuza ve çalışmaya başladığınıza göre, devrenin durumunu belirtmek için ID-10 veya ID-20 ve RGB LED'i içeren devrenin RFID okuyucu kısmını bir araya getirebilirsiniz. Okuyucunun dışarıda olacağını ve içerideki denetleyiciden ayrı olacağını unutmayın, böylece birisi kolayca içeri giremez.

Bunu oluşturmak için, birincil breadboard'dan Reader'ı inşa ettiğimiz ikincil bir breadboard'a 5v/Ground üzerinden göndereceğiz. Ayrıca her renk için bir tane olmak üzere RGB LED'i kontrol etmek için arduino çıkış pinlerinin 3'ünden 3'ün üzerinde kablo gönderin. Bir başka tel, resimlerdeki Brown, ID-20'nin arduino'nun Rx seri girişiyle konuşması için bir seri bağlantı olacaktır. Bu, bağlanması çok basit bir devredir. LED'ler direnç alır ve ID-20'deki birkaç nokta doğru durumu ayarlamak için toprağa/5v bağlanır.

ID-10/ID-20 Sparkfun, devre tahtasına yerleştirmeyi kolaylaştırmak için, bir devre tahtasına sığacak şekilde aralıklı daha uzun pin başlıkları eklemenize izin veren bir Breakout panosu satar. Bu parça ve pinheaders ve parça listesinde listelenmiştir.

Şematik düz ve takip etmesi kolay olmalıdır.

Adım 4: Programlayın

Arduino'nuzu programlama zamanı. Temel bir arduino kullanarak bu biraz zor olabilir, yüklemenin ilk bölümünde ve öncesinde sıfırlama düğmesine birden çok kez basmanız gerekebilir. Hatırlanması gereken çok önemli bir şey, ID-20 seri hattını arduino'nun Rx hattına geçici olarak kesmezseniz bir yükleme hatası alırsınız. ATMega168'in yalnızca 1 Rx girişi vardır ve bunu programcıyla konuşmak için kod yüklemek için kullanır. Programlama sırasında ID-20'nin bağlantısını kesin ve işiniz bittiğinde tekrar takın. Arduino'yu sadece 4 kablo ile USB üzerinden programlamanıza izin veren bir FTDI programlayıcı kullandım. Kontrolör şeması, doğrudan bir tane takmanıza izin vermek için bir pin başlığı bağlantısını gösterir. Sparkfun da bu parçayı satıyor ama birçoğunda zaten var.

Kodumu kolayca arduino'nuza yükleyebilirsiniz ve asla arkanıza bakmazsınız ama bunun neresi eğlenceli? Nasıl çalıştığına dair temel fikri açıklamama izin verin.

Her şeyden önce, herhangi bir harici düğme/anahtar/vb istemedim ve her yeni kart eklemek istediğimde arduino'yu yeniden programlamak istemedim. Bu nedenle hem devrenin çalışmasını hem de kapı kilidini kontrol etmek için sadece RFID kullanmak istedim.

Program, yeni bir kartı okumaya hazır olduğunu belirtmek için Mavi LED'i yakar. Kart okunduğunda, okuduğunu geçerli kartlar listesiyle karşılaştırarak geçerli bir kart olup olmadığına karar verir. Kullanıcı geçerliyse, arduino Mavi LED'i KAPATIR ve Yeşil LED'i 5 saniye boyunca yakar. Ayrıca 5 saniye boyunca başka bir yüksek çıkışı açar. Bu çıkış TIP31A transistörüne bağlıdır ve minik arduino'nun çok daha büyük bir 12v 300mA kapı kilidini hasar görmeden kontrol etmesini sağlar. 5 saniye sonra kapı kilidi yeniden kilitlenir ve başka bir kartın okunmasını beklemek için LED tekrar maviye döner. Kart geçersizse LED birkaç saniyeliğine KIRMIZI renge döner ve başka bir kart beklemek için tekrar Maviye döner.

Arduino bir gecede güç kaybetse veya sıfırlansa bile kapı kilidinin çalışmaya devam etmesi önemlidir. Bu nedenle tüm geçerli kart kimlikleri EEPROM hafızasında saklanır. ATMega168, 512 Bayt EEPROM belleğe sahiptir. Her bir RFID kartının, ID-20 ile arduino arasındaki aktarımda herhangi bir hata olmadığını doğrulamak için kullanabileceğimiz 5 Hex Bayt seri numarası ve 1 Hex Bayt Kontrol toplamı vardır.

Geçerli kartlar, sayaç olarak ilk Bayt kullanılarak EEPROM'da saklanır. Örneğin, EEPROM'da saklanan 3 geçerli kart varsa, ilk Bayt 3 olur. EEPROM.read(0); = 3. Bunu bilerek ve her ID'nin 5 Byte uzunluğunda olduğu gerçeğinden yola çıkarak 1-5'in birinci, 6-10'un 2. ve 11-15'in 3. kart olduğunu biliyoruz. EEPROM'dan bakan bir döngü yapabiliriz. Bir seferde 5 bayt ve okuyucu tarafından okunan kartı bulmaya çalışır.

Fakat devre kurulduktan sonra EEPROM'a nasıl yeni kartlar ekleyebiliriz?? Sahip olduğum RFID kartlarından birinde okudum ve onu Master RFID kartı olarak kodladım. Böylece tüm EEPROM silinse bile ana kart çalışmaya devam edecektir. Bir kart okunduğunda, önce Master kart olup olmadığını kontrol eder, değilse geçerli bir kart olup olmadığını kontrol etmeye devam eder. Kart ana kart ise, arduino'nun RGB'yi yanıp söndüğü ve başka bir geçerli etiketin okunmasını beklediği bir "programlama moduna" girmesini sağlıyoruz. Okunan bir sonraki etiket EEPROM'daki bir sonraki boş noktaya eklenir ve kart EEPROM belleğinde mevcut değilse sayaç 1 artırılır. Okuyucu daha sonra normal moda döner ve yeni bir kartın okunmasını bekler.

Şu anda bir kartı silmenin bir yolunu programlamadım, çünkü bir kartı silme nedenleri büyük olasılıkla kaybolması veya çalınması olabilir. Bu, büyük olasılıkla 1-10 kişiyle kullanılacağından, yapılacak en kolay şey, tüm kartları EEPROM'dan silecek bir Ana Silme kartını sert bir şekilde programlamak ve ardından hepsini yeniden eklemek olacaktır, bu sadece birkaç saniye sürer. EEPROM'u silmek için kod ekledim ancak bu özelliği henüz uygulamadım..

Kod, parça listesinin bir kopyasıyla birlikte bir metin dosyasına eklenir.

Adım 5: Genişlet

Bu, RFID ile yapabileceğiniz harika şeylerden sadece birkaçı. Bunu bir LCD çıkışı, kimin ne zaman girdiğinin loglanması, ağ/twitter bağlantısı vs. ile daha da genişletebilirsiniz. Bu devrenin bitmiş bir PCB versiyonunu yapmayı planlıyorum. Daha önce hiç PCB yapmadım, bu yüzden hala parçaların tasarımı ve yerleşimi üzerinde çalışıyorum. Tamamladıktan sonra onları da yayınlayacağım. Herkesi yazdığım kodu almaya ve daha da harika şeyler yapmak için değiştirmeye teşvik ediyorum!

Arduino Yarışmasında Finalist

Önerilen: