استفاده از RFID با پایتون در رزبری پای
این پست فقط نمونه ای از سهولت استفاده از ماژول RFID است اما مراقب باشید وقتی می خواهید از این ایده در محیطی استفاده کنید که به ذخیره سازی طولانی مدت داده ها نیاز دارد نیاز به یک کنترل از طریق دیتا بیس خواهید داشت و به خصوص یک رابط کاربری برای کنترل.در مثال زیر صرفا نحوه دریافت و خواندن ورودی کارت ها و شماره سرایل داخلیشان مورد بررسی قرار می گیرد.
ماژول های RC522 RFID یک افزونه ساده است که می توانید برای خواندن برچسب ها و کارت های MIFARE به Raspberry Pi متصل شوید. این به طور بالقوه یک ویژگی عالی برای قرار دادن در یک سیستم امنیتی یا هر برنامه ای است که در آن شما باید یک شی یا شخص را بدون فشار دادن آنها بر روی دکمه ها ، سوئیچ های عامل یا حسگرهای دیگر شناسایی کنید. برچسب های بدون تماس را می توان روی یک کلید حلقه ای حمل کرد و کارت ها به راحتی در کیف پول قرار می گیرند. هر دوی آنها را می توان در داخل اشیا other دیگر پنهان کرد تا یک شناسه منحصر به فرد برای خواندن توسط Pi به آنها بدهد.
پروتکل های پشتیبانی شده
ماژول هایی که از تراشه RC522 استفاده می کنند باید از همه برچسب هایی که از استانداردهای زیر استفاده می کنند پشتیبانی کنند:
- MIFARE Mini
- MIFARE 1K
- MIFARE 4K,
- MIFARE Ultralight
- MIFARE DESFire EV1
- MIFARE Plus RF
خرید کارتها و برچسب های اضافی امکان پذیر است اما باید مطمئن شوید که آنها یکی از این استانداردها را پشتیبانی می کنند.
این ماژول های RFID نمی توانند کارت های بانکی بدون تماس را بخوانند. آنها می توانند یک شناسه را از طریق تلفن هوشمند بخوانند اما شناسه هر بار متفاوت است بنابراین در بیشتر شرایط بسیار مفید نیست.
نمونه ماژول RFID READER
شماتیک اتصالات به رزبری پای
قطعه کد نمونه برای خواندن ورودی های RFID
قبل از استفاده از کد نیاز هستش که محیط رزبری پای رو برای استفاده از پایه های spi فعال کنید.
1- فعال کردن spi از محیط rasp-config
2- نصب کتابخانه های لازم زیر:
sudo apt-get install python-spidev python3-spidev
و همینطور نصب ماژول زیر با پیروی از دستورات:
cd ~
git clone https://github.com/lthiery/SPI-Py.git
cd SPI-Py
sudo python setup.py install
sudo python3 setup.py install
3- و در نهایت دانلود و درج کردن کتابخانه کار با ماژول MFRC522 در پوشه پروژه برای import کردن
git clone https://github.com/mxgxw/MFRC522-python.git
حالا می توانید با قطعه کد زیر به تست ماژول بپردازید
import time
import RPi.GPIO as GPIO
import MFRC522
# Create an object of the class MFRC522
MIFAREReader = MFRC522.MFRC522()
# Welcome message
print("Looking for cards")
print("Press Ctrl-C to stop.")
# This loop checks for chips. If one is near it will get the UID
try:
while True:
# Scan for cards
(status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
# Get the UID of the card
(status,uid) = MIFAREReader.MFRC522_Anticoll()
# If we have the UID, continue
if status == MIFAREReader.MI_OK:
# Print UID
print("UID: "+str(uid[0])+","+str(uid[1])+","+str(uid[2])+","+str(uid[3]))
time.sleep(2)
except KeyboardInterrupt:
GPIO.cleanup()