Spisu treści:

Prosta aplikacja Supermarket wykorzystująca RFID RC-522 i Arduino Mega: 6 kroków
Prosta aplikacja Supermarket wykorzystująca RFID RC-522 i Arduino Mega: 6 kroków

Wideo: Prosta aplikacja Supermarket wykorzystująca RFID RC-522 i Arduino Mega: 6 kroków

Wideo: Prosta aplikacja Supermarket wykorzystująca RFID RC-522 i Arduino Mega: 6 kroków
Wideo: #016: Historia i bezpieczeństwo płatności zbliżeniowych 2024, Listopad
Anonim
Prosta aplikacja Supermarket wykorzystująca RFID RC-522 i Arduino Mega
Prosta aplikacja Supermarket wykorzystująca RFID RC-522 i Arduino Mega

Dobrze widzieć was ponownie tutaj w moim kolejnym samouczku, tutaj pomogę wam stworzyć prostą aplikację supermarketu przy użyciu RFID RC-522 i Arduino z przetwarzaniem, aby stworzyć prosty GUI.

Uwaga: nie uruchamiaj monitora szeregowego Arduino podczas przetwarzania kodu, ponieważ wystąpi konflikt portów, ponieważ oba muszą korzystać z tego samego portu

Potrzebujesz:

  1. Arduino Mega lub Arduino Uno (użyłem Mega)
  2. RFID-RC522
  3. 7 przewodów połączeniowych męskich na żeńskie
  4. Niektóre karty identyfikacyjne (opcjonalnie)
  5. Biblioteka RFID (obowiązek, link poniżej)
  6. Serwer Wamp
  7. Przetwarzanie IDE 2.2.1 (nie używaj większego)
  8. Biblioteka BezierSQLib-0.2.0 do przetwarzania (link do pobrania poniżej)

Następnie pobierz poniższą bibliotekę RFID i dodaj ją do swojego Arduino IDE, klikając Szkic-> Dołącz bibliotekę-> Dodaj bibliotekę. Zip w menu plików

Krok 1: Konfiguracja Arduino i RFID RC-522 (połączenie fizyczne)

Konfiguracja Arduino i RFID RC-522 (połączenie fizyczne)
Konfiguracja Arduino i RFID RC-522 (połączenie fizyczne)

po prostu podłącz arduino za pomocą RFID-RC522, jak pokazano na powyższym obrazku. Ostrzeżenie: dostarczaj tylko 3,3 V, w przeciwnym razie moduł się wypali

Wypnij dla Uno/Nano i Mega

MODUŁ RC522 Uno/Nano MEGASDA D10 D9 SCK D13 D52 MOSI D11 D51 MISO D12 D50 IRQ Nie dotyczy Nie dotyczy GND GND GND RST D9 D8 3.3V 3.3V 3.3V

Krok 2: Kod Arduino.,

Skopiuj poniższy kod, a następnie prześlij go na Arduino

/*PINOUT: RC522 MODUŁ 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 */ /* Zawiera standardową bibliotekę Arduino SPI */ #include /* Dołącz bibliotekę RFID */ #include

/* Zdefiniuj DIO używane dla pinów SDA (SS) i RST (reset). */

#define SDA_DIO 9 #define RESET_DIO 8

/* Utwórz instancję biblioteki RFID */

RFID RC522 (SDA_DIO, RESET_DIO); wew czytnik=0;

pusta konfiguracja()

{ Szeregowy.początek(9600); /* Włącz interfejs SPI */ SPI.begin(); /* Inicjalizacja czytnika RFID */ RC522.init(); }

pusta pętla()

{ /* Licznik pętli tymczasowej */ byte i;

/* Czy wykryto kartę? */

if (RC522.isCard()) { /* Jeśli tak, pobierz jego numer seryjny */ RC522.readCardSerial();

/* Wypisz numer seryjny do UART */ for(i = 0; i <= 2; i++) { Serial.print(RC522.serNum, DEC); //Serial.print(RC522.serNum, HEX); } Serial.print(", "); Serial.print(czytnik++); Serial.println(); } opóźnienie(1000); }

Krok 3: Konfiguracja MySQL

Konfiguracja MySQL
Konfiguracja MySQL
  1. Zainstaluj serwer Wamp dla MySQL i skonfiguruj go do przechowywania danych (
  2. Uruchom wamp server, otwórz konsolę MySQL
  3. wybierz bazę danych
  4. Następnie utwórz tabelę dla swoich danych

utwórz tabelę rfid(ID int(8), token int(1), Nazwa varchar(20), Kwota int(4));

Teraz wyświetl ten link, aby dowiedzieć się, jak uzyskać wartość tagu RFID, a następnie użyj poniższego kodu, aby wstawić dane. Nie zapomnij zastąpić wartości identyfikatora wartością tagu RFID

wstaw do wartości rfid (3756178, 1, 'Ołówek', 20);

użyj wartości tokena jako 1, aby po pierwszym odczytaniu wartości tagu automatycznie zmieniła się ona na 2, nie używaj 0 dla wartości tokena podczas odczytu karty, która nie jest włożona do bazy danych, przypisze ona 0, a następnie wyświetli ją jako Unknown Card..

Krok 4: Konfiguracja przetwarzania IDE

Konfigurowanie IDE przetwarzania
Konfigurowanie IDE przetwarzania
  1. Pobierz i zainstaluj Processing IDE 2.2.1
  2. Wyodrębnij wyżej podany ZIP do MyDocuments/Processing/Libraries
  3. Teraz otwórz przetwarzanie IDE i sprawdź, czy biblioteka jest poprawnie zainstalowana, czy nie, jak na powyższym obrazku
  4. Następnie skopiuj poniższy kod do przetwarzania i nazwij go własnym

import de.bezier.data.sql.*;import Processing.serial.*; //import java.math. BigInteger;

// utworzone 2005-05-10 przez fjenett

// zaktualizowano fjenett 20080605

połączenie bazy danych MySQL;

Ciąg s=" "; int Waga=700; int Szerokość=1200; długi identyfikator; int token; int Kwota; int Suma=0;

String a={"NULL", "NULL"};

int koniec = 10; // liczba 10 to ASCII dla wysuwu wiersza (koniec serial.println), później będziemy szukać tego, aby rozbić poszczególne komunikaty String serial; // zadeklaruj nowy ciąg o nazwie 'serial'. Ciąg znaków to ciąg znaków (typ danych znany jako „char”) Port szeregowy; Ciąg bież, poprz, Nazwa; PFont f;

pusta konfiguracja()

{ //rozmiar(szerokość, wysokość); rozmiar (700, 500); f=createFont("Arial", 24, prawda); // ten przykład zakłada, że uruchamiasz // serwer mysql lokalnie (na "localhost"). // // zastąp --username--, --password-- swoim kontem mysql. // Ciąg użytkownik = "root"; Przepustka ciąg = ""; // nazwa bazy danych do użycia // String database = "IOT_Database"; // nazwa tabeli, która zostanie utworzona String table = ""; // połącz się z bazą danych serwera "localhost" dbconnection = new MySQL(this, "localhost", database, user, pass); port = new Serial(this, Serial.list()[0], 9600); // inicjalizacja obiektu poprzez przypisanie portu i szybkości transmisji (musi odpowiadać Arduino) port.clear(); // funkcja z biblioteki szeregowej, która wyrzuca pierwszy odczyt, na wypadek, gdybyśmy zaczęli czytać w środku ciągu z Arduino serial = port.readStringUntil(end); // funkcja, która odczytuje łańcuch z portu szeregowego do println, a następnie przypisuje łańcuch do naszej zmiennej łańcuchowej (zwanej 'serial') serial = null; } void draw() { background(255); tekstCzcionka(f, 24); wypełnienie(0); text("Łączna kwota Rs:", 400, 400); tekst(Ogółem, 585, 400); dane(); while (port.available() > 0) { //dopóki istnieją dane pochodzące z portu szeregowego, odczytaj je i zapisz serial = port.readStringUntil(end); } if (serial != null) { prev=curr; bież=a[1]; a = split(serial, ', '); //nowa tablica (zwana „a”), która przechowuje wartości w oddzielnych komórkach (oddzielonych przecinkami określonymi w programie Arduino) if((curr.equals(prev)) { // } else { //println("curr ", bieżący); //println("Poprzedni", poprzedni); funkcjonować(); } } }

pusta funkcja()

{ if (dbconnection.connect()) { // teraz odczytaj ponownie // dbconnection.query("SELECT * from rfid gdzie ID="+a[0]+""); while (dbconnection.next()) { ID = dbconnection.getInt("ID"); token = dbconnection.getInt("token"); Kwota = dbconnection.getInt("Kwota"); } if(token==0) { println("Ok"); tekstCzcionka(f, 54); wypełnienie(255, 0, 0, 160); text("Wykryto nieznany element", 50, 300); opóźnienie (2000); } else if(token==1) { Suma=Suma+Kwota; dbconnection.query("zaktualizuj zestaw rfid token=2 gdzie ID="+a[0]+""); println("Ok"); tekstCzcionka(f, 24); wypełnienie(255, 0, 0, 160); //text("Dodana pozycja", 10, 30); opóźnienie (1000); } else if(token==2) { Suma=Łączna kwota; dbconnection.query("zaktualizuj zestaw rfid token=1 gdzie ID="+a[0]+""); println("Dobrze"); tekstCzcionka(f, 24); wypełnienie(255, 0, 0, 160); //text("Przedmiot usunięty", 10, 30); opóźnienie (1000); } else { } dbconnection.close(); } else { // połączenie nie powiodło się ! } }

nieważne dane ()

{ int pozycja=100; if (dbconnection.connect()) { dbconnection.query("WYBIERZ * z rfid gdzie token=2"); while (dbconnection.next()) { Nazwa = dbconnection.getString("Nazwa"); Kwota = dbconnection.getInt("Kwota"); tekstCzcionka(f, 24); wypełnienie (0, 0, 255, 160); tekst(Nazwisko, 10, stanowisko); wypełnienie (0, 0, 0, 160); tekst(Kwota, 215, pozycja); pozycja=pozycja+30; } } dbconnection.close(); }

Krok 5: Wykonywanie programu

Realizacja programu
Realizacja programu
Realizacja programu
Realizacja programu
Realizacja programu
Realizacja programu
Realizacja programu
Realizacja programu

Uruchom program, klikając przycisk uruchamiania, nie zamykaj wyskakującego okienka, zamknięcie wyskakującego okienka spowoduje zatrzymanie wykonywania, a poniżej zapytanie, aby wyświetlić dane przechowywane w MySQL…

Krok 6: Wniosek

Dziękuję za przeczytanie mojego tutoriala. Byłbym wdzięczny, gdybyś uznał to za przydatne i upuścił polubienie (ulubione) lub zapytał mnie o cokolwiek, ponieważ motywuje mnie to do wykonywania tych instrukcji. nie krępuj się zadawać wszelkich pytań, które musisz wiedzieć…

Szczęśliwe kodowanie Arduino…

Zalecana: