RFID (Radio Frequency Identification)
RFID (Radio Frequency Identification) از میدان مغناطیسی برای خواندن و ارسال داده از طریق برچسب (tag)هایی که بر روی اجسام گوناگون نصب است، استفاده می کند. تگ ها می توانند هم از طریق منبع توان متصل شده به خودشان کار کنند یا توسط میدان مغناطیسی دریافتی توان خود را تامین کند.
برای مثال دو نمونه از تگ ها در شکل زیر نشان داده شده است.
ریدر EM-18 یکی از ریدر های معمول RFID است که در فرکانس 125KHZ کار می کند. از دو فرمت خروجی UART و Weigand26 پشتیبانی می کند که از هر کدام خواستید می توانید استفاده کنید. بنابراین از طریق پورت UART می تواند به طور مستقیم با میکروکنترلر و از طریق یک مبدل USB to TTL به کامپیوتر متصل شود.
پیش نیاز
برای این که بتوانید ادامه دهید پیشنهاد می کنیم ابتدا استفاده از UART رزبری پای Raspberry Pi را مطالعه نمایید.
قطعات موردنیاز اصلی
- ماژول RFID مدل EM-18
- تگ RFID
- رزبری پای
شماتیک مدار
شماتیک مدار به صورت زیر خواهد بود. دقت کنیم که Buzzer استفاده شده 5V می باشد.
در شماتیک فوق دقت شود که پین TX ریدر به RX رزبری پای متصل شده است و خازن های موجود در مدار برای فیلتر کردن منبع توان استفاده شده است. با توجه به اینکه TX پورت UART در EM-18 برابر با 5V می باشد و ورودی GPIO در Raspberry Pi برابر 3.3V می باشد باید از یک تقسیم کننده ولتاژ استفاده شود که در شماتیک فوق مد نظر قرار گرفته است. مقادیر این تقسیم کننده در شکل زیر آمده است.
همانطور که می دانیم فرمول از رابطه زیر به دست می آید.
Vout = Vin x R2/(R1+R2)
پین های EM-18 در شکل زیر آمده است.
برنامه Python
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# www.elecomhub.com import serial #import serial module def read_rfid (): ser = serial.Serial ("/dev/ttyAMA0") #Open named port ser.baudrate = 9600 #Set baud rate to 9600 data = ser.read(12) #Read 12 characters from serial port to data ser.close () #Close port return data #Return data id = read_rfid () #Function call print id #Print RFID |
برنامه فوق را به صورت زیر Run می کنیم و خروجی را مشاهده می کنیم.
در ترمینال رزبری پای اسکریپت زیر را می نویسیم و دکمه Enter را فشار می دهیم
1 |
sudo python /rfid.py |
در قطعه کد بالا فرض شده است که نام فایل rfid.py می باشد.
بعد از فشردن دکمه Enter خروجی زیر مشاهده می شود.
1 |
180065F0E16C |
دقت کنید که خروجی فوق ID تگ استفاده شده می باشد. و همانطور که می دانیم از پورت UART برای برقراری ارتباط استفاده شده است.
دیکدینگ داده
خروجی شامل 12 کاراکتر ASCII می باشد که 10 کارکتر اول ID تگ و دو کارکتر بعدی XOR کاراکتر های مربوط به ID می باشد که برای اصلاح خطا استفاده شده است. در مثال فوق
ID تگ: 180065F0E1
XOR نتیجه: 6C
می باشد.
این مطلب را به اشتراک بگذارید