به نام خدا : اولین مطلبم رو توی سایت داش مهدی مینویسم به امید خدا که مورد پسند دوستان واقع بشه؛ خب تو نسخه اول پروژه rfid که اقا مهدی زحمتش رو کشیده مطالبی در مورد RFID توضیح داده شده که میتونین از اینجا بخونین : پروژه RFID با آردوینو با قابلیت تشخیص TAG میریم سراغ آموزش ماژول RFID که من انتخاب کردم RDM6300 هستش این ماژول ارتباطش با آردوینو به صورت پروتکل سریاله ( دربازکن هوشمند rfid با ماژول rdm6300 و آردوینو )
دربازکن هوشمند rfid با ماژول rdm6300 و آردوینو
ولتاژ کاری ماژول هم 5 ولت هستش، اینم بگم که خیلی کم مصرفه دیتاشیتش رو براتون میزارم خودتون نگاه کنین (عالیه چون هم ارزونه هم کم مصرف ).
خب شکل پایه های این ماژول به صورت زیره :
کانکتور P2 که دوپایه هستش به انتن وصل میشه انتن این ماژول به همراه برد هستش اما انواع دیگه ایی هم داره که میتونین تو فروشگاه ها گیر بیارین فرکانس کاریش هم 125 کیلو هرتزه یه سایت میزارم که کل فروشگاه های ایران توشه تو اینجا سرچ کنین پیدا میکنین :
پروژه آردوینو ماژول RDM6300 – پروژه درب باز کن RFID
شماتیک پروژه
اتصال به برد اردوینو بدین صورته که ما کانکتور P2 رو به انتن وصل میکنیم و از کانکتور P1 برای تغذیه و اتصال به آردوینو استفاده میکنیم به صورت زیر :
PIN1 —-> TO RX Arduino
PIN2 رو گذاشتن واسه ارسال دیتا به ماژول اما من که چیزی پیدا نکردم تو دیتاشیت هم نگفته شما پیدا کردین یه ندا به ما هم بدین.
PIN3 بدونه اتصاله
PIN4 —-> TO GND
PIN5 —-> TO +5V
راستی چون LED به پین 13 وصله من دیگه وصل نکردم اما شما یه دونه سبز به پین 13 و یه دونه قرمز به پین 12 وصل کنین.
کد پروژه :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
int data1 = 0; int ok = -1; int yes = 13; int no = 12; int tag1[14] = {2, 56, 49, 48, 48, 49, 57, 65, 54, 53, 56, 54, 54, 3}; int tag2[14] = {2, 48, 56, 48, 48, 50, 68, 51, 51, 70, 54, 69, 48, 3}; int tag3[14] = {2, 51, 54, 48, 48, 50, 52, 54, 69, 70, 48, 56, 67, 3}; int tag4[14] = {2, 51, 54, 48, 48, 50, 52, 54, 69, 68, 66, 65, 55, 3}; int tag5[14] = {2, 51, 54, 48, 48, 50, 52, 54, 69, 69, 54, 57, 65, 3}; int newtag[14] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; void setup() { Serial.begin(9600); // start serial to PC pinMode(yes, OUTPUT); // for status LEDs pinMode(no, OUTPUT); } boolean comparetag(int aa[14], int bb[14]) { boolean ff = false; int fg = 0; for( int cc = 0 ; cc < 14 ; cc++ ) { if( aa[cc] == bb[cc] ) { fg++; } } if (fg == 14) ff = true; return ff; } void checkmytags() { // compares each tag against the tag just read ok = 0; // this variable helps decision-making, if (comparetag(newtag, tag1) == true) ok++; if (comparetag(newtag, tag2) == true) ok++; if (comparetag(newtag, tag3) == true) ok++; if (comparetag(newtag, tag4) == true) ok++; if (comparetag(newtag, tag5) == true) ok++; } void readTags() { ok = -1; if (ok > 0) ok = -1; if (Serial.available() > 0) { // read tag numbers delay(100); // needed to allow time for the data to come in from the serial buffer. for (int z = 0 ; z < 14 ; z++) { // read the rest of the tag data1 = Serial.read(); newtag[z] = data1; } Serial.flush(); // stops multiple reads checkmytags(); // do the tags match up? } // now do something based on tag type if (ok > 0) { // if we had a match digitalWrite(yes, HIGH); delay(1000); digitalWrite(yes, LOW); Serial.end(); Serial.begin(9600); ok = -1; } else if (ok == 0) { // if we didn't have a match digitalWrite(no, HIGH); delay(1000); digitalWrite(no, LOW); Serial.end(); Serial.begin(9600); ok = -1; } } void loop() { readTags(); } |
توضیح کدهای پروژه : در زیر کد های پروژه رو بر حسب شماره خط توضیح میدم :
خط 1 تا 10 : در قسمت بالا من 5 تا کارت تعریف کردم شما کد کارت های خودتونو تعریف کنین.
توجه : راستی برای اینکه کد کارتتون رو پیدا کنین میتونید از کد زیر استفاده کنید ( اتصالات هم مثل بالا هستش ) :
خط 14 : اگر این پین روشن شه یعنی کارت رو تایید کرده. ( led سیز )
خط 15 : اگر این پین روشن شه یعنی کارت رو تایید نکرده. ( led قرمز )
خط 33 : این تابع کارش اینه که دیتای دریافتی رو با دیتای که شما تو برنامه زدین مقایسه میکنه.
خط 34 : متغییر اصلی برنامه .
خط 36 : این شرط میگه اگر دیتای دریافتی با کارت شماره 1 برابر بود به متغییر اصلی یکی اضافه کن؛ در خطوط 37 تا 40 هم همین کارو برای کارت های دیگه انجام دادیم.
خط 43 : تابع خواندن کارت.
خط 46 : این ایف خیلی قضیه داره اونم اینطوری که این ماژول وقتی کارت رو توی محدوده ی آنتن دهیش قرار میدی به صورت مداوم دیتارو میفرسته تو سریال حالا اگر این ایف نباشه هی خروجی یک میشه و این تکرار میشه.
خط 48 : این تابع میگه اگر دیتا اومد تو سریال و بزرگ تر از صفر بود ( یعنی حداقل یه بایت دریافت شد )
خط 50 : این تاخیر واسه اینه که دیتا کلا به بافر سریال تحویل داده بشه.
خط 52 : این دستور میاد و قدم قدم دیتارو که 14 بایته میریزه تو متغییر.
خط 57 : اینم نمیزاره چند بار برنامه تگ رو بخونه.
خط 62 : اگر کارت رو برنامه بشناسه، کدهای داخل این if اجرا میشن ( و اون led سبز رنگ روشن میشه )
خط 66 : اینجا پروتکل سریال متوقف میشه.
خط 67 : اینجا هم دوباره شروع میشه اینو برای این زدم که دیتا هی تکرار نشه و یه بار دیتا مقایسه بشه با مقدار صحیح.
خط 70 : اگه کارت شناسایی نشد، کدهای داخل این شرط، اجرا میشن.
فیلم پروژه : http://www.aparat.com/v/mtLg9
خب آموزش های این بخش تموم شد شما هم یه کار بکنین یه صلوات و حمد و سوره برای شادی روح اولا امام راحل بعد شهدا و اموات بنده بفرستین خیلی ممنونم.
نظرررررر یادتون نره هااااا.
مهمان
سلام. من از سایت شما خیلی استفاده کردم و خیلی آموزشهای روان و کاملی رو دارید.
یه سوال داشتم، اینکه من میخوام این پروژه مستر کارت داشته باشه و بتونه تگ رو در ایپرام ذخیره کنه باید چکار کنم و شما چه کمکی میتونید به من بکنید.
خدا توفیقتون بده
مهمان
اگر این متن رو که گفتید اول Void Loop بنویسم . در سریال مانیتور نوشته میشه ولی وقتی اخر Void Loop بنویسم در سریال مانیتور نوشته نمیشه
مدیر سایت
خب ؟ ببین کجا سوتی دادی که این مشکل وجود داره. – حس میکنم کد نویسی c ییت ضعیفه –
مهمان
سلام
من این برنامه ی خواندن کارت rfid رو در اردوینو uno اپلود کردم ولی هر وقت کارت rfid رو نزدیکش میکنم اصلا هیچ اتفاقی نمی افته
تمام سیم ها رو درست وصل کردم وچراغ ماژول هم روشن میشه ولی هیچی در سریال مانیتور نشون نمی ده
نمی دونم دیگه چی کار کنم
مدیر سایت
سلام.اتصالاتو چک کن- یه پروژه ساده بنویس که یه متنی رو هر 1 ثانیه یکبار یه سریال بفرسته – دست به سخت افزار نزن
مهمان
این کار که گفتید یه متنی رو هر 1 ثانیه یکبار یه سریال بفرسته رو نوشتم ولی هیچی در سریال مانیتور نمی نویسه
مدیر سایت
خب پس مشکل از سمت خودته و نه پروژه این مطلب!
Buad Rate رو درست تنظیم کردی؟
مهمان
این سنسور کتاب خانه ندارد برای دانلود ؟؟؟ اخه من با سنسور rc522 کار کردم یه کتاب خانه داشت که داخل کتاب خانه برنامه ی خواندن ای دی کارت رو هم داشت
مهمان
اگر این متن رو که گفتید اول void loop بنویسم . در سریال مانیتور نوشته میشه ولی وقتی اخر void loop بنویسم در سریال مانیتور نوشته نمیشه
مهمان
کارت همیشه درسته
مهمان
سلام کد تگ هارا از کجا میشه فهمید اقای دمرچیلو؟
مدیر سایت
سلام
والا من با این ماژول کار نکردم ولی خب روی تگ باید نوشته باشه فک کنم – تو مطلب هم فک کنم دوستمون توضیح داده باشن که چطور میشه کد تگ ها رو خوند.
مهمان
سلام
شما از ماژول rfid که مستقل عمل کنه و کارت را روی خودش تعریف کنیم اطلاعی داریئ؟
تشکر
مدیر سایت
سلام
متوجه منظورتون نشدم.
مهمان
سلام
با تشکر از مطلب مفیدتون خاستم سوال کنم که این برد RFID RDM6300 میتونه کارت رو خود ماژول مستقل کد کرد؟یعنی با خود ماژول کارت را کد کنیم.
مدیر سایت
والا این بستگی به کارت داره بیشتر تا ماژول به نظرم.
مهمان
با سلام
اگه بخواهیم واسه این پروژه رله هم بذاریم باید چه کنیم ؟
مهمان
سلام کاری نداره با یه ترازیستور و یه رله مدار راه انداز رله رو بزارین و بیس رو با یه مقاومت ۱ کیلو به پین ۱۲ اردوینو وصل کنین همین.
مهمان
سلام خسته نباشید یه سوال داشتم چطور کد هارو تبدیل کردید ؟؟
کد روی تگ رو میگم ؟
مثلا معادل این کد چیه :۰۰۰۸۲۰۵۳۰۵
ممنون میشم راهنمایی کنید
مهمان
ماژول کارت خوان آر اف آی دی با قابلیت خواندن و نوشتن – RFID Reader & Writer RC522
به جای اون rfidاز این هم میشع استفادع کرد؟؟؟؟؟
مدیر سایت
نه
مهمان
جناب مهندسی که از سایت خارجی پروژه میزنی تو سایتت لاقل درست باشه مردم سرکاری نیستن
مدیر سایت
دادا – کل پروژه های سایت در عمل تست شده- فیلم های ته مطالب رو برا افرادی همچون شما میزارم! – در ضمن ما هم نوکر شما نیستم که مطلب مفت بزاریم و امثال شما طلب کارانه بیاید و …
نویسنده این مطلب
سلام دوست عزیز کمی با پروژه کارکنین انشا الله راه می افته فقط طبق اموزش جلو برین من فیلم مدار هم گذاشتم خدا شاهده شاید رفرنس اموزش از سایت های خارجی باشه اما خودم خیلی روش کار کردم تا اینجوری شده تقریبا یک روز کامل حالا من نمی خوام منت بزارم اما شما هم کمی مراعات کنین مشکلی داشتین بپرسین درخدمتم
مهمان
ممنون ازت امیر رضا اخه تو ویدیو اردینو مگا استفاده شده از اون لحاظ پرسیدم
مهمان
خواهش میکنم
مهمان
سلام ببخشید این پروژه قفل هوشمند با اردینو uno هم جواب میده
نویسنده این مطلب
سلام اره چرا جواب نده
مهمان
سلام ان شاء الله خدا خیرتون بده
من یه مشکل دارم همین برنامه رو نوشتم و با arduino pro micro انجام میدم
وقتی به کامپیوتر وصله و تازه دانلود شده و سریال مانیتور میکنم عین ساعن کار می کنه اما
وقتی نرم افزار رو می بندم دیگه اشتباه می کنه و فقط برای همه تگ ها قرمز رو روشن میکنه
بعدش هم که دوباره سریال مانیتور میکنم هنوز خطا داره و یه کد ۴۰, ۱۴۱, ۴۰, ۱۴۱, ….. نمایش میده دوباره که برنامه رو اپلود میکنم تا زمانی که به کامپیوتر وصله عین ساعت کار میکنه
با باتری هم همین مشکل رو دارم
ممنون
نویسنده این مطلب
سلام اگر میتونین یه بار هم با سریال نرم افزاری این کار رو انجام بدین به عنوان مثال پین ۲ و ۳ رو سریال کنین و از سریال سخت افزاری اردوینو واسه فقط پروگ کردنش استفاده کنید ببنیند جواب میده یا نه ؟؟
مهمان
سلام مهندس عالی بود دستت طلا
ولی سوال میشه کارتای که تعریف میکنیم با یک کلید کارت های خودمون و به دستگاه تعریف کنیم یا حذفش کنیم؟
؟؟؟؟
نویسنده این مطلب
سلام اون میشه ورزن بعدی که دارم روش کار میکنم تو این ورژن میتونین کارت هارو هم ذخیره کنی هم حذف کنی اما الان زیاد کار دارم انشا الله درستش میکنیم
مهمان
راستی این یادم رفت بنویسم
به نظرت این ماژول با ماژول ماژول EM-19 RFID Reader
,
ماژول RFID ریدر RF01D Memory
چه فرقی داره ؟
نویسنده این مطلب
این ماژول فقط امکان خواندن تگ رو داره اما اونایی که شما گفتین خیلی کامل تر هستند هم خروجی رله دارن هم حافظه هم انتن داخلی دارن من اینو چون ارزون بود اموزش دادم اقا مهدی تو همین سایت اموزش rf01d رو داده میتونین استفاده کنین موفق باشید.

مهمان
سلام مهندس خسته نباشی مطلب خوبی بود
این ماژول کارت های رایج بازار را ساپورت میکنه ؟
Supported card: in / TK4100 in / tk4102, EM4200 or compatible
نویسنده این مطلب
سلام کارت های ۱۲۵ کیلو هرتز همچنین دستبند و سکه و جاسوییچیش رو هم دیدم تو فروشگاه ها
مهمان
درسته ولی من امتحان کردم از پشت یک جسم هم جواب میده
اصلن شما بزار داخل جعبه قشنگ جواب میده
قدرتش خوبه
نویسنده این مطلب
دمش گرم اما من از این خوشم اومده نمیتونی نظرمو عوض کنی خخخ
مهمان
این ماژول خیلی چیز خوب و ارزونیه ولی یه مشکلی که داره اینه که از همون اول unique id تگ رو نمیده، انگار یه عملیاتی داره تا کد واقعی به دست بیاد. الان توی کد شما خروجیش کد واقعیشه؟
نویسنده این مطلب
سلام ببینین برنامه ی اولی که گذاشتم و کد کارت ها رو تو سریال نمایش میده این کد ها به صورت دسیمال هستند (تو سریال پرینت گفتیم پرینت DEC) و کد واقعی کارت رو نمایش نمیده در اصل تا جایی که من تو سایت ها ی خارجی خوندم خروجی اصلی هگز هستش فقط کارتون رو یه کم سخت تر میکنه یه بار باید کد رو بخونی بعد تو برنامه بنویسیش
این لینکو نگاه کن
https://dmf313.ir/wp-content/uploads/RFID_data.png
مهمان
آنتن RC522 رو خود مدارچاپی ماژول هست
اگر سرچ کنی عکس هاش هست
یوزرمنوآل هم داره که میتونی دانلود کنی و امکاناتشه ببینی
مهمان
منم گفتم دیگه انتنش رو خودشه به صورت pcb

مهمان
خسته نباشی
بدک نیست
به نظر من از ماژول RC522 استفاده کن چون جمع و جور تره
دیگه اون سیم مغناطیسی هم نداره و با چند پروتکل ارتباطی کا میکنه
حدود ۱۵ تا ۱۶ تومنه
مدیر سایت
خب اون سیمه فک کنم آنتنشه دیگه.
مهمان
سلام دوست عزیز این قیمتش ۱۳ تومنه بعد از اون هم این کاربردش در بازکنه و برای اینکه امنیت بره بالا و مدار رو کلش رو بیرون نزاری چون اونو که شما گفتین انتنش به صورت PCB هستش و باید کلا مدار بیرون باشه اما ماژولی که من گفتم فقط انتنش میره بیرون اگرم بخاد کسی اسیبی بزنه انتنه ۲ تومن بیشتر نیست و این امنیت رو بالا میبره گزینه ی بعدی اینه که اگر بخاییم از مدار شما استفاده کنیم و جلو در باشه کسی که وارد باشه میتونی درو باز کنه به همین راحتی.