Lire les étiquettes RFID avec un Arduino (5 / 5 étapes)

Étape 5: Croquis Final

Alors, à ce stade, vous devriez avoir un identificateur unique pour votre tag RFID. Nous allons insérer t dans le code ci-dessous. Je ne vais pas expliquer comment fonctionne le code. J’ai laisser cela comme un exercice pour vous.

Bon, n’oubliez pas lorsque nous avons connecté ID-12 broche 9 à la RX Arduno. Nous allons libérer la broche RX et déplacer cette connexion à la borne numérique 4. C’est tout !

Maintenant, prenez votre identificateur unique, couper les deux derniers caractères, donc vous vous retrouvez avec 10 caractères. Par exemple, j’ai lu 2900940E9526 comme mon identifiant. Donc, je vais utiliser 2900940E95. 26 est l’ID checksum. Ne vous inquiétez pas à ce sujet. Insérez votre identifiant dans le code ci-dessous où il est dit [insérer l’identifiant ici]. Vous pouvez également ajouter votre nom à la [ADD YOUR NAME HERE].

--------------------------------------------------------------------------------------------------------------------------------
/**
* Contrôle d’accès RFID
*
* Certains de ce code a été inspiré par tutoriel RFID de Tom Igoe
* À partir de l’exemple de code ID-12 sur l’aire de jeu pour Arduino
* Et fortement basé sur le projet de Jonathan Oxer à :
* http://www.practicalarduino.com/projects/medium/rfid-access-control
*/

Configurer la connexion en série au module lecteur RFID. Afin de
garder les broches Arduino TX et RX libres pour communiquer avec un hôte,
l’esquisse utilise la bibliothèque SoftwareSerial pour implémenter serial
communications sur les autres broches.
#include

Broche TX du module RFID doit être connecté à l’Arduino.

#define rxPin 4
#define txPin 5

Créer un objet de série de logiciels pour la connexion au module RFID
Rfid SoftwareSerial = SoftwareSerial (rxPin, txPin) ;

Mettre en place des sorties
#define futureOutput 12
#define ledPin 13

Spécifier combien de temps la sortie se tiendrait.
#define unlockSeconds 2

La base de données de la balise est constitué de deux parties. La première partie est un tableau de
valeurs de balise avec chaque étiquette reprenant 5 octets. La seconde est une liste de
les noms avec un seul nom pour chaque balise (c’est à dire: groupe de 5 octets). Vous pouvez étendre votre
ou rétrécir cela comme bon vous semble. Tags 2 et 3 ne sont là que par exemple.
char * allowedTags [] = {}
« [Insérer identificateur ici] », / / Tag 1
« 2900940E95 », / / Tag 2
« ABC123DE45 », / / Tag 3
};

Liste de noms à associer à l’ID de la balise correspondante
char * tagName [] = {}
« [Ajoutez votre nom ici] », / / Tag 1
« Mark Trussell », / / Tag 2
"Nom 3", / / Tag 3
};

Vérifier le nombre de balises définies
int numberOfTags = sizeof(allowedTags)/sizeof(allowedTags[0]) ;

int incomingByte = 0 ; Pour stocker les données entrantes en série

/**
* Le programme d’installation
*/
void setup() {}
pinMode (ledPin, sortie) ;
digitalWrite (ledPin, basse) ;
pinMode (futureOutput, sortie) ;
digitalWrite (futureOutput, basse) ;

Serial.Begin(9600) ; Port série pour la connexion à l’hôte
RFID.Begin(9600) ; Port série pour la connexion au module RFID

Serial.println ("RFID Reader initialisée") ;
}

/**
* Boucle
*/
void loop() {}
octet i = 0 ;
octet val = 0 ;
somme de contrôle octet = 0 ;
bytesRead octets = 0 ;
tempByte octets = 0 ;
tagBytes Byte [6] ; Tags « Uniques » sont seulement 5 octets, mais il nous faut un octet supplémentaire pour la somme de contrôle
char tagValue [10] ;

Lire à partir du module RFID. Parce que cette connexion utilise SoftwareSerial
Il n’y a pas d’équivalent à la fonction Serial.available(), tant en ce
Pointez les blocs de programme pendant que vous attendez d’une valeur à partir du module
Si ((val = rfid.read()) == 2) {/ / Check pour en-tête
bytesRead = 0 ;
tandis que (bytesRead < 12) {/ / lecture de 10 chiffres + somme de contrôle à 2 chiffres
Val = rfid.read() ;

Ajoutez les 10 premiers octets (0 à 9) à la valeur de la balise brut
Si (bytesRead < 10)
{
tagValue [bytesRead] = val ;
}

Vérifier si il s’agit d’un octet d’en-tête ou stop avant les 10 chiffres de lecture sont terminée
Si ((val == 0x0D) || (val == 0x0A) || (val == 0 x 03) || (Val == 0x02)) {
rupture ; Arrêtez de lire
}

Conversion ASCII/Hex :
Si ((val > = « 0 ») & & (val < = « 9 »)) {}
Val = val - « 0 » ;
}
ElseIf ((val > = « A ») & & (val < = « F »)) {}
Val = 10 + val - « A » ;
}

Tous deux chiffres hex, ajoutez un octet dans le code :
Si (bytesRead & 1 == 1) {}
Faire de la place pour ce chiffres hexadécimaux en déplaçant le chiffre précédent 4 bits vers la gauche
tagBytes [bytesRead >> 1] = (val | (tempByte << 4)) ;

Si (bytesRead >> 1! = 5) {/ / si nous sommes à l’octet de somme de contrôle,
somme de contrôle ^ = tagBytes [bytesRead >> 1] ; Calculer la somme de contrôle... (XOR)
};
} else {}
tempByte = val ; Stocker le premier chiffre hexadécimal tout d’abord
};

bytesRead ++ ; Prêt à lire le chiffre suivant
}

Envoyer le résultat à l’hôte connecté via USB
Si (bytesRead == 12) {/ / à 12 chiffres lire est terminée
tagValue [10] = « \0 » ; Terminez la chaîne

Serial.Print ("Tag lire:") ;
pour (i = 0; i < 5; i ++) {}
Ajouter un 0 pour remplir des valeurs inférieures à 16
Si (tagBytes [i] < 16) {}
Serial.Print("0") ;
}
Serial.Print (tagBytes [i], HEX) ;
}
Serial.println() ;

Serial.Print ("somme de contrôle:") ;
Serial.Print (tagBytes [5], HEX) ;
Serial.println (tagBytes [5] == checksum ? «--passé. ":"--erreur. ") ;

Indiquer la valeur de la balise brut
Serial.Print ("valeur:") ;
Serial.println(tagValue) ;

Recherchez la base de données balise cette balise particulière
tagId int = findTag (tagValue) ;

Tirer que la gâche ce tag a été trouvé dans la base de données
Si (tagId > 0)
{
Serial.Print ("Authorized tag ID") ;
Serial.Print(tagId) ;
Serial.Print (": Debloquer pour") ;
Serial.println (tagName [tagId - 1]) ; Obtenir le nom pour ce mot-clé de la base de données
Unlock() ; Feu la gâche pour ouvrir la serrure
} else {}
Serial.println ("Tag non autorisé ») ;
}
Serial.println() ; Ligne de séparation blanc en sortie
}

bytesRead = 0 ;
}
}

/**
* Feu le relais pour activer la gâche pour le configuré
* nombre de secondes.
*/
void unlock() {}
digitalWrite (ledPin, HIGH) ;
digitalWrite (futureOutput, HIGH) ;
Delay(unlockSeconds * 1000) ;
digitalWrite (futureOutput, basse) ;
digitalWrite (ledPin, basse) ;
}

/**
* Rechercher une balise spécifique dans la base de données
*/
int findTag (char tagValue [10]) {}
pour (int thisCard = 0; thisCard < numberOfTags ; thisCard ++) {}
Vérifier si la valeur de la balise correspond à cette ligne dans la base de données de la balise
Si (strcmp (tagValue, allowedTags[thisCard]) == 0)
{
La ligne dans les base de données dès 0, donc ajouter 1 au résultat donc
que l’ID de la carte commence à partir de 1 place (0 représente « aucune correspondance »)
Return (thisCard + 1) ;
}
}
Si nous ne trouvons pas la balise retour un ID de la balise de 0 pour montrer il y a pas de match
Return(0) ;
}
--------------------------------------------------------------------------------------------------------------------------------

Articles Liés

Jouer les fichiers audio avec votre arduino

Jouer les fichiers audio avec votre arduino

Vous pouvez lire des fichiers mp3 avec votre arduino !Comment ? ->Vous avez seulement besoin de regarder cette vidéo : http://bit.ly/1LS4IapÉtape 1: matériauxvous avez seulement besoin de ces choses :-micro sd-bouclier avec fente pour carte sd-Commen
Comment contrôler les Servo moteurs avec un Arduino

Comment contrôler les Servo moteurs avec un Arduino

Ce projet de miniatures vous montrera comment contrôler un moteur servo avec un Arduino, mais vous devez d'abord savoir ce qu'un moteur d'asservissement est en réalité !Servo-moteurs sont des types spéciaux de moteurs qui ne tournent autour en cercle
Contrôler les deux LEDS avec un Arduino et bitVoicer

Contrôler les deux LEDS avec un Arduino et bitVoicer

Donc ce que je veux faire ici est de faire plusieurs choses avec deux LEDs avec reconnaissance vocaleJ'utilise bitvoicer, vous pouvez l'obtenir iciÉtape 1: Liste des piècesAlors j'ai fais cela avec comme peu de pièces que je peux, voici la liste :LED
Comment lire les fichiers .aiff avec C

Comment lire les fichiers .aiff avec C

le but de ces instructions est de vous montrer comment lire un fichier audio .aiff. Comme tous les autres fichiers binaires, fichiers .aiff est aussi est constitué de segments de mémoire différent. Ce tutoriel va lire à travers le bloc commun du fich
Comment utiliser les interrupteurs photo avec votre ARDUINO

Comment utiliser les interrupteurs photo avec votre ARDUINO

Un différentiel de photo est un dispositif qui se compose d'un infrarouge led et un transistor photo avec un écart entre les deux d'entre eux, lorsque quelque chose est placé entre l'écart de que la lumière est coupée et la circulation du courant à t
Un jouet pour chien RFID avec sons

Un jouet pour chien RFID avec sons

Pour ma maîtrise en thèse de Design d'Interaction à l'Université de Malmö (Suède), j'ai construit un jouet pour chien prototype qui attrappe le bruit et l'odeur. J'ai commencé avec un prototype de lo-fi, y compris un jouet mou dans lequel je pouvais
Jouer des mp3 avec votre arduino (simple)

Jouer des mp3 avec votre arduino (simple)

Vous pouvez lire des fichiers mp3 avec votre arduino !vous avez seulement besoin d'un bouclier ethernet et une carte micro sd !Étape 1: matériauxvous avez seulement besoin de ces choses :-micro sd-bouclier avec fente pour carte sd-Commentaires du pré
Comment lire les tablatures de guitare

Comment lire les tablatures de guitare

si vous voulez apprendre à jouer de la guitare ? Eh bien, vous êtes au bon endroit ! « Quels sont les tablatures de guitare? », vous pouvez demander.  Tablatures de guitare sont une version plus facile des partitions, écrite juste pour guitare. Tabla
Retirer les étiquettes de prix de livres - Comparaison de 3 méthodes

Retirer les étiquettes de prix de livres - Comparaison de 3 méthodes

tout le monde déteste quand les étiquettes de prix ne peut être complètement retirés de livres. Parfois il peut être enlevé proprement sans laisser de résidu, mais plus souvent au moins une partie des résidus séjours et colle à doigts, papier...J'ai
AVR/Arduino lecteur RFID avec UART Code en C

AVR/Arduino lecteur RFID avec UART Code en C

RFID est la folie, trouvée partout - des systèmes d'inventaire pour les systèmes d'identification insigne. Si vous avez déjà été à un grand magasin et marchait à travers ces métaux-détecteur-regarder des choses aux points d'entrée/sortie, puis vous a
Convertir votre Machine POP/boisson pour utiliser RFID avec Arduino

Convertir votre Machine POP/boisson pour utiliser RFID avec Arduino

Il s'agit de mon premier instructable donc tout commentaire utile est appréciés. J'ai commencé ce projet il y a un an.J'ai commencé à chercher comment utiliser arduino pour contrôler une machine distributrice et j'ai trouvé un projet qui sans elle qu
Serrure de porte RFID avec Arduino

Serrure de porte RFID avec Arduino

Nous voici avec la serrure RFID classique. C' est classique en ce sens « Nous vivons dans l'avenir et considérer pour acquis à ce stade » entiers. Dans ce tutoriel, nous allons configurer un loquet de porte qui s'ouvre avec le coup d'une étiquette RF
Comment utiliser Inkscape pour les étiquettes de l’Arduino et projets

Comment utiliser Inkscape pour les étiquettes de l’Arduino et projets

Il y a un an je suis tombé sur un article dans les noix et les Volts Magazine faire professionnels regardant panneaux pour les projets. L'article est en ligne et il explique beaucoup mieux que je peux, avec beaucoup plus de détails. Je vous invite à
Jeux avec les pensées/Mindwaves (w / Arduino)

Jeux avec les pensées/Mindwaves (w / Arduino)

Ce que vous pensez pourquoi nous aimons les jeux vidéo ? La réponse n'est pas difficile : les jeux vidéo nous montre, extrêmement bon défis. J'ai jouer jeux vidéo rarement, mais mes préférés sont les courses de voitures et jeux de monde ouvert tout c