در این پروژه می خواهیم به وسیله raspberry pi 3 و با زبان python ماژول EM-19 را راه اندازی کنیم به طوری که شماره ی کارت ها را در یک فایل (با فشردن کلید ونزدیک کردن کارت ) ذخیره کند و اگه کارتی که به ان نزدیک میکنید قبلا ذخیره شده باشد با یک led به شما خبر می دهد .
ابزار مورد نیاز برای راه اندازی پروژه:
- برد رزبری پای 3
- ماژول EM-19 RFID Reader
- برد برد
کاربرد های ماژول EM-19(RFID)
سیستم های امنیتی
قفل کارتی هتل و استخرها
کارت های اعتباری و بلیط های الکترونیکی
شناسایی کاربر یا خودور یا کالا …
خانه های هوشمند
فناوری اطلاعات
سامانه های هوشند
RFID در ساخت و ساز : ابزار ردیابی ، ردیابی لوله
RFID در بیمارستان و مراقبت از سلامت
سیستم های پرداخت RFID
دستگاه های حضور و غیاب و کنترل تردد
ترتیب پایه های این ماژول به شرح زیر است :
برای ارتباط این ماژول با raspberry pi3 از پورت سریال در حالتTTL استفاده میکنیم که برای این منظور پایه های 5و6 را به جامپر به هم میبندیم سپس پایه ی TXD (پایه 9) به پایه 10 raspberry pi3 و پاییه های 1 و2 ماژول را به پایه های 4و 6 raspberry pi3 وصل میکنیم.

ارتباط ماژول EM-19 از طریق پورت سریال است و مشخصات ان به شرح زیر است :
باید پورت سریال raspberry pi3 را فعال کنیم . مراحل فعال کردن پورت سریال در raspberry pi3 :
نکته :این روش فقط برای raspberry pi3 صادق است و بر روی ورژن ها قبلی عمل نمی کند!!!
1.صفحه ترمینال را باز کنید
2.خط زیر را در ان بنویسید
sudo nano /boot/config.txt
3.صفحه ای برای شما خواهد امد در انتهای ان دو خط زیر را اضافه کنید :
enable_uart=1 core-freq=250
4.سپس دکمه های ctrl+X زده و بعد دکمه Y را بزنید و بعد از ان enter را بزنید
5.در صفحه ترمینال خط زیر را بنویسید :
sudo nano /boot/cmdline.txt
6.در صفحه ی باز شده چنین چیزی خواهید دید:
dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes root wait
7. بخش زیر را از ان پاک کنید :
console=serial0,115200
8.سپس دوباره دکمه های ctrl+X زده و بعد دکمه Y را بزنید و بعد از ان enter را بزنید حال پورت سریال raspberry pi3 شما فعال شده است . برای مرحله بعد باید یک کلید ویک led به raspberry pi3 خود اضافه کنید .
کلید برای اینکه بتوان کارت جدید را به فایل اضافه کرد . بعد از هر بار خواندن کارتی که قبلا عضو شده است led یک بار چشمک میزند و بعد از عضو کردن کارت جدید led برای 5 ثانیه روشن می ماند . برای استفاده از gpio در python باید کتابخانه ان را اضافه کرد .
نصب کتابخانه GPIO برای python :
1.ترمینال را باز کنید خط زیر را در ان بنویسید :
sudo apt-get install python3-rpi.gpio
صبر کنید تا نصب ان تمام شود ترمینال را ببندید.
ساختن فایل های مورد نیاز :
رو صفحه ی desktop راست کلیک کرده در بخش create new گزینه empty file را انتخاب کنید.
سپس در نوار بازشده خط زیر را بنویسید :
دکمه ok را بزنید دوباره یک فایل جدید بسازید و درنوار باز شده خط زیر را بنویسید :
ok را بزنید فایل project را باز کرده و کد های زیر را در ان بنویسید:
#فراخواني کتابخانه هاي مورد نياز #####
import serial
import binascii
import time
import RPi.GPIO as GPIO
######################################
#############تعريف پايه ها############
Led=4
Button=18
######################################
##########initialing gpio#############
GPIO.setmode(GPIO.BCM)
GPIO.setup(Led,GPIO.OUT)#خروجي کردن پايه
GPIO.setup(Button,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)# کردن انpulldownورودي کردن پايه و
######################################
#########initialing serial############
ser=serial.Serial(
port='/dev/ttyS0',
baudrate=9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS
)
ser.open()
######################################
CardIds=[]
NumberOfCardIds=0
while 1:
file=open('/home/pi/Desktop/data.txt','r+')#باز کردن فايل
##########خواندن خط هاي داخل فايل######
for line in file:
String=line
CardIds.append(String[:-1])
NumberOfCardIds+=1
#####################################
while 1:
ReadID=ser.read(12).decode('utf-8')#گرفتن اي دي کارت از ماژول
####################شرط براي عضو کردن کارت ############
if GPIO.input(Button):
file.write(ReadID)
file.write('\n')
GPIO.output(Led,1)
time.sleep(5)
GPIO.output(Led,0)
break
#######################################################
############چک کردن کد کارت با فايل####################
for x in range(0,NumberOfCardIds):
if ReadID==CardIds[x]:
GPIO.output(Led,1)
time.sleep(0.5)
GPIO.output(Led,0)
#######################################################
file.close()
ser.close()
نمایی از شماتیک پروژه:
نویسنده:شهاب نیکخو(SHB) منبع: ECA.ir
از ایده تا طراحی ایده های الکترونیکی خود را به واقعیت تبدیل کنید







