Comment faire pour obtenir l'UID de la RFID dans l'Arduino?
J'ai une puce RFID-RC522 (MF-RC522) module et je suis en utilisant le sketch Arduino programme.
Pour utiliser cette RFID, j'ai téléchargé l'Arduino MFRC522 bibliothèque.
Et je exécuter l'exemple de code de bibliothèque.
Voici le code.
/*
* MFRC522 - Library to use ARDUINO RFID MODULE KIT 13.56 MHZ WITH TAGS SPI W AND R BY COOQROBOT.
* The library file MFRC522.h has a wealth of useful info. Please read it.
* The functions are documented in MFRC522.cpp.
*
* Based on code Dr.Leong ( WWW.B2CQSHOP.COM )
* Created by Miguel Balboa (circuitito.com), Jan, 2012.
* Rewritten by Søren Thing Andersen (access.thing.dk), fall of 2013 (Translation to English, refactored, comments, anti collision, cascade levels.)
* Released into the public domain.
*
* Sample program showing how to read data from a PICC using a MFRC522 reader on the Arduino SPI interface.
*----------------------------------------------------------------------------- empty_skull
* Aggiunti pin per arduino Mega
* add pin configuration for arduino mega
* http://mac86project.altervista.org/
----------------------------------------------------------------------------- Nicola Coppola
* Pin layout should be as follows:
* Signal Pin Pin Pin
* Arduino Uno Arduino Mega MFRC522 board
* ------------------------------------------------------------
* Reset 9 5 RST
* SPI SS 10 53 SDA
* SPI MOSI 11 51 MOSI
* SPI MISO 12 50 MISO
* SPI SCK 13 52 SCK
*
* The reader can be found on eBay for around 5 dollars. Search for "mf-rc522" on ebay.com.
*/
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); //Create MFRC522 instance.
void setup() {
Serial.begin(9600); //Initialize serial communications with the PC
SPI.begin(); //Init SPI bus
mfrc522.PCD_Init(); //Init MFRC522 card
Serial.println("Scan PICC to see UID and type...");
}
void loop() {
//Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
//Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
//Dump debug info about the card. PICC_HaltA() is automatically called.
mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
}
Lorsque j'exécute ce code et de mettre une carte de lecteur de RFID, beaucoup d'informations à afficher sur le moniteur Série de l'IDE Arduino. Quelque chose comme ceci...
(Je ne pouvais pas poster les images)
//
Scan PICC to see UID and type...
Card UID : 84 90 6C A7
PICC type : MIFARE 1KB
Sector Block 0 1 2 3 4 5 6 7 ...
15 63 00 00 00 00 ...
//
Mais Ce dont j'ai besoin est juste la Carte UID. Ce cas est de 84 90 6C A7.
En fait, j'ai de projet. Je veux passer à la LED, si je mets une Carte de RFID. Pour ce faire, j'ai besoin de lire la Carte d'UID et de l'assigner à une variable sur un Arduino esquisse de programme.
Mais je ne sais pas comment récupérer l'UID de l'étiquette RFID, dans ce cas(Cette bibliothèque et les fonctions sont compliquées pour moi).
Si quelqu'un sait comment faire, merci de m'aider.
OriginalL'auteur Jinha.Kim | 2015-09-29
Vous devez vous connecter pour publier un commentaire.
C'est du code non testé car je n'ai pas un Arduino disponible dès maintenant. J'espère que cela fonctionne.
Remplacer le DumpToSerial code dans votre exemple, avec quelque chose comme ça
if (mfrc522.uid.uidByte[0] == 0x84 &&
mfrc522.uid.uidByte[1] == 0x90 &&
mfrc522.uid.uidByte[2] == 0x6c &&
mfrc522.uid.uidByte[3] == 0xa7) {
//turn your LED on
}
OriginalL'auteur Hans Kilian
Ici est une fonction qui retourne l'UID.
L'utiliser comme ceci:
Basé sur la réponse de Thomas Matthews dans un discussion similaire.
warning: left shift count >= width of type hex_num = mfrc522.uid.uidByte[0] << 24
OriginalL'auteur Pwdr
vous pouvez l'obtenir en faisant cela:
et c'est un byte[10]
OriginalL'auteur Pontios
J'ai trouvé une autre façon.
Dans la bibliothèque MFRC522.cpp à ligne 1391
J'ai fait une autre fonction de cet appel de fonction:
PICC_DumpDetailsToSerialUid(Uid *uid)
Il ressemble:
Vous pouvez mettre tous les où vous en avez besoin, je viens de le mettre à proximité des grandes fonctions de savoir où est.
Après l'ajout de cette fonction, vous devez aller dans MFRC522.h bibliothèque la ligne 409 et ajouter
Après ces deux éditions de la bibliothèque, vous pouvez appeler la fonction où vous voulez.
L'appeler dans un Arduino avec:
mfrc522.PICC_DumpDetailsToSerialUid(&(mfrc522.uid));
et vous avez une fonction juste pour le uide.Vous pouvez le faire avec d'autres fonctions si vous avez besoin d'autre chose.... Bonne chance 🙂
OriginalL'auteur athauf94