فهرست مطالب:

برنامه سوپر مارکت ساده با استفاده از RFID RC-522 و Arduino Mega: 6 مرحله
برنامه سوپر مارکت ساده با استفاده از RFID RC-522 و Arduino Mega: 6 مرحله

تصویری: برنامه سوپر مارکت ساده با استفاده از RFID RC-522 و Arduino Mega: 6 مرحله

تصویری: برنامه سوپر مارکت ساده با استفاده از RFID RC-522 و Arduino Mega: 6 مرحله
تصویری: آموزش کار با نرم افزار حسابداری فروشگاهی فانوس - قسمت اول 2024, جولای
Anonim
برنامه سوپر مارکت ساده با استفاده از RFID RC-522 و Arduino Mega
برنامه سوپر مارکت ساده با استفاده از RFID RC-522 و Arduino Mega

خوشحالم که شما را در اینجا در آموزش دیگر من می بینم ، در اینجا من به شما کمک می کنم تا یک برنامه ساده سوپر مارکت با استفاده از RFID RC-522 و Arduino با پردازش ایجاد کنید تا GUI ساده ایجاد کنید.

توجه: هنگام اجرای کد پردازش ، مانیتور سریال Arduino را اجرا نکنید زیرا درگیری پورت رخ می دهد زیرا هر دو باید از یک پورت استفاده کنند

تو نیاز داری:

  1. Arduino Mega یا Arduino Uno (من از مگا استفاده کردم)
  2. RFID-RC522
  3. 7 سیم بلوز نر به ماده
  4. برخی از کارت های شناسایی (اختیاری)
  5. کتابخانه RFID (باید ، لینک زیر)
  6. سرور Wamp
  7. پردازش IDE 2.2.1 (بیشتر از آن استفاده نکنید)
  8. کتابخانه BezierSQLib-0.2.0 برای پردازش (لینک دانلود در زیر)

سپس کتابخانه RFID زیر را بارگیری کرده و با کلیک روی Sketch-> Include Library-> Add. Zip Library در منوی فایل ، آن را به Arduino IDE خود اضافه کنید.

مرحله 1: راه اندازی Arduino و RFID RC-522 (اتصال فیزیکی)

راه اندازی Arduino و RFID RC-522 (اتصال فیزیکی)
راه اندازی Arduino و RFID RC-522 (اتصال فیزیکی)

همانطور که در تصویر بالا نشان داده شده است ، به سادگی آردوینو را با RFID-RC522 وصل کنید.

برای Uno/Nano و Mega پین کنید

RC522 MODULE Uno/Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ N/A N/A GND GND GND RST D9 D8 3.3V 3.3V 3.3V

مرحله 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 GND RST D9 D8 3.3V 3.3V 3.3V*//*شامل کتابخانه استاندارد Arduino SPI */ #include/ *شامل کتابخانه RFID */ #include

/* DIO مورد استفاده برای پین های SDA (SS) و RST (بازنشانی) را تعریف کنید. */

#تعریف SDA_DIO 9 #تعریف RESET_DIO 8

/ * ایجاد نمونه ای از کتابخانه RFID */

RFID RC522 (SDA_DIO ، RESET_DIO) ؛ int reader = 0؛

void setup ()

{Serial.begin (9600) ؛ / * رابط SPI را فعال کنید */ SPI.begin ()؛ / * مقداردهی اولیه RFID reader */ RC522.init ()؛ }

حلقه خالی ()

{ / * شمارنده حلقه موقت * / byte 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) ؛ }

مرحله 3: راه اندازی MySQL

راه اندازی MySQL
راه اندازی MySQL
  1. سرور Wamp را برای MySQL نصب کرده و برای ذخیره داده ها پیکربندی کنید (
  2. کنسول wamp serveropen MySQL را اجرا کنید
  3. پایگاه داده را انتخاب کنید
  4. سپس جدول داده های خود را ایجاد کنید

ایجاد جدول rfid (ID int (8) ، token int (1) ، نام varchar (20) ، مقدار int (4)) ؛

اکنون این پیوند را مشاهده کنید تا یاد بگیرید چگونه مقدار برچسب RFID خود را بدست آورید و سپس از کد زیر برای درج داده استفاده کنید. فراموش نکنید که مقدار ID را با برچسب RFID خود جایگزین کنید

وارد کردن در مقادیر rfid (3756178 ، 1 ، "مداد" ، 20) ؛

از مقدار توکن به عنوان 1 استفاده کنید تا پس از خواندن مقدار برچسب برای اولین بار به طور خودکار به 2 تغییر کند ، هنگام خواندن کارت که در DB وارد نشده است از 0 برای مقدار توکن استفاده نکنید ، 0 را اختصاص می دهد و سپس آن را به عنوان کارت ناشناس نشان می دهد. به

مرحله 4: تنظیم پردازش IDE

راه اندازی پردازش IDE
راه اندازی پردازش IDE
  1. پردازنده IDE 2.2.1 را بارگیری و نصب کنید
  2. ZIP بالا را به MyDocuments/Processing/Libraries استخراج کنید
  3. اکنون IDE پردازش را باز کرده و بررسی کنید که کتابخانه به درستی نصب شده است یا نه مانند تصویر بالا
  4. سپس کد زیر را برای پردازش کپی کرده و نام خود را بگذارید

import de.bezier.data.sql.*؛ import processing.serial.*؛ // java.math. BigInteger؛

// ایجاد شده توسط 2005-05-10 توسط fjenett

// fjenett به روز شده 20080605

اتصال MySQL dbconnection ؛

رشته s = ""؛ int وزن = 700 ؛ int عرض = 1200 ؛ شناسه طولانی ؛ توکن int ؛ int مبلغ؛ int مجموع = 0؛

رشته a = {"NULL"، "NULL"}؛

انتهای انتهایی = 10 ؛ // شماره 10 ASCII برای linefeed (انتهای serial.println) است ، بعداً به دنبال این خواهیم بود تا پیامهای فردی را جدا کنیم سریال رشته ؛ // اعلام یک رشته جدید به نام 'سریال'. یک رشته دنباله ای از کاراکترها (نوع داده معروف به "char") پورت سریال است. رشته رشته ، قبلی ، نام ؛ PFont f؛

void setup ()

{// اندازه (عرض ، وزن) ؛ اندازه (700 ، 500) ؛ f = createFont ("Arial" ، 24 ، درست) ؛ // این مثال فرض می کند که شما // mysql server را به صورت محلی (در "localhost") اجرا می کنید. // // --username-- ، --password-- را با mysql-account خود جایگزین کنید. // کاربر رشته = "root"؛ String pass = ""؛ // نام پایگاه داده برای استفاده // پایگاه داده رشته = "IOT_Database"؛ // نام جدولی که ایجاد خواهد شد String table = ""؛ // اتصال به پایگاه داده سرور "localhost" dbconnection = MySQL جدید (این ، "localhost" ، پایگاه داده ، کاربر ، گذر)؛ port = جدید سریال (این ، Serial.list () [0] ، 9600) ؛ // مقداردهی اولیه شی با اختصاص پورت و نرخ baud (باید با پورت Arduino مطابقت داشته باشد) port.clear ()؛ // تابع از کتابخانه سریال که اولین خواندن را بیرون می اندازد ، در صورتی که خواندن را در وسط یک رشته از Arduino serial = port.readStringUntil (پایان) شروع کرده باشیم. // تابع که رشته را از پورت سریال تا println می خواند و سپس رشته را به متغیر رشته ما اختصاص می دهد (به نام 'سریال') serial = null؛ } void draw () {background (255)؛ textFont (f، 24)؛ پر کردن (0) ؛ متن ("مجموع مبلغ Rs:" ، 400 ، 400) ؛ متن (مجموع ، 585 ، 400) ؛ داده ها()؛ while (port.available ()> 0) {// تا زمانی که داده هایی از پورت سریال وجود دارد ، آن را بخوانید و آن را سریال = port.readStringUntil (پایان) ذخیره کنید ؛ } if (serial! = null) {prev = curr؛ curr = a [1]؛ a = تقسیم (سریال ، '،') ؛ // یک آرایه جدید (به نام 'a') که مقادیر را در سلولهای جداگانه ذخیره می کند (با کاما مشخص شده در برنامه Arduino شما جدا شده است) اگر ((curr). برابر است (قبلی)) {//} else {// println ("curr "، curr)؛ // println ("قبلی" ، قبلی) ؛ عملکرد()؛ }}}

تابع خالی ()

{if (dbconnection.connect ()) {// اکنون آن را دوباره بخوانید // dbconnection.query ("SELECT * from rfid where ID ="+a [0]+"")؛ while (dbconnection.next ()) {ID = dbconnection.getInt ("ID")؛ token = dbconnection.getInt ("token")؛ مقدار = dbconnection.getInt ("مبلغ") ؛ } if (token == 0) {println ("Ok")؛ textFont (f، 54)؛ پر کنید (255 ، 0 ، 0 ، 160) ؛ متن ("مورد ناشناخته شناسایی شد" ، 50 ، 300) ؛ تاخیر (2000) ؛ } else if (توکن == 1) {مجموع = مجموع+مبلغ ؛ dbconnection.query ("update rfid set token = 2 where ID ="+a [0]+"")؛ println ("خوب") ؛ textFont (f، 24)؛ پر کنید (255 ، 0 ، 0 ، 160) ؛ // متن ("مورد اضافه شد" ، 10 ، 30) ؛ تاخیر (1000) ؛ } else if (token == 2) {Total = Total-Amount؛ dbconnection.query ("update rfid set token = 1 where ID ="+a [0]+"")؛ println ("خوب") ؛ textFont (f، 24)؛ پر کنید (255 ، 0 ، 0 ، 160) ؛ // متن ("مورد حذف شد" ، 10 ، 30) ؛ تاخیر (1000) ؛ } else {} dbconnection.close ()؛ } else {// اتصال انجام نشد! }}

اطلاعات خالی ()

{int position = 100؛ if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2")؛ while (dbconnection.next ()) {Name = dbconnection.getString ("نام")؛ مقدار = dbconnection.getInt ("مبلغ") ؛ textFont (f، 24)؛ پر (0 ، 0 ، 255 ، 160) ؛ متن (نام ، 10 ، موقعیت) ؛ پر (0 ، 0 ، 0 ، 160) ؛ متن (مقدار ، 215 ، موقعیت) ؛ موقعیت = موقعیت+30 ؛ }} dbconnection.close ()؛ }

مرحله 5: اجرای برنامه

اجرای برنامه
اجرای برنامه
اجرای برنامه
اجرای برنامه
اجرای برنامه
اجرای برنامه
اجرای برنامه
اجرای برنامه

برنامه را با کلیک روی دکمه اجرا ببندید پنجره بازشو بسته نشود بسته شدن عملکرد را متوقف می کند و در زیر پرس و جو برای مشاهده داده های ذخیره شده در MySQL…

مرحله 6: نتیجه گیری

من می خواهم از شما برای خواندن آموزش من تشکر کنم. اگر مفید باشید و لایک (مورد علاقه) خود را بگذارید یا چیزی از من بخواهید ممنون می شوم زیرا انگیزه من را برای انجام این دستورالعمل ها بیشتر می کند. با خیال راحت هر سوالی را که باید بدانید بپرسید…

برنامه نویسی مبارک آردوینو…

توصیه شده: