RFID-Kit - Lesen und Schreiben (2/3) - AZ-Delivery

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

 

Projekte für anfänger

1 commentaire

Solderdot

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.

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Articles de blog recommandés

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery