Notre Blogpost actuel est la deuxième partie avec le sujet "Lecture et Lettre avec RFID-Kit" dans la rangée en 3 parties à le nôtre RFID-Kit:
A la fin de ces 3 jours, tu sauras :
- Que le nôtre RFID-Kit sache et comme tu l'aménages
- Comme tu avec le nôtre RFID-Kit écrivent et peux lire
- Comme cela avec le nôtre RFID-Kit est possible d'installer un droit d'accès informatique
RFID Lecture et lettre
Les opérations fondamentales lors de l'application d'un module RFID sont les sélections des données de RFID Transponder et la lettre d'ebendiesem.
Dans cette poste, nous effectuerons deux pas à pas et expliquer.
Les bases à la technique RFID, le fait de brancher le module et l'installation ici utilisaient Library si explique Blog précédant en ce qui concerne le contenu la poste Introduction RFID.
Pour la lecture, et aussi pour la lettre, RFID Transponder est demandé. Chez nous les disponibles RFID Kit on livre avec les deux, une puce et une carte clé. Lesquels tu utilises aucun rôle ne joue pour la programmation.
Devant la fonction de setup du sketch de lecture, nous importons Libraries nécessaires et définissons quelques-uns de Pins branchés (c'est-à-dire, ceux qui peuvent être choisis librement).
#include <SPI.h>
#include <MFRC522.h>
const uint8_t RST_PIN = 9;//reset pin
const uint8_t SS_PIN = 10;//serial data pin
Ensuite, nous mettons un objet MFRC522. Cela représente le module RFID branché dans le programme.
MFRC522 mfrc522 (SS_PIN, RST_PIN);//create MFRC522 instance
Dans setup la fonction, le lien en série avec le PC qui initialisent le module RFID et SPI (est construitSerial Peripheral l'interface l'autobus) Lien produit.
void setup () {
Serial.begin (9600);//le départ serial connection
SPI.begin ();//le départ l'autobus SPI
mfrc522. PCD_Init ();//init des modules RFID
}
Card la lecture ID
Code : Simsso/Arduino-Examples/RFID/ReadUID
La plus simple opération est les sélections unique identifiers (UID) de RFID Transponders. Pour que le module RFID cherche donc des Transpondern et dont UID lit, doivent en fonction de Loop les appels
mfrc522. PICC_IsNewCardPresent ();
mfrc522. PICC_ReadCardSerial ();
sont faits. Seulement après cela peut être utilisé UID. A UID, il s'agit d'un octet d'Array qui aident avec l'identification de Transponders. Array a la longueur 4 si bien que puissent exister en tout plus de quatre milliards d'UIDs différents. Dans Serial le moniteur peut être distribué ID finalement detektierten Transponders avec les lignes de code suivantes dans le format de Hex.
for (int i = 0; i < mfrc522.uid.size; i) {
Serial.print (mfrc522.uid.uidByte [i], PRATIQUE LA MAGIE);
Serial.print (" ");
}
La dépense paraît, par exemple, ainsi : 14 86 6E 7B
Entrepôt principal la lecture
Code : Simsso/Arduino-Examples/RFID/ReadStorage
L'entrepôt principal de nos Transponder se compose de 16 secteurs avec 4 blocs. Chacun de ces blocs contient 16 octets d'entrepôt. La cellule de mémoire totale fait 16·4·16 = 1024 octets (1 Ko). Un secteur se laisse avec la ligne de code
mfrc522.PICC_DumpMifareClassicSectorToSerial (& (mfrc522.uid), &key, sector);
simplement de manière formatée distribuent, et la variable sector l'index du secteur est, peut accepter donc des toutes de chiffres valeurs de 0 à 15. Key est produit plus tôt (cf. le code d'exemple dans le link). (Dans SerialMonitor indiqué) la dépense paraît, par exemple, ainsi :
0 3 00 00 00 00 00 00 DE PREMIERE QUALITE 07 80 69 DE PREMIERE QUALITE DE PREMIERE QUALITE DE PREMIERE QUALITE DE PREMIERE QUALITE DE PREMIERE QUALITE DE PREMIERE QUALITE [0 0 1]
2 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ]
1 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ]
0 B5 A3 2B 1B 26 08 04 00 62 63 64 65 66 67 68 69 [0 0 0]
Le contenu d'un bloc séparé peut être fini de lire avec la ligne de code suivante.
mfrc522. MIFARE_Read (blockAddress, mémoire tampon, &size);
Avec cela l'adresse de bloc est un chiffre de 0 à 63. La mémoire tampon est Array avec 16 2 octets de capacité d'entrepôt dans quoi une ligne des mentionnés ci-dessus est sauvegardée. Le dernier paramètre size si est un pointeur sur une variable semblable à la grandeur du remettant mémoire tampon Arrays est.
Données la lettre
Code : Simsso/Arduino-Examples/RFID/WriteFloat
La lettre des données sur Transponder est très semblable à la lecture. L'appel de fonction
mfrc522. MIFARE_Write (blockAddress, dataBlock, 16);
si écrit l'octet d'Array dataBlock, la longueur 16 a, dans le bloc avec le numéro blockAddress. Un numéro de secteur n'arrive pas ici parce que le bloc implique l'adresse celui-ci. Le bloc l'adresse devient, c'est-à-dire, continuellement hochgezählt, se trouve entre 0 et 63. Devant la lettre, on se doit analogiquement à la lecture authentifizieren, ce sont autres six lignes le code, vous au code Exemple peuvent retirer.
Finalement, dans ce paragraphe on encore montre, comme on - un peu plus fondé sur la pratique - une Variable de Float peut mémoriser. Float-, et aussi des variables de doublure se composent à Arduino de 4 octets (la référence https://www.arduino.cc/en/Reference/Double). Dans le code, une Variable de Float est initialisée en plus avec n'importe quelle valeur. Ensuite, un octet de pointeurs qui démontre l'adresse de la valeur (par exemple, d'un détecteur) est mis. Quatre octets de Float des variables est copié alors dans Byte-Array de la longueur 16 (la grandeur d'un bloc). C'est écrit avec la fonction appelée en haut dans le cinquième bloc de Transponderspeichers.
float temperature = 15.09f;
octet *tempBytes = (l'octet *) &temperature;
octet dataBlock [16] = {0};//initialize bloque la mémoire tampon with zeros
for (uint8_t i = 0; i < sizeof (float); i) {
dataBlock [i] = tempBytes [i];//copy l'octet from float variable into la mémoire tampon
}
état = (MFRC522 :: le code d'état) mfrc522. MIFARE_Write (5, dataBlock, 16);
Maintenant, avec ReadStorage mentionné en haut le sketch peut être fini de lire que les premiers quatre octets était mis dans le bloc 5. Ces valeurs correspondent dans le 32 bits d'IEEE 754 Format à la valeur 15,09.
5 L'A4 70 71 41 00 00 00 00 00 00 00 00 00 00 00 00 [ 0 0 0 ]
Dans notre Blog suivant en ce qui concerne le contenu la poste, nous expliquons, comme on avec le nôtre RFID-Kit un droit d'accès informatique peut bâtir. Tu trouves Tutorial en plus à partir de demain sur notre Blog sousaz-delivery.de, donc le mieux chaque jour à neuf passent voir autour de Tutorials captivants chaque jour et de super projets trouver!
Le tien
Equipe AZ-Delivery
1 commentaire
Solderdot
Servus!
Welche Ereignisse kann das modul über die IRQ-Leitung mitteilen und wie kann ich dieses Signal nutzen? Gibt es eine Möglichkeit, dass das RC522-Modul einen IRQ auslöst, wenn ein Tag aufgelegt wurde, so dass das rechenhzeitintensive Pollen entfallen kann?
Prinzipiell nutze ich das Modul auf einem Raspberry Pi unter Python. Eine allgemeine Beschreibung sollte ich ohne weiteres dort umsetzen können.