Πίνακας περιεχομένων:
- Βήμα 1: Ρύθμιση Arduino και RFID RC-522 (Φυσική σύνδεση)
- Βήμα 2: Κωδικός Arduino.,
- Βήμα 3: Ρύθμιση της MySQL
- Βήμα 4: Ρύθμιση επεξεργασίας IDE
- Βήμα 5: Εκτέλεση του προγράμματος
- Βήμα 6: Συμπέρασμα
Βίντεο: Απλή εφαρμογή σούπερ μάρκετ με χρήση RFID RC-522 και Arduino Mega: 6 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Χαίρομαι που σας βλέπω ξανά εδώ στο άλλο μου σεμινάριο, εδώ θα σας βοηθήσω να δημιουργήσετε μια απλή εφαρμογή σούπερ μάρκετ χρησιμοποιώντας RFID RC-522 και Arduino με επεξεργασία για να δημιουργήσετε απλό GUI.
Σημείωση: μην εκτελείτε σειριακή οθόνη Arduino κατά την εκτέλεση κώδικα επεξεργασίας, επειδή θα προκύψει διένεξη θύρας, καθώς και οι δύο πρέπει να χρησιμοποιούν την ίδια θύρα
Χρειάζεσαι:
- Arduino Mega ή Arduino Uno (χρησιμοποίησα Mega)
- RFID-RC522
- 7 καλώδια από jumper αρσενικά προς θηλυκά
- Ορισμένα δελτία ταυτότητας (προαιρετικά)
- Βιβλιοθήκη RFID (πρέπει, παρακάτω σύνδεσμος)
- Διακομιστής Wamp
- Επεξεργασία IDE 2.2.1 (μην χρησιμοποιείτε μεγαλύτερο από αυτό)
- Βιβλιοθήκη BezierSQLib-0.2.0 για επεξεργασία (σύνδεσμος λήψης παρακάτω)
Στη συνέχεια, κατεβάστε την παρακάτω βιβλιοθήκη RFID και προσθέστε την στο Arduino IDE κάνοντας κλικ στην επιλογή Sketch-> Include Library-> Add. Zip Library στο μενού αρχείων
Βήμα 1: Ρύθμιση Arduino και RFID RC-522 (Φυσική σύνδεση)
απλά συνδέστε το arduino με το RFID-RC522 όπως φαίνεται στην παραπάνω εικόνα. Προσοχή: τροφοδοτήστε μόνο 3,3V διαφορετικά η μονάδα θα καεί
Pin Out για 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.,
Αντιγράψτε τον παρακάτω κώδικα και, στη συνέχεια, ανεβάστε τον στο 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 (επαναφορά). */
#define SDA_DIO 9 #define RESET_DIO 8
/ * Δημιουργήστε ένα παράδειγμα της βιβλιοθήκης RFID */
RFID RC522 (SDA_DIO, RESET_DIO); int αναγνώστης = 0;
void setup ()
{Serial.begin (9600); / * Ενεργοποιήστε τη διεπαφή SPI */ SPI.begin (); / * Αρχικοποιήστε τον αναγνώστη RFID */ 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
- Εγκαταστήστε τον διακομιστή Wamp για MySQL και ρυθμίστε τον ώστε να αποθηκεύει δεδομένα (
- Εκτελέστε την κονσόλα wamp serveropen MySQL
- επιλέξτε βάση δεδομένων
- Στη συνέχεια, δημιουργήστε τον πίνακα για τα δεδομένα σας
Δημιουργία πίνακα rfid (ID int (8), διακριτικό int (1), Όνομα varchar (20), Ποσό int (4)).
Τώρα δείτε αυτόν τον σύνδεσμο για να μάθετε πώς μπορείτε να λάβετε την τιμή της ετικέτας RFID και, στη συνέχεια, χρησιμοποιήστε τον παρακάτω κώδικα για να εισαγάγετε δεδομένα. Μην ξεχάσετε να αντικαταστήσετε την τιμή ταυτότητας με την τιμή της ετικέτας RFID
εισαγωγή σε τιμές rfid (3756178, 1, «Μολύβι», 20).
χρησιμοποιήστε την τιμή διακριτικού ως 1, έτσι ώστε μετά την πρώτη ανάγνωση της τιμής ετικέτας να αλλάξει αυτόματα σε 2, μην χρησιμοποιήσετε το 0 για τιμή συμβολικού κατά την ανάγνωση της κάρτας που δεν έχει εισαχθεί στο DB, θα εκχωρήσει 0 και στη συνέχεια θα εμφανιστεί ως Άγνωστη κάρτα. Το
Βήμα 4: Ρύθμιση επεξεργασίας IDE
- Κατεβάστε και εγκαταστήστε το Processing IDE 2.2.1
- Εξαγάγετε το παραπάνω δεδομένο ZIP στο MyDocuments/Processing/Libraries
- Τώρα ανοίξτε το IDE επεξεργασίας και ελέγξτε ότι η βιβλιοθήκη έχει εγκατασταθεί σωστά ή όχι όπως στην παραπάνω εικόνα
- Στη συνέχεια, αντιγράψτε τον παρακάτω κώδικα στην επεξεργασία και ονομάστε τον δικό σας
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;
String a = {"NULL", "NULL"};
int τέλος = 10; // ο αριθμός 10 είναι ASCII για linefeed (τέλος του serial.println), αργότερα θα το αναζητήσουμε για να διαλύσουμε μεμονωμένα μηνύματα String serial. // δηλώστε μια νέα συμβολοσειρά που ονομάζεται "σειριακή". Μια συμβολοσειρά είναι μια ακολουθία χαρακτήρων (τύπος δεδομένων γνωστός ως "char") Σειριακή θύρα. Curr curr, prev, Name; PFont f;
void setup ()
{// μέγεθος (Πλάτος, Βάρος); μέγεθος (700, 500). f = createFont ("Arial", 24, true); // αυτό το παράδειγμα υποθέτει ότι εκτελείτε τον διακομιστή // mysql τοπικά (στο "localhost"). // // αντικαταστήστε --username--, --password-- με τον λογαριασμό σας mysql. // String user = "root"; String pass = ""; // όνομα της βάσης δεδομένων που θα χρησιμοποιηθεί // String database = "IOT_Database"; // όνομα πίνακα που θα δημιουργηθεί String table = ""; // σύνδεση με βάση δεδομένων του διακομιστή "localhost" dbconnection = new MySQL (αυτό, "localhost", βάση δεδομένων, χρήστης, πάσο); θύρα = νέο Σειριακό (αυτό, Serial.list () [0], 9600); // εκκίνηση του αντικειμένου με εκχώρηση θύρας και ρυθμού baud (πρέπει να ταιριάζει με αυτό του Arduino) θύρα. Clear (); // συνάρτηση από σειριακή βιβλιοθήκη που ρίχνει την πρώτη ανάγνωση, σε περίπτωση που ξεκινήσαμε να διαβάζουμε στη μέση μιας συμβολοσειράς από το Arduino serial = port.readStringUntil (τέλος); // συνάρτηση που διαβάζει τη συμβολοσειρά από σειριακή θύρα μέχρι println και στη συνέχεια εκχωρεί συμβολοσειρά στη μεταβλητή συμβολοσειράς μας (που ονομάζεται «σειριακή») σειριακή = null; } void draw () {background (255); textFont (f, 24); συμπληρώστε (0)? κείμενο ("Συνολικό ποσό Rs:", 400, 400); κείμενο (Σύνολο, 585, 400); δεδομένα(); while (port.available ()> 0) {// εφόσον υπάρχουν δεδομένα που προέρχονται από σειριακή θύρα, διαβάστε το και αποθηκεύστε το σειριακό = port.readStringUntil (τέλος); } if (σειριακό! = null) {prev = curr; curr = a [1]; a = split (σειριακό, ','); // ένας νέος πίνακας (που ονομάζεται "α") που αποθηκεύει τιμές σε ξεχωριστά κελιά (χωρίζονται με κόμματα που καθορίζονται στο πρόγραμμα 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 (διακριτικό == 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 ("Ok"); textFont (f, 24); γέμισμα (255, 0, 0, 160). // κείμενο ("Στοιχείο προστέθηκε", 10, 30); καθυστέρηση (1000)? } else if (διακριτικό == 2) {Σύνολο = Συνολικό ποσό; dbconnection.query ("update rfid set token = 1 where ID ="+a [0]+""); println ("Ok"); 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: Συμπέρασμα
Θα ήθελα να σας ευχαριστήσω που διαβάσατε το σεμινάριο μου. Θα το εκτιμούσα αν το βρήκατε χρήσιμο και μου δώσετε ένα like (αγαπημένο) ή με ρωτήσετε οτιδήποτε, καθώς αυτό μου δίνει κίνητρο να κάνω αυτές τις οδηγίες. μη διστάσετε να κάνετε οποιεσδήποτε ερωτήσεις πρέπει να γνωρίζετε…
Happy Coding Arduino…
Συνιστάται:
Απλή εμφάνιση καιρού με χρήση Raspberry PI και Cyntech WeatherHAT: 4 βήματα
Απλή εμφάνιση καιρού με χρήση Raspberry PI και Cyntech WeatherHAT: * Το 2019 η Yahoo άλλαξε το API του και αυτό σταμάτησε να λειτουργεί. Δεν ήξερα την αλλαγή. Τον Σεπτέμβριο του 2020 αυτό το έργο έχει ενημερωθεί για να χρησιμοποιήσει το APEN OPENWEATHERMAP Δείτε την παρακάτω ενημερωμένη ενότητα, οι υπόλοιπες πληροφορίες είναι ακόμα καλές
Σούπερ Απλή Φτηνή LED (ες) DIY USB (και άλλης ύλης): 16 βήματα
Super Simple Φτηνές DIY USB LED (ες) (και άλλα πράγματα): Γεια σας και καλώς ορίσατε στο πρώτο μου διδάξιμο:) Βάζω στοίχημα ότι όλοι ετοιμάζουμε και ξαναπληρώνουμε τους κατασκευαστικούς μας χώρους για άλλη μια φορά μετά τον ιό, οπότε νομίζω ότι είναι καιρός να φτιάξουμε όλοι μάθαμε να φτιάχνουμε τα δικά μας USB αντί να εξαρτώνται από την εύκολα εξαντλημένη μπαταρία
8 Έλεγχος ρελέ με NodeMCU και δέκτη IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: 5 βήματα (με εικόνες)
8 Έλεγχος ρελέ με δέκτη NodeMCU και IR χρησιμοποιώντας WiFi και IR Τηλεχειριστήριο και εφαρμογή Android: Έλεγχος 8 διακοπτών ρελέ χρησιμοποιώντας nodemcu και δέκτη ir μέσω wifi και ir απομακρυσμένης και εφαρμογής Android. Το ir remote λειτουργεί ανεξάρτητα από τη σύνδεση wifi. ΕΔΩ ΕΙΝΑΙ ΕΝΗΜΕΡΩΜΕΝΗ ΚΛΙΚ ΕΔΩ
Σούπερ απλή επισκευή φορτιστή USB: 4 βήματα
Σούπερ απλή επισκευή φορτιστή USB: TheHORROR …. να βρείτε τον φορτιστή USB σας ανοιχτό κατά τη διάρκεια της διάρκειας ζωής του. Αλλά δεδομένου ότι οι φορτιστές είναι λίγο ακριβοί και μερικές φορές είναι καλύτερα να μένετε στο σπίτι και να χρησιμοποιείτε αυτό που έχετε, σας έκανα αυτό το διδακτικό για να σας βοηθήσω να αποθηκεύσετε το USB c
Απλή ταπετσαρία με τη χρήση φωτογραφίας και συνδυασμού στρώσεων - Φροντιστήριο Photoshop: 5 βήματα
Απλή ταπετσαρία με χρήση φωτογραφίας και συνδυασμού στρώσεων - Photoshop Tutorial: Φτιάξτε μια εντυπωσιακή ταπετσαρία με μια απλή τεχνική στο Photoshop. Ο καθένας μπορεί να κάνει μια ταπετσαρία τόσο καλή, και είναι πολύ πιο εύκολη από όσο νομίζετε! ? Νέο Ρυθμίστε το πλάτος και το ύψος σας στα εικονοστοιχεία και ορίστε το σε