Alışverişlerinizi Robotistan’dan Yapın

Faydalı içerikler oluşturarak size yardımcı olmak istiyoruz. Aynı zamanda hızlı teslimat ve müşteri memnuniyetini ön planda tutarak malzeme satışı yapıyoruz. Alışverişlerini robotistan.com‘dan yaparak sen de bize yardımcı olabilirsin 🙂

Raspberry Pi 3 İle RC522 RFID Modülü Kullanımı #15

Raspberry Pi Dersleri serimizde kullanacağımız malzemelerin tamamına sizler için hazırladığımız setler ile kolayca sahip olabilirsiniz. Raspberry Pi’ye Uzaktan Bağlantı Yöntemleri (VNC,SSH,TTL) #4 dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı #11 dersimize kadar olan malzemeler için Süper Başlangıç Seti, tüm derslerdeki malzemeler için Proje Seti tercih edebilirsiniz.

Merhabalar. Bu dersimizde sizler ile birlikte Raspberry Pi’mizde RFID kart okuma işlemi yapacağız.

Gerekli malzemeler:

RFID, nesnelerin radyo dalgaları kullanılarak tanınması için geliştirilmiş bir teknolojidir. Toplu taşıma araçlarındaki biletler, otoyol gişelerinde kullanılan HGS/OGS gibi ödeme sistemleri, okul/işyerlerimizdeki turnikelerde sıklıkla karşımıza çıkar. Bu dersimizde de Raspberry Pi kullanarak RFID okuma örneği yapacağız.

RFID okuyucu kartların içersinde büyük ihtimalle fiyatı sayesinde en popüler olanı MFRC522 entegresine sahip olan kartlardır.

RC522 RFID seti

Set içerisinde NXP firmasının üretmiş olduğu MFRC522 entegresine (datasheet) sahip bir devre kartı ile birlikte bir adet RFID kart ve anahtarlık gelmektedir. MFRC522, SPI arayüzüne sahip olduğundan dolayı, Arduino gibi mikrokontrolcüler veya Raspberry Pi gibi tek kart bilgisayarlar ile kolaylıkla kullanılabilir. Kartımızı, paket içerisinde gelen header’ları lehimledikten sonra aşağıdaki şemaya göre Raspberry Pi’mize bağlıyoruz:

RC522 – Raspberry Pi bağlantı şeması

Devre bağlantımızı tamamladıktan sonra, Python kodumuzun çalışabilmesi için öncelikle gerekli kütüphaneyi yüklememiz gerekli:

sudo pip install pi-rc522

Aşağıdaki Python kodunu rfid-read.py isimli bir dosyaya kaydediyoruz. Alternatif olarak kodu buradan da kopyalayabilirsiniz.

from pirc522 import RFID
import signal
import time

rdr = RFID()
util = rdr.util()
util.debug = True
print("Kart bekleniyor...")
rdr.wait_for_tag()
(error, data) = rdr.request()

if not error:
 print("Kart Algilandi!")
 (error, uid) = rdr.anticoll()
 if not error:
 kart_uid = str(uid[0])+" "+str(uid[1])+" "+str(uid[2])+" "+str(uid[3])+" "+str(uid[4])
 print(kart_uid)

Kodu kaydettikten sonra

python rfid-read.py

komutu ile çalıştırıyor ve kartımızı okutuyoruz. Böylelikle okuttuğumuz kartın UID’sini öğreniyoruz:

Burada kartımızın UID’sini görmekteyiz. Yapmamız gereken, burada yer alan UID’yi bir kenara not etmek. Bir sonraki programımızı da rc522.py isimli dosyaya kaydediyoruz (alternatif olarak buradan da erişebilirsiniz):

from pirc522 import RFID
import signal
import time
import RPi.GPIO as GPIO 

ledpin = 7
GPIO.setmode(GPIO.BOARD)
GPIO.setup(ledpin, GPIO.OUT)
rdr = RFID()
util = rdr.util()
util.debug = True

while True:
 rdr.wait_for_tag()
 (error, data) = rdr.request()
 if not error:
 print("\nKart Algilandi!")
 (error, uid) = rdr.anticoll()
 if not error:
 # Print UID
 kart_uid = str(uid[0])+" "+str(uid[1])+" "+str(uid[2])+" "+str(uid[3])+" "+str(uid[4])
 print(kart_uid)
 if kart_uid == "xxxxxxxxxxxxxxxx":
 print("LED Yandi!")
 GPIO.output(ledpin, True) 
 else: 
 print("LED Sondu!")
 GPIO.output(ledpin, False)

Daha önce kopyaladığımız UID’yi, bu kodda yer alan

 if kart_uid == "xxxxxxxxxxxxxxxx":

satırındaki değer ile değiştiriyoruz. Böylece program bizim okutmuş olduğumuz RFID kartını algıladığı zaman bağlamış olduğumuz LED’i yakacak. Farklı bir kart okuttuğumuzda ise LED sönecek:

Buradaki LED yakıp söndürme örnek bir uygulamadır. Sizler de örneğin LED’in yerine bir röle kartı bağlayarak istediğiniz UID’ye sahip bir kart okunduğunda 0.5sn kadar bir süre çıkış verdirerek bir RFID kilit açma uygulaması yapabilirsiniz.

Yorumları Görüntüle

  • Merhabalar. Output olarak LCD ekran kullanmayı düsünüyorum ama kodları nasıl yapacagımı bilmiyorum acaba yardımcı olabilecek var mı şimdiden teşekkürler :)

  • Merhaba, devreyi birkaç kez kurmama rağmen "Kart bekleniyor..." mesajında bekliyor. ilerlemiyor.
    Paketin içinden anahtarlığı ve kartı deniyorum. Başka bir ayar mı yapmam gerkeiyor.

  • Hocam merhabalar. rasperyy pi'ye en fazla kaç adet rfid modül bağlayıp hepsini kontrol edebilir miyiz

  • 16. satırdaki kodu düzeltince 1. satır için hata verdi ne yapabilirim?
    acele cevap

  • merhaba 1 tane kartı yonetıcı olarak kullanıp kart ekleme silme islemini temassız olarak nasıl sağlarız.

  • tekrar merhaba, 1. bölümdeki kodu çalıştırdığımda sadece 'Kart bekleniyor' yazısı gelmekte.
    Ayrıca (rc522 de D1 in kırmızı ışığı yanıyor ve led de çok az da olsa bir ışık var) bilgilerinize.
    yardımınızı rica ediyorum.

    • Bende aynı hatayı alıyorum acaba biraz daha açık anlatabilir misin? Demek istediğini anlamadım.

      • Demek istediği şu ;

        Örneğin kodumuz :
        a = 5
        if a > 4 ;
        print("DEneme")

        Ancak o kodda şöyle olmuş

        a = 5
        if a > 4 ;
        print("DEneme")

        - Bu sebeple kod hata vermiş , eğer anlamadıysan anlatabilirim

En Son İçerik

Arduino’nun Korkulu Rüyası: ESP8266

Herkese merhabalar! Daha önce hiç kablosuz internet bağlantısı ile proje yaptınız mı? IoT projelerine ilginiz var mı? Sizi bu yazımızda…

4 gün Önce

Arduino ve C# ile LCD Ekrana Yazı Gönderme – 7. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, bu dersimizde C# ile hazırlayacağımız form uygulaması üzerinden Arduino'ya bağlı LCD ekranımızı…

3 hafta Önce

3D Printer Yapımı – 553TL’ye Kendi 3D Yazıcını Yap

Herkese merhabalar! Bu yazımızda üç boyutlu yapımı için hangi adımları uygulamak gerekiyor, 3D yazıcı yapımı için gerekli olan malzemelerden ve…

4 hafta Önce

Arduino ile Nabız Ölçer

Herkese merhabalar, bu yazımızda medikal sensörlerden biri olan Pulse nabız sensörünü kullanarak nabız verisini okumayı ve elde ettiğimiz sonucu Nokia…

2 ay Önce

Lipo Pil Nedir? Çeşitleri ile Kapsamlı Lipo Batarya Rehberi

Birçok RC araçta ve robot projelerinde kullanılan Li-Po batarya çeşitlerini, güvenli kullanım ve şarj yöntemlerini bu videomuzu izleyerek öğrenebilirsiniz.

2 ay Önce

Arduino ve C# Haberleşmesi: Bluetooth ile Servo Motor Kontrolü – 6. Ders

Sonraki Ders > < Önceki Ders Arkadaşlar merhaba, bu derste hazırladığımız arayüz üzerinden seri haberleşmeyi kullanarak servo motor kontrolünü göreceğiz.…

2 ay Önce