সুচিপত্র:

RFID RC-522 এবং Arduino Mega: 6 ধাপ ব্যবহার করে সহজ সুপার মার্কেট অ্যাপ
RFID RC-522 এবং Arduino Mega: 6 ধাপ ব্যবহার করে সহজ সুপার মার্কেট অ্যাপ

ভিডিও: RFID RC-522 এবং Arduino Mega: 6 ধাপ ব্যবহার করে সহজ সুপার মার্কেট অ্যাপ

ভিডিও: RFID RC-522 এবং Arduino Mega: 6 ধাপ ব্যবহার করে সহজ সুপার মার্কেট অ্যাপ
ভিডিও: How to use RFID with Arduino | How to use the RC522 RFID module with an Arduino - Tutorial 2024, নভেম্বর
Anonim
RFID RC-522 এবং Arduino Mega ব্যবহার করে সহজ সুপার মার্কেট অ্যাপ
RFID RC-522 এবং Arduino Mega ব্যবহার করে সহজ সুপার মার্কেট অ্যাপ

আমার আরেকটি টিউটোরিয়ালে আপনাকে আবার এখানে দেখে ভাল লাগল, এখানে আমি আপনাকে সহজ GUI তৈরির জন্য RFID RC-522 এবং Arduino ব্যবহার করে একটি সহজ সুপার মার্কেট অ্যাপ্লিকেশন তৈরি করতে সাহায্য করতে যাচ্ছি।

দ্রষ্টব্য: প্রসেসিং কোড চালানোর সময় Arduino সিরিয়াল মনিটর চালাবেন না কারণ পোর্ট দ্বন্দ্ব ঘটবে কারণ উভয়কে একই পোর্ট ব্যবহার করতে হবে

তোমার দরকার:

  1. Arduino মেগা বা Arduino Uno (আমি মেগা ব্যবহার করেছি)
  2. RFID-RC522
  3. 7 পুরুষ থেকে মহিলা জাম্পার তার
  4. কিছু আইডি কার্ড (alচ্ছিক)
  5. আরএফআইডি লাইব্রেরি (অবশ্যই, নীচের লিঙ্ক)
  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 এর সাথে সংযুক্ত করুন।

Uno/Nano এবং Mega এর জন্য পিন আউট করুন

RC522 মডিউল 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 কোড।

নীচের কোডটি অনুলিপি করুন তারপর এটি আপনার 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 লাইব্রেরি অন্তর্ভুক্ত করুন */ #অন্তর্ভুক্ত/ *RFID লাইব্রেরি অন্তর্ভুক্ত করুন */ #অন্তর্ভুক্ত করুন

/* SDA (SS) এবং RST (রিসেট) পিনের জন্য ব্যবহৃত DIO সংজ্ঞায়িত করুন। */

#SDA_DIO 9 নির্ধারণ করুন #RESET_DIO 8 নির্ধারণ করুন

/ * RFID লাইব্রেরির একটি উদাহরণ তৈরি করুন */

RFID RC522 (SDA_DIO, RESET_DIO); int পাঠক = 0;

অকার্যকর সেটআপ()

{Serial.begin (9600); / * SPI ইন্টারফেস সক্ষম করুন */ SPI.begin (); / * আরএফআইডি রিডার শুরু করুন */ RC522.init (); }

অকার্যকর লুপ ()

{ / * অস্থায়ী লুপ কাউন্টার * / বাইট i;

/* একটি কার্ড সনাক্ত করা হয়েছে? */

যদি (RC522.isCard ()) { / * যদি তাই হয় তাহলে তার ক্রমিক নম্বর পান * / RC522.readCardSerial ();

/ * (I = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); // সিরিয়াল.প্রিন্ট (RC522.serNum , হেক্স); } সিরিয়াল.প্রিন্ট (","); সিরিয়াল.প্রিন্ট (পাঠক ++); Serial.println (); } বিলম্ব (1000); }

ধাপ 3: মাইএসকিউএল সেট আপ করা

মাইএসকিউএল সেট আপ করা হচ্ছে
মাইএসকিউএল সেট আপ করা হচ্ছে
  1. মাইএসকিউএল এর জন্য ওয়্যাম্প সার্ভার ইনস্টল করুন এবং ডেটা সংরক্ষণের জন্য এটি কনফিগার করুন (
  2. Wamp serveropen MySQL কনসোল চালান
  3. ডাটাবেস নির্বাচন করুন
  4. তারপর আপনার ডেটার জন্য টেবিল তৈরি করুন

টেবিল rfid তৈরি করুন (ID int (8), টোকেন int (1), নাম varchar (20), পরিমান int (4));

এখন আপনার RFID ট্যাগ ভ্যালু কিভাবে পাবেন তা জানতে এই লিঙ্কটি দেখুন তারপর ডাটা toোকানোর জন্য নিচের কোডটি ব্যবহার করুন।

rfid মান সন্নিবেশ করান (3756178, 1, 'পেন্সিল', 20);

1 হিসাবে টোকেন ভ্যালু ব্যবহার করুন যাতে প্রথমবার ট্যাগ ভ্যালু পড়ার পর এটি স্বয়ংক্রিয়ভাবে 2 তে পরিবর্তিত হয়, টোকেন ভ্যালুর জন্য 0 ব্যবহার করবেন না যখন DB- এ cardোকানো কার্ড পড়ার সময় এটি 0 বরাদ্দ করবে তারপর এটি অজানা কার্ড হিসেবে দেখাবে। ।

ধাপ 4: প্রসেসিং আইডিই সেট আপ করা

প্রসেসিং আইডিই সেট আপ করা হচ্ছে
প্রসেসিং আইডিই সেট আপ করা হচ্ছে
  1. প্রসেসিং IDE 2.2.1 ডাউনলোড এবং ইনস্টল করুন
  2. মাইডকুমেন্টস/প্রসেসিং/লাইব্রেরিতে উপরের জিপটি এক্সট্রাক্ট করুন
  3. এখন প্রসেসিং আইডিই খুলুন এবং লাইব্রেরিটি সঠিকভাবে ইনস্টল করা আছে কিনা দেখুন উপরের ছবির মতো নয়
  4. তারপর প্রক্রিয়াকরণের জন্য নীচের কোডটি অনুলিপি করুন এবং আপনার নিজের নাম দিন

আমদানি de.bezier.data.sql।*; আমদানি প্রক্রিয়াকরণ। সিরিয়াল। // আমদানি java.math. BigInteger;

// fjenett দ্বারা 2005-05-10 তৈরি করা হয়েছে

// আপডেট করা fjenett 20080605

মাইএসকিউএল ডিবি সংযোগ;

স্ট্রিং s = ""; int Wheight = 700; int Wwidth = 1200; দীর্ঘ আইডি; int টোকেন; int পরিমাণ; int মোট = 0;

স্ট্রিং a = {"NULL", "NULL"};

int শেষ = 10; // লাইনফিডের জন্য 10 নম্বরটি ASCII (সিরিয়াল.প্রিন্টলনের শেষ), পরে আমরা পৃথক বার্তা স্ট্রিং সিরিয়াল ভাঙ্গার জন্য এটির সন্ধান করব; // 'সিরিয়াল' নামে একটি নতুন স্ট্রিং ঘোষণা করুন। একটি স্ট্রিং হল অক্ষরের একটি ক্রম (ডেটা টাইপ "চর" নামে পরিচিত) সিরিয়াল পোর্ট; স্ট্রিং কার, প্রি, নাম; PFont f;

অকার্যকর সেটআপ()

{// আকার (Wwidth, Wheight); আকার (700, 500); f = createFont ("Arial", 24, true); // এই উদাহরণটি ধরে নিয়েছে যে আপনি স্থানীয়ভাবে // মাইএসকিউএল সার্ভারটি চালাচ্ছেন ("লোকালহোস্টে")। // // প্রতিস্থাপন-ব্যবহারকারীর নাম-,-পাসওয়ার্ড-আপনার মাইএসকিউএল-অ্যাকাউন্ট দিয়ে। // স্ট্রিং ব্যবহারকারী = "রুট"; স্ট্রিং পাস = ""; // ডাটাবেসের নাম ব্যবহার করতে // স্ট্রিং ডাটাবেস = "IOT_Database"; // টেবিলের নাম যা তৈরি করা হবে স্ট্রিং টেবিল = ""; // সার্ভার "লোকালহোস্ট" dbconnection = নতুন মাইএসকিউএল (এটি, "লোকালহোস্ট", ডাটাবেস, ব্যবহারকারী, পাস) এর ডাটাবেসের সাথে সংযুক্ত করুন; পোর্ট = নতুন সিরিয়াল (এই, Serial.list () [0], 9600); // একটি পোর্ট এবং বড রেট বরাদ্দ করে বস্তুর সূচনা (অবশ্যই Arduino এর সাথে মেলে) port.clear (); // সিরিয়াল লাইব্রেরি থেকে ফাংশন যা প্রথম পড়াটি ফেলে দেয়, যদি আমরা Arduino সিরিয়াল = port.readStringUntil (শেষ) থেকে একটি স্ট্রিং এর মাঝখানে পড়তে শুরু করি; // ফাংশন যা সিরিয়াল পোর্ট থেকে একটি println পর্যন্ত স্ট্রিং পড়ে এবং তারপর আমাদের স্ট্রিং ভেরিয়েবলকে স্ট্রিং বরাদ্দ করে ('সিরিয়াল' বলা হয়) সিরিয়াল = নাল; } অকার্যকর ড্র () {পটভূমি (255); textFont (f, 24); পূরণ (0); পাঠ্য ("মোট পরিমাণ রুপি:", 400, 400); পাঠ্য (মোট, 585, 400); তথ্য (); যখন (port.available ()> 0) {// যতক্ষণ সিরিয়াল পোর্ট থেকে ডেটা আসছে, এটি পড়ুন এবং এটি serial = port.readStringUntil (end); } যদি (সিরিয়াল! = নাল) {prev = curr; curr = a [1]; a = বিভক্ত (সিরিয়াল, ','); // একটি নতুন অ্যারে (যাকে 'a' বলা হয়) যা পৃথক কোষে মান সংরক্ষণ করে (আপনার Arduino প্রোগ্রামে নির্দিষ্ট কমা দ্বারা পৃথক) যদি ((curr).equals (prev)) {//} else {// println ("curr ", curr); // println ("Prev", prev); ফাংশন (); }}}

অকার্যকর ফাংশন ()

{যদি (dbconnection.connect ()) {// এখন এটি আবার পড়ুন // dbconnection.query ("SELECT * from rfid where ID ="+a [0]+""); যখন (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); টোকেন = dbconnection.getInt ("টোকেন"); পরিমাণ = dbconnection.getInt ("পরিমাণ"); } যদি (টোকেন == 0) {println ("Ok"); textFont (f, 54); পূরণ করুন (255, 0, 0, 160); পাঠ্য ("অজানা আইটেম সনাক্ত", 50, 300); বিলম্ব (2000); } অন্যথায় যদি (টোকেন == 1) {মোট = মোট+পরিমাণ; dbconnection.query ("আপডেট rfid সেট টোকেন = 2 যেখানে ID ="+a [0]+""); println ("ঠিক আছে"); textFont (f, 24); পূরণ করুন (255, 0, 0, 160); // টেক্সট ("আইটেম যোগ করা হয়েছে", 10, 30); বিলম্ব (1000); } অন্যথায় যদি (টোকেন == 2) {মোট = মোট-পরিমাণ; dbconnection.query ("আপডেট rfid সেট টোকেন = 1 যেখানে ID ="+a [0]+""); println ("ঠিক আছে"); textFont (f, 24); পূরণ করুন (255, 0, 0, 160); // টেক্সট ("আইটেম সরানো হয়েছে", 10, 30); বিলম্ব (1000); } else {} dbconnection.close (); } অন্যথায় {// সংযোগ ব্যর্থ! }}

অকার্যকর তথ্য ()

{int অবস্থান = 100; যদি (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2"); while (dbconnection.next ()) {Name = dbconnection.getString ("Name"); পরিমাণ = dbconnection.getInt ("পরিমাণ"); textFont (f, 24); পূরণ করুন (0, 0, 255, 160); পাঠ্য (নাম, 10, অবস্থান); পূরণ করুন (0, 0, 0, 160); পাঠ্য (পরিমাণ, 215, অবস্থান); অবস্থান = অবস্থান+30; }} dbconnection.close (); }

ধাপ 5: প্রোগ্রাম চালানো

প্রোগ্রাম এক্সিকিউট করা
প্রোগ্রাম এক্সিকিউট করা
প্রোগ্রাম এক্সিকিউট করা
প্রোগ্রাম এক্সিকিউট করা
প্রোগ্রাম এক্সিকিউট করা
প্রোগ্রাম এক্সিকিউট করা
প্রোগ্রাম এক্সিকিউট করা
প্রোগ্রাম এক্সিকিউট করা

রান বাটনে ক্লিক করে প্রোগ্রামটি চালান পপআপ উইন্ডো বন্ধ না করলে এক্সিকিউশন বন্ধ হয়ে যাবে এবং মাইএসকিউএল -এ সঞ্চিত ডেটা দেখার জন্য কোয়েরির নিচে…

ধাপ 6: উপসংহার

আমি আমার টিউটোরিয়াল পড়ার জন্য আপনাকে ধন্যবাদ জানাতে চাই। যদি আপনি এটি দরকারী মনে করেন এবং একটি লাইক (প্রিয়) ড্রপ করেন বা আমাকে কিছু জিজ্ঞাসা করেন তবে আমি এই নির্দেশাবলীগুলি করতে অনুপ্রাণিত রাখলে আমি প্রশংসা করব। আপনার যে প্রশ্নগুলি জানা দরকার তা নির্দ্বিধায় জিজ্ঞাসা করুন …

শুভ কোডিং Arduino…

প্রস্তাবিত: