Spisu treści:
- Krok 1: Konfiguracja Arduino i RFID RC-522 (połączenie fizyczne)
- Krok 2: Kod Arduino.,
- Krok 3: Konfiguracja MySQL
- Krok 4: Konfiguracja przetwarzania IDE
- Krok 5: Wykonywanie programu
- Krok 6: Wniosek
Wideo: Prosta aplikacja Supermarket wykorzystująca RFID RC-522 i Arduino Mega: 6 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:30
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:
- Arduino Mega lub Arduino Uno (użyłem Mega)
- RFID-RC522
- 7 przewodów połączeniowych męskich na żeńskie
- Niektóre karty identyfikacyjne (opcjonalnie)
- Biblioteka RFID (obowiązek, link poniżej)
- Serwer Wamp
- Przetwarzanie IDE 2.2.1 (nie używaj większego)
- 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)
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
- Zainstaluj serwer Wamp dla MySQL i skonfiguruj go do przechowywania danych (
- Uruchom wamp server, otwórz konsolę MySQL
- wybierz bazę danych
- 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
- Pobierz i zainstaluj Processing IDE 2.2.1
- Wyodrębnij wyżej podany ZIP do MyDocuments/Processing/Libraries
- Teraz otwórz przetwarzanie IDE i sprawdź, czy biblioteka jest poprawnie zainstalowana, czy nie, jak na powyższym obrazku
- 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
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:
Profesjonalna stacja pogodowa wykorzystująca ESP8266 i ESP32 DIY: 9 kroków (ze zdjęciami)
Profesjonalna stacja pogodowa przy użyciu ESP8266 i ESP32 DIY: LineaMeteoStazione to kompletna stacja pogodowa, która może być połączona z profesjonalnymi czujnikami firmy Sensirion, a także z niektórymi komponentami Davis Instrument (deszczomierz, anemometr) Projekt jest przeznaczony do samodzielnej stacji pogodowej, ale wymaga tylko
Prosta zgrzewarka punktowa wykorzystująca akumulator samochodowy do budowy akumulatora litowo-jonowego: 6 kroków
Prosta zgrzewarka punktowa wykorzystująca akumulator samochodowy do budowy akumulatora litowo-jonowego: W ten sposób wykonałem zgrzewarkę punktową z akumulatorem samochodowym, który jest przydatny do budowy akumulatorów litowo-jonowych (litowo-jonowych). Za pomocą tego zgrzewarki punktowej udało mi się zbudować pakiet 3S10P i wiele spoin. Ta instrukcja zgrzewarki punktowej obejmuje blok funkcjonalny Dia
Prosta automatyka domowa (niestandardowa aplikacja Bluetooth): 6 kroków
Prosta automatyka domowa (niestandardowa aplikacja Bluetooth): w tym samouczku pokażę, jak zbudować prostą automatykę domową (czyli możemy sterować naszymi urządzeniami domowymi za pomocą naszego smartfona)
Prosta aplikacja IOS dla modułów BLE: 4 kroki
Prosta aplikacja IOS dla modułów BLE: ta instruktażowa pokazuje, jak stworzyć aplikację na iOS z bardzo podstawową funkcjonalnością. Ten Instruktaż nie przejdzie przez cały proces tworzenia aplikacji iOS BLE. Daje tylko ogólny przegląd niektórych ważnych elementów w
Prosta tapeta wykorzystująca fotografię i mieszanie warstw - samouczek Photoshop: 5 kroków
Prosta tapeta przy użyciu fotografii i łączenia warstw - samouczek programu Photoshop: Stwórz oszałamiającą wizualnie tapetę za pomocą prostej techniki w Photoshopie.Każdy może zrobić tak dobrą tapetę i jest to o wiele łatwiejsze niż mogłoby się wydawać!Najpierw więc przejdź do Plik > NowośćUstaw szerokość i wysokość na piksele i ustaw t