Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Raspberry Pi
120 min
Share

التحكم فى فتح وقفل باب باستخدام بطاقة ممغنطة ولوحة راسبيرى باى 4

تقنية (RFID) هي تقنية تستخدم الموجات اللاسلكية للكشف عن جسم مرتبط بهوية مميزة. ويتم استخدامها في العديد من التطبيقات التجارية والصناعية.

Project Video

Overview

في هذا المشروع، سنقوم بإنشاء قفل ذكي للتحكم فى فتح وقفل باب باستخدام موديول RFIDالذي يتطلب بطاقة معينه لتنفيذ إجراء معين. في حالتنا، سوف نستخدمه لفتح الباب بمحرك سيرفو.

Getting the Items

Raspberry Pi 4 Model B
Get Item
RFID Kit
Get Item
SG90 Servo -Positional Rotation
Get Item
LED Kit – (4 colors, 5 pieces each)
Get Item
1/4 Watt Resistor (20 Pack)
Get Item
Half-size Breadboard
Get Item
Jumper Wires – Male to Female (40 Pack)
Get Item

Steps

أولاً، نقوم بتشغيل اتصال SPI في نظام التشغيل Raspbian وذلك عن طريق النقر على الmenu ، ومن ثم preferences،ومن ثم Raspberry pi configuration، ومن خانة interfaces، قم بتفعيل الزر الموجود بجانب الSPI كما هو موضح في الصورة أدناه.

الآن يجب علينا تثبيت بعض المكتبات حتى نتمكن من استخدام تقنية الRFID مع لوحة Raspberry Pi 4 دون مشاكل. قم بإدخال هذه الأوامر بالترتيب في طرفية لينكس:

• sudo apt-get update

• sudo apt-get upgrade

• sudo apt-get install python3-dev python3-pip

• sudo pip3 install spidev

• sudo pip3 install mfrc522

Wiring it Up

قم بتوصيل الاسلاك بين لوحة راسبيرى باى 4 وبين موديول ال RFID كما فى الصورة التى فى الاسفل :

التوصيلات من الراسبيرى باى 4 الى لوحة التجارب :

• منفذ ال 3.3 فولت ← المنافذ الموجبة بلوحة التجارب

• منفذ الجراوند ← المنافذ السالبة بلوحة التجارب

التوصيلات من موديول ال RFID  :

• طرف 3.3 فولت من موديول ال mfrc522 ← المنافذ الموجبة بلوحة التجارب

• طرف الGND من موديول ال mfrc522 ← المنافذ السالبة بلوحة التجارب

• طرف الRST من موديول ال mfrc522 ← منفذ رقم 25 بلوحة راسبيرى باى 4

• طرف الMISO من موديول ال mfrc522 ← منفذ رقم 9 بلوحة راسبيرى باى 4

• طرف الMOSIمن موديول ال mfrc522← منفذ رقم 10 بلوحة راسبيرى باى 4

• طرف الSCKمن موديول ال mfrc522← منفذ رقم 11 بلوحة راسبيرى باى 4

• طرف الSDAمن موديول ال mfrc522← منفذ رقم 8 بلوحة راسبيرى باى 4

التوصيلات من محرك السيرفو :

• طرف الطاقة الموجب من محرك السيرفو ← المنافذ الموجبة بلوحة التجارب

• طرف الطاقة السالب من محرك السيرفو ← المنافذ السالبة بلوحة التجارب

• طرف الاشارة من محرك السيرفو ← منفذ رقم 12 بلوحة راسبيرى باى 4

التوصيلات من مصباح الled  الابيض:

• الطرف الموجب من مصباح ال ← LED مقاومة 220 اوم ← منفذ رقم 16 فى لوحة راسبيرى باى 4

• الطرف السالب من مصباح ال← LED  المنافذ السالبة بلوحة التجارب

التوصيلات من مصباح الled  الاحمر:

• الطرف الموجب من مصباح ال ← LED مقاومة 220 اوم ← منفذ رقم 20 فى لوحة راسبيرى باى 4

• الطرف السالب من مصباح ال← LED  المنافذ السالبة بلوحة التجارب

Coding

قم بتوصيل الاسلاك بين لوحة راسبيرى باى 4 وبين موديول ال RFIDومحرك السيرفو ومصابيح الليد كما فى الصورة التى فى الاسفل :

الان قم بتشغيل الكود البرمجى، ستجد أن لوحة Raspberry Pi 4 تفتح الباب باستخدام محرك السيرفو. وستقوم بطباعة الرقم التعريفى للبطاقة على نافذة عند وضع البطاقة الصحيحة على جهاز استشعار RFID، وسيضيء المصباح الابيض، ولكن إذا تم وضع بطاقة خاطئة، سيضيء المصباح  الاحمر ولن يتحرك المحرك.

فى هذا المشروع نستخدم نظام تشغيل (bullseye) Raspberry Pi OS Legacy يعمل على لوحة راسبيرى باى 4

from mfrc522 import SimpleMFRC522

import time

import RPi.GPIO as GPIO

import tkinter as tk

from tkinter import font

from gpiozero import AngularServo

from time import sleep

from gpiozero import LED

import time

white_led = LED(16)  # GPIO pin 16

red_led = LED(20)  # GPIO pin 20

servo = AngularServo(12,min_pulse_width=0.0006, max_pulse_width=0.0023)

servo.angle = 90

window = tk.Tk()

window.title("Gate opener using rfid card ")

custom_font = font.Font(size=30)

window.geometry("900x500")

RFID_label = tk.Label(window, text="Place the correct card to open the gate.", anchor='center', font=custom_font)

RFID_label.pack()

CARD_ID_label = tk.Label(window, anchor='center', font=custom_font)

CARD_ID_label.pack()

gate_state_label = tk.Label(window, anchor='center', font=custom_font)

gate_state_label.pack()

window.update()

reader = SimpleMFRC522()

def read_rfid():

 

  id, text = reader.read()

 

  if id == None :

      RFID_label.config(fg="red", text="Place the correct card to open the gate.")

      print("Place the correct card to open the gate.")

     

   

  else :

      # Scan for cards

      print("CARD DETECTED.")

      RFID_label.config(fg="red", text="CARD DETECTED.")

      # Print the card ID

      print("Card ID:", id)

      CARD_ID_label.config(fg="red", text="Card ID: {} ".format(id))

     

      if id == 71518933307 :

           gate_state_label.config(fg="red", text="Valid rfid card ID,Gate will open.")

           window.update()

           servo.angle = -90

           white_led.on()  # Turn on the LED

           sleep(3)  # Delay for 3 second

           white_led.off()  # Turn off the LED

           servo.angle = 90          

           sleep(1)  # Delay for 1 second

           

      else :

          gate_state_label.config(fg="red", text="Invalid rfid card ID,Gate won't open.")

          window.update()

          servo.angle = 90

          red_led.on()

          sleep(1)  # Delay for 1 second

          red_led.off()

      window.after(1, read_rfid)

 

read_rfid()  

window.mainloop()

Testing it Out

الان قم بتشغيل الكود البرمجى، ستجد أن لوحة Raspberry Pi 4 تفتح الباب باستخدام محرك السيرفو. وستقوم بطباعة الرقم التعريفى للبطاقة على نافذة عند وضع البطاقة الصحيحة على جهاز استشعار RFID، وسيضيء المصباح الابيض، ولكن إذا تم وضع بطاقة خاطئة، سيضيء المصباح  الاحمر ولن يتحرك المحرك.

Resources

No items found.