جدول المحتويات:

تطبيق سوبر ماركت بسيط باستخدام RFID RC-522 و Arduino Mega: 6 خطوات
تطبيق سوبر ماركت بسيط باستخدام RFID RC-522 و Arduino Mega: 6 خطوات

فيديو: تطبيق سوبر ماركت بسيط باستخدام RFID RC-522 و Arduino Mega: 6 خطوات

فيديو: تطبيق سوبر ماركت بسيط باستخدام RFID RC-522 و Arduino Mega: 6 خطوات
فيديو: شرح برنامج السوبر ماركت برنامج BellaSystem 2024, يوليو
Anonim
تطبيق سوبر ماركت بسيط باستخدام RFID RC-522 و Arduino Mega
تطبيق سوبر ماركت بسيط باستخدام RFID RC-522 و Arduino Mega

من الجيد رؤيتكم مرة أخرى هنا في تعليمي الآخر ، هنا سأساعدك في إنشاء تطبيق سوبر ماركت بسيط باستخدام RFID RC-522 و Arduino مع المعالجة لإنشاء واجهة مستخدم رسومية بسيطة.

ملاحظة: لا تقم بتشغيل شاشة Arduino التسلسلية أثناء تشغيل رمز المعالجة لأن تعارض المنفذ سيحدث حيث يتعين على كليهما استخدام نفس المنفذ

انت تحتاج:

  1. Arduino Mega أو Arduino Uno (كنت أستخدم Mega)
  2. RFID-RC522
  3. 7 أسلاك توصيل من الذكور إلى الإناث
  4. بعض بطاقات الهوية (اختياري)
  5. مكتبة RFID (يجب ، الرابط أدناه)
  6. خادم Wamp
  7. IDE 2.2.1 المعالجة (لا تستخدم أكثر من ذلك)
  8. مكتبة BezierSQLib-0.2.0 للمعالجة (رابط التنزيل أدناه)

ثم قم بتنزيل مكتبة RFID أدناه وأضفها إلى Arduino IDE الخاص بك عن طريق النقر فوق Sketch-> Include Library-> Add. Zip Library في قائمة الملفات

الخطوة 1: إعداد Arduino و RFID RC-522 (الاتصال المادي)

إعداد Arduino و RFID RC-522 (الاتصال المادي)
إعداد Arduino و RFID RC-522 (الاتصال المادي)

ما عليك سوى توصيل اردوينو بـ RFID-RC522 كما هو موضح في الصورة أعلاه تحذير: قم بتزويد 3.3 فولت فقط وإلا ستحترق الوحدة

Pin Out لـ Uno / Nano و Mega

RC522 MODULE Uno / Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ غير متوفر غير متوفر GND GND RST D9 D8 3.3 فولت 3.3 فولت 3.3 فولت

الخطوة 2: كود اردوينو.،

انسخ الكود أدناه ثم قم بتحميله على Arduino الخاص بك

/ * PINOUT: RC522 MODULE Uno / Nano MEGA SDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N / AN / A GND GND RST D9 D8 3.3V 3.3V 3.3V * / / * تضمين مكتبة Arduino SPI القياسية * / #include / * تضمين مكتبة RFID * / #include

/ * حدد DIO المستخدم لدبابيس SDA (SS) و RST (إعادة التعيين). * /

#define SDA_DIO 9 # تعريف RESET_DIO 8

/ * إنشاء مثيل لمكتبة RFID * /

RFID RC522 (SDA_DIO ، RESET_DIO) ؛ القارئ int = 0 ؛

الإعداد باطل()

{Serial.begin (9600) ، / * تمكين واجهة SPI * / SPI.begin () ؛ / * تهيئة قارئ RFID * / RC522.init () ؛ }

حلقة فارغة()

{/ * عداد الحلقة المؤقتة * / بايت i ؛

/ * هل تم الكشف عن بطاقة؟ * /

if (RC522.isCard ()) {/ * إذا كان الأمر كذلك ، فاحصل على الرقم التسلسلي * / RC522.readCardSerial () ؛

/ * إخراج الرقم التسلسلي إلى UART * / لـ (i = 0 ؛ i <= 2 ؛ i ++) {Serial.print (RC522.serNum ، DEC) ؛ //Serial.print(RC522.serNum ، HEX) ؛ } Serial.print ("،")؛ Serial.print (قارئ ++) ؛ Serial.println () ، } تأخير (1000)؛ }

الخطوة الثالثة: إعداد MySQL

إعداد MySQL
إعداد MySQL
  1. قم بتثبيت خادم Wamp لـ MySQL وتهيئته لتخزين البيانات (
  2. قم بتشغيل وحدة تحكم MySQL للخادم wamp
  3. حدد قاعدة البيانات
  4. ثم قم بإنشاء جدول لبياناتك

إنشاء جدول rfid (ID int (8) ، token int (1) ، Name varchar (20) ، Amount int (4)) ؛

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

إدراج في قيم rfid (3756178 ، 1 ، "Pencil" ، 20) ؛

استخدم قيمة الرمز المميز كـ 1 بحيث بعد قراءة قيمة العلامة لأول مرة ستتغير تلقائيًا إلى 2 ، لا تستخدم 0 لقيمة الرمز المميز عند قراءة البطاقة التي لم يتم إدراجها في قاعدة البيانات ، فستقوم بتعيين 0 ثم عرضها كبطاقة غير معروفة..

الخطوة 4: إعداد معالجة IDE

إعداد معالجة IDE
إعداد معالجة IDE
  1. قم بتنزيل وتثبيت معالجة IDE 2.2.1
  2. قم باستخراج ملف ZIP الوارد أعلاه إلى MyDocuments / Processing / Libraries
  3. افتح الآن IDE للمعالجة وتحقق من تثبيت المكتبة بشكل صحيح أم لا كما في الصورة أعلاه
  4. ثم انسخ الكود أدناه للمعالجة وقم بتسميته بنفسك

استيراد de.bezier.data.sql. * ؛ معالجة الاستيراد. تسلسل. * ؛ // استيراد java.math. BigInteger ؛

// تم إنشاؤه 2005-05-10 بواسطة fjenett

// محدث fjenett 20080605

MySQL dbconnection ؛

سلسلة s = "" ؛ int Wheight = 700 ؛ int Wwidth = 1200 ؛ معرف طويل رمز int المبلغ إجمالي عدد صحيح = 0 ؛

String a = {"NULL"، "NULL"} ؛

نهاية int = 10 ؛ // الرقم 10 هو ASCII لتغذية الأسطر (نهاية serial.println) ، سنبحث لاحقًا عن هذا لتفكيك الرسائل الفردية String serial ؛ // أعلن عن سلسلة جديدة تسمى 'serial'. السلسلة عبارة عن سلسلة من الأحرف (نوع البيانات يعرف باسم "char") المنفذ التسلسلي ؛ سلسلة الحالية ، السابقة ، الاسم ؛ PFont و ؛

الإعداد باطل()

{// الحجم (العرض ، الوزن) ؛ الحجم (700 ، 500) ؛ f = createFont ("Arial"، 24، true) ؛ // يفترض هذا المثال أنك تقوم بتشغيل // mysql server محليًا (على "localhost"). // // استبدل - اسم المستخدم - ، - كلمة المرور - بحساب mysql الخاص بك. // String user = "root" ؛ تمرير السلسلة = "" ؛ // اسم قاعدة البيانات لاستخدام // String database = "IOT_Database" ؛ // اسم الجدول الذي سيتم إنشاؤه String table = ""؛ // الاتصال بقاعدة بيانات الخادم "المضيف المحلي" dbconnection = MySQL جديد (هذا ، "المضيف المحلي" ، قاعدة البيانات ، المستخدم ، تمرير) ؛ المنفذ = مسلسل جديد (this، Serial.list () [0]، 9600)؛ // تهيئة الكائن عن طريق تعيين منفذ ومعدل باود (يجب أن يتطابق مع منفذ Arduino) port.clear () ؛ // وظيفة من مكتبة تسلسلية تطرح القراءة الأولى ، في حال بدأنا القراءة في منتصف سلسلة من Arduino serial = port.readStringUntil (end) ؛ // دالة تقرأ السلسلة من المنفذ التسلسلي حتى println ثم تعين سلسلة إلى متغير السلسلة (يسمى 'serial') serial = null ؛ } رسم باطل () {خلفية (255)؛ textFont (ص ، 24) ؛ ملء (0) ؛ نص ("المبلغ الإجمالي روبية:" ، 400 ، 400) ؛ نص (المجموع ، 585 ، 400) ؛ البيانات()؛ while (port.available ()> 0) {// طالما أن هناك بيانات قادمة من المنفذ التسلسلي ، اقرأها واحفظها بشكل تسلسلي = port.readStringUntil (end) ؛ } if (serial! = null) {prev = current؛ تيار = [1] ؛ أ = انقسام (مسلسل ، '،') ؛ // مصفوفة جديدة (تسمى 'a') تخزن القيم في خلايا منفصلة (مفصولة بفواصل محددة في برنامج Arduino الخاص بك) إذا ((current).equals (prev)) {//} else {// println ("cur "، تيار) ؛ // println ("السابق" ، السابق) ؛ وظيفة()؛ }}}

دالة باطلة ()

{if (dbconnection.connect ()) {// الآن اقرأها مرة أخرى // dbconnection.query ("SELECT * from rfid حيث ID =" + a [0] + "") ؛ while (dbconnection.next ()) {ID = dbconnection.getInt ("ID") ؛ الرمز المميز = dbconnection.getInt ("الرمز المميز") ؛ Amount = dbconnection.getInt ("المبلغ") ؛ } if (token == 0) {println ("Ok")؛ textFont (ص ، 54) ؛ ملء (255 ، 0 ، 0 ، 160) ؛ نص ("تم اكتشاف عنصر غير معروف" ، 50 ، 300) ؛ تأخير (2000) ؛ } else if (الرمز المميز == 1) {الإجمالي = الإجمالي + المبلغ ؛ dbconnection.query ("تحديث rfid set token = 2 حيث المعرف =" + a [0] + "") ؛ println ("موافق") ؛ textFont (ص ، 24) ؛ ملء (255 ، 0 ، 0 ، 160) ؛ // نص ("عنصر مضاف" ، 10 ، 30) ؛ تأخير (1000) ؛ } else if (الرمز المميز == 2) {Total = Total-Amount؛ dbconnection.query ("تحديث rfid set token = 1 حيث ID =" + a [0] + "") ؛ println ("موافق") ؛ textFont (ص ، 24) ؛ ملء (255 ، 0 ، 0 ، 160) ؛ // text ("تمت إزالة العنصر" ، 10 ، 30) ؛ تأخير (1000) ؛ } else {} dbconnection.close () ؛ } آخر {// فشل الاتصال! }}

بيانات باطلة ()

{موضع int = 100 ؛ if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2") ؛ while (dbconnection.next ()) {Name = dbconnection.getString ("الاسم") ؛ Amount = dbconnection.getInt ("المبلغ") ؛ textFont (ص ، 24) ؛ ملء (0 ، 0 ، 255 ، 160) ؛ نص (الاسم ، 10 ، المنصب) ؛ ملء (0 ، 0 ، 0 ، 160) ؛ نص (المبلغ ، 215 ، الموضع) ؛ الموقف = الموقف + 30 ؛ }} dbconnection.close () ؛ }

الخطوة الخامسة: تنفيذ البرنامج

تنفيذ البرنامج
تنفيذ البرنامج
تنفيذ البرنامج
تنفيذ البرنامج
تنفيذ البرنامج
تنفيذ البرنامج
تنفيذ البرنامج
تنفيذ البرنامج

قم بتشغيل البرنامج بالنقر فوق زر التشغيل ، لا تغلق النافذة المنبثقة ، سيؤدي إغلاق النافذة المنبثقة إلى إيقاف التنفيذ والاستعلام أدناه لعرض البيانات المخزنة في MySQL …

الخطوة السادسة: الخاتمة

أود أن أشكرك على قراءة البرنامج التعليمي الخاص بي. سأكون ممتنًا إذا وجدت ذلك مفيدًا وأسقطت إعجابًا (مفضلًا) أو سألتني عن أي شيء لأنه يجعلني متحمسًا للقيام بهذه التعليمات. لا تتردد في طرح أي أسئلة تحتاج إلى معرفتها …

اردوينو ترميز سعيد …

موصى به: