سلة مهملات ذكية باستخدام قارئ البطاقات MFRC522 RFID مع الاردوينو اكتب تعليقُا

تم نشر هذا المشروع لجميع الأشخاص المهتمين في مجال تصنيع وابتكار المشاريع الإلكترونية والبرمجية، و نود التنويه أن موقع انا الكتروني يخلي مسؤوليته التامة في حال لم يعمل المشروع لدى العميل أو في حال الاستخدام الخاطئ للمكونات الإلكترونية والكهربائية التي قد تؤدي لحدوث الحرائق أو غيرها لا سمح الله.

مواجهة قارئ البطاقات MFRC522 RFID مع الاردوينو

يوضح المشروع هذا مثالًا بسيطًا حول كيفية استخدام قارئ MFRC522 RFID في بناء قفل ذكي . أذا كانت هذه المرة الاولة لك ولا تعرف ما هو قارئ MFRC522 RFID ؟ نوصي بشدة مطالعة المقال التالي : ما هو قارئ MFRC522 RFID وكيفية مواجهته مع الاردوينو

618xHKRFg+L._AC_SL1000_

فكرة المشروع وما هي MFRC522 RFID

ماهي MFRC522 RFID :

RFID هي التعرف علي الهوية باستخدام موجات الراديو  وهي تستخدم على نطاق واسع في العديد من الصناعات لمهام مثل تعقب الأفراد والتحكم في الوصول وإدارة سلسلة التوريد وتتبع الكتب في المكتبات وأنظمة الرسوم وما إلى ذلك .

فكرة المشروع :

يتم استخدام بطاقات تعريف الهوية من أجل فتح أو أغلاق سلة المهملات , حيث يتم محرك سيرفو موتور لفتح السلة في حالة اسجابة القارئ للبطاقة المسموح لها والا تظل السلة مغلقة .

متطلبات المشروع :

  • Arduino UNO board   —-> Atmega328P datasheet
  • MFRC522 RFID reader
  • Servo Motor SG90 9g 180 Degree
  • Breadboard
  • Jumper wires
  • LCD Display With I2C Lcd

مخطط توصيل مكونات المشروع

لتوصيل وحدة MFRC522 RFID ومحرك السيرفو في  المشروع يجب ربط الادوات وفق المخطط أدناه

Mifare_bb - Copy

مخطط توصيل الشاشة مع المسجل كما بالصورة أدناه

i2c_03
تنبيه : في حال لم تكن متأكد من قدرتك على تنفيذ خطوات المشروع يرجى استشارة شخص متخصص في هذا المجال.

الكود البرمجي

في تجربتنا سوف يتحرك السيرفو لفتح السلة  في حالة اسجابة القفل للبطاقة المسموح لها  . سيكون من المفيد فهم كيفية استخدام الوحدات ويمكن أن تكون بمثابة أساس لتجارب ومشاريع أكثر عملية .

فيما يلي الكود الذي سنستخدمه في المشروع قارئ MFRC522 RFID مع السيرفو والاردوينو  :

لتحميل الكود البرمجي اضغط هنا

#include <SPI.h>
#include <MFRC522.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <Servo.h>
LiquidCrystal_I2C lcd(0x27,16,2);
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);
Servo myServo;

int *aux;
int card1[4];
int flag = 0;
int led = 13;
int cnt =0;

void setup() {
pinMode(led, OUTPUT);

lcd.init();
lcd.backlight();
SPI.begin();
mfrc522.PCD_Init();
lcd.print(” Hello “);
lcd.setCursor(0,1);
lcd.print(” Put the card “);

myServo.attach(6);
myServo.write(0);
}

void loop() {

if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}

if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}

for (byte i = 0; i < mfrc522.uid.size; i++) {
aux[i]= mfrc522.uid.uidByte[i];
}
if(flag == 0)
{
lcd.clear();
lcd.print(” Card UID: “);
lcd.setCursor(0,1);
for (byte i = 0; i < mfrc522.uid.size; i++) {
card1[i] = aux[i];
lcd.print( card1[i], DEC);
lcd.print( ” “);
flag =1;
}
delay(3000);
lcd.clear();
lcd.print(” Hello “);
lcd.setCursor(0,1);
lcd.print(” Put the card “);
}

else{

for (byte i = 0; i < mfrc522.uid.size; i++) {
if(aux[i] == card1[i])
cnt++;
}

if(cnt == mfrc522.uid.size-1)
{
lcd.clear();
lcd.print(” ACCES “);
lcd.setCursor(0,1);
lcd.print(” Opened “);
delay(200);

myServo.write(180);
delay(5000);
myServo.write(0);
}
else
{
lcd.clear();
lcd.print(” Oh “);
lcd.setCursor(0,1);
lcd.print(” Try again “);
delay(2000);
}

}

lcd.clear();
lcd.print(” Hello “);
lcd.setCursor(0,1);
lcd.print(” Put the card “);
cnt=0;
}

لقد وصلت الي وجهتك ,,,,, أنتهت ,,,,,

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *