Mục lục:

Ứng dụng siêu thị đơn giản sử dụng RFID RC-522 và Arduino Mega: 6 bước
Ứng dụng siêu thị đơn giản sử dụng RFID RC-522 và Arduino Mega: 6 bước

Video: Ứng dụng siêu thị đơn giản sử dụng RFID RC-522 và Arduino Mega: 6 bước

Video: Ứng dụng siêu thị đơn giản sử dụng RFID RC-522 và Arduino Mega: 6 bước
Video: Arduino | Cách sử dụng mạch RFID RC522 | PHẦN 1 2024, Tháng mười một
Anonim
Ứng dụng siêu thị đơn giản sử dụng RFID RC-522 và Arduino Mega
Ứng dụng siêu thị đơn giản sử dụng RFID RC-522 và Arduino Mega

Rất vui được gặp lại các bạn ở đây trong bài hướng dẫn khác của tôi, ở đây tôi sẽ giúp các bạn tạo một ứng dụng siêu thị đơn giản bằng cách sử dụng RFID RC-522 và Arduino với Xử lý để tạo GUI đơn giản.

Lưu ý: không chạy theo dõi nối tiếp Arduino trong khi chạy mã xử lý vì xung đột cổng sẽ xảy ra vì cả hai phải sử dụng cùng một cổng

Bạn cần:

  1. Arduino Mega hoặc Arduino Uno (tôi đã sử dụng Mega)
  2. RFID-RC522
  3. 7 dây nhảy nam nữ
  4. Một số thẻ ID (tùy chọn)
  5. Thư viện RFID (Phải, Liên kết bên dưới)
  6. Máy chủ Wamp
  7. Xử lý IDE 2.2.1 (không sử dụng lớn hơn thế)
  8. Thư viện BezierSQLib-0.2.0 để xử lý (Tải xuống liên kết bên dưới)

Sau đó, Tải xuống thư viện RFID Dưới đây và Thêm nó vào IDE Arduino của bạn bằng cách nhấp vào Sketch-> Bao gồm Thư viện-> Thêm Thư viện. Zip trong menu tệp

Bước 1: Thiết lập Arduino và RFID RC-522 (Kết nối vật lý)

Thiết lập Arduino và RFID RC-522 (Kết nối vật lý)
Thiết lập Arduino và RFID RC-522 (Kết nối vật lý)

chỉ cần kết nối arduino với RFID-RC522 như trong hình trên. Cảnh báo: chỉ cung cấp 3.3V nếu không mô-đun sẽ bị cháy

Pin Out cho Uno / Nano và 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

Bước 2: Mã Arduino.,

Sao chép mã Dưới đây rồi tải nó lên Arduino của bạn

/ * 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 * / / * Bao gồm thư viện Arduino SPI tiêu chuẩn * / #include / * Bao gồm thư viện RFID * / #include

/ * Xác định DIO được sử dụng cho các chân SDA (SS) và RST (đặt lại). * /

#define SDA_DIO 9 #define RESET_DIO 8

/ * Tạo một phiên bản của thư viện RFID * /

RFID RC522 (SDA_DIO, RESET_DIO); int reader = 0;

void setup ()

{Serial.begin (9600); / * Kích hoạt giao diện SPI * / SPI.begin (); / * Khởi tạo đầu đọc RFID * / RC522.init (); }

void loop ()

{/ * Bộ đếm vòng lặp tạm thời * / byte i;

/ * Có thẻ bị phát hiện không? * /

if (RC522.isCard ()) {/ * Nếu vậy thì lấy số sê-ri của nó * / RC522.readCardSerial ();

/ * Xuất số sê-ri vào UART * / for (i = 0; i <= 2; i ++) {Serial.print (RC522.serNum , DEC); //Serial.print(RC522.serNum, HEX); } Serial.print (","); Serial.print (đầu đọc ++); Serial.println (); } delay (1000); }

Bước 3: Thiết lập MySQL

Thiết lập MySQL
Thiết lập MySQL
  1. Cài đặt máy chủ Wamp cho MySQL và định cấu hình nó để lưu trữ dữ liệu (
  2. Chạy bảng điều khiển MySQL wamp serveropen
  3. chọn cơ sở dữ liệu
  4. Sau đó, tạo bảng cho dữ liệu của bạn

tạo bảng rfid (ID int (8), token int (1), Tên varchar (20), Số tiền int (4));

Bây giờ hãy xem liên kết này để tìm hiểu cách lấy giá trị thẻ RFID của bạn, sau đó sử dụng mã bên dưới để chèn dữ liệu. Đừng quên thay thế giá trị ID bằng giá trị thẻ RFID của bạn

chèn vào các giá trị rfid (3756178, 1, 'Pencil', 20);

sử dụng giá trị mã thông báo là 1 để sau khi đọc giá trị thẻ lần đầu tiên, nó sẽ tự động chuyển thành 2, không sử dụng 0 cho giá trị mã thông báo khi thẻ đọc không được chèn vào DB, nó sẽ gán 0 rồi hiển thị dưới dạng Thẻ không xác định..

Bước 4: Thiết lập IDE xử lý

Thiết lập IDE xử lý
Thiết lập IDE xử lý
  1. Tải xuống và cài đặt IDE xử lý 2.2.1
  2. Giải nén ZIP đã cho ở trên vào MyDocuments / Processing / Libraries
  3. Bây giờ mở IDE xử lý và kiểm tra thư viện đã được cài đặt đúng hay chưa như trong hình trên
  4. Sau đó, sao chép mã dưới đây để xử lý và đặt tên cho mã của riêng bạn

import de.bezier.data.sql. *; import processing.serial. *; // nhập java.math. BigInteger;

// được tạo 2005-05-10 bởi fjenett

// cập nhật fjenett 20080605

MySQL dbconnection;

Chuỗi s = ""; int Wheight = 700; int Wwidth = 1200; ID dài; mã thông báo int; int Số tiền; int Tổng = 0;

Chuỗi a = {"NULL", "NULL"};

int end = 10; // số 10 là ASCII cho dòng cấp dữ liệu (end of serial.println), sau này chúng ta sẽ tìm số này để chia nhỏ các thông báo riêng lẻ Chuỗi chuỗi; // khai báo một chuỗi mới có tên là 'serial'. Chuỗi là một chuỗi các ký tự (kiểu dữ liệu được gọi là "char") Cổng nối tiếp; String curr, trước, Tên; PFont f;

void setup ()

{// kích thước (Width, Wheight); kích thước (700, 500); f = createFont ("Arial", 24, true); // ví dụ này giả định rằng bạn đang chạy máy chủ // mysql cục bộ (trên "localhost"). // // thay thế --username--, --password-- bằng tài khoản mysql của bạn. // String user = "root"; Chuỗi pass = ""; // tên cơ sở dữ liệu sẽ sử dụng // String database = "IOT_Database"; // tên của bảng sẽ được tạo String table = ""; // kết nối với cơ sở dữ liệu của máy chủ "localhost" dbconnection = new MySQL (this, "localhost", cơ sở dữ liệu, người dùng, pass); port = new Serial (this, Serial.list () [0], 9600); // khởi tạo đối tượng bằng cách gán cổng và tốc độ truyền (phải khớp với tốc độ truyền của Arduino) port.clear (); // hàm từ thư viện nối tiếp ném ra lần đọc đầu tiên, trong trường hợp chúng ta bắt đầu đọc ở giữa chuỗi từ Arduino serial = port.readStringUntil (end); // hàm đọc chuỗi từ cổng nối tiếp cho đến một println và sau đó gán chuỗi cho biến chuỗi của chúng ta (được gọi là 'nối tiếp') serial = null; } void draw () {background (255); textFont (f, 24); điền (0); text ("Tổng số tiền Rs:", 400, 400); text (Tổng cộng, 585, 400); dữ liệu(); while (port.available ()> 0) {// miễn là có dữ liệu đến từ cổng nối tiếp, hãy đọc và lưu trữ nó serial = port.readStringUntil (end); } if (serial! = null) {pres = curr; curr = a [1]; a = split (nối tiếp, ','); // một mảng mới (được gọi là 'a') lưu trữ các giá trị vào các ô riêng biệt (phân tách bằng dấu phẩy được chỉ định trong chương trình Arduino của bạn) if ((curr).equals (trước)) {//} else {// println ("curr ", curr); // println ("Trước đó", trước); hàm số(); }}}

hàm void ()

{if (dbconnection.connect ()) {// bây giờ đọc lại // dbconnection.query ("SELECT * from rfid where ID =" + a [0] + ""); while (dbconnection.next ()) {ID = dbconnection.getInt ("ID"); token = dbconnection.getInt ("mã thông báo"); Số tiền = dbconnection.getInt ("Số tiền"); } if (token == 0) {println ("Ok"); textFont (f, 54); điền vào (255, 0, 0, 160); text ("Đã phát hiện mục không xác định", 50, 300); chậm trễ (2000); } else if (token == 1) {Total = Total + Amount; dbconnection.query ("update rfid set token = 2 where ID =" + a [0] + ""); println ("Được"); textFont (f, 24); điền vào (255, 0, 0, 160); // text ("Mục Đã Thêm", 10, 30); chậm trễ (1000); } else if (token == 2) {Total = Total-Amount; dbconnection.query ("cập nhật rfid set token = 1 trong đó ID =" + a [0] + ""); println ("Được"); textFont (f, 24); điền (255, 0, 0, 160); // text ("Mục Đã xóa", 10, 30); chậm trễ (1000); } else {} dbconnection.close (); } else {// kết nối không thành công! }}

dữ liệu vô hiệu ()

{int position = 100; if (dbconnection.connect ()) {dbconnection.query ("SELECT * from rfid where token = 2"); while (dbconnection.next ()) {Tên = dbconnection.getString ("Tên"); Số tiền = dbconnection.getInt ("Số tiền"); textFont (f, 24); điền (0, 0, 255, 160); text (Tên, 10, chức vụ); điền (0, 0, 0, 160); text (Số lượng, 215, vị trí); vị trí = vị trí + 30; }} dbconnection.close (); }

Bước 5: Thực hiện chương trình

Thực hiện chương trình
Thực hiện chương trình
Thực hiện chương trình
Thực hiện chương trình
Thực hiện chương trình
Thực hiện chương trình
Thực hiện chương trình
Thực hiện chương trình

Chạy chương trình bằng cách nhấp vào nút chạy không đóng cửa sổ bật lên, việc đóng cửa sổ bật lên sẽ ngừng thực thi và truy vấn bên dưới để xem dữ liệu được lưu trữ trong MySQL…

Bước 6: Kết luận

Tôi muốn cảm ơn bạn đã đọc hướng dẫn của tôi. Tôi sẽ đánh giá cao nếu bạn thấy nó hữu ích và thả một lượt thích (yêu thích) hoặc hỏi tôi bất cứ điều gì vì nó giúp tôi có động lực để thực hiện những hướng dẫn này. vui lòng hỏi bất kỳ câu hỏi nào bạn cần biết…

Happy Coding Arduino…

Đề xuất: