Le tutoriel d'aujourd'hui explique comment utiliser un lecteur RFID avec Arduino pour créer un système de verrouillage simple, en mots simples- Serrure RFID.
RFID (Eng. Radio Frequency IDentification, identification par radiofréquence) est une méthode d'identification automatique d'objets dans laquelle les données stockées dans des transpondeurs, ou étiquettes RFID, sont lues ou écrites à l'aide de signaux radio. Tout système RFID se compose d'un lecteur (lecteur, lecteur ou interrogateur) et d'un transpondeur (alias étiquette RFID, parfois le terme étiquette RFID est également utilisé).
Le tutoriel utilisera une étiquette RFID avec un Arduino. L'appareil lit l'identifiant unique (UID) de chaque étiquette RFID que nous plaçons à côté du lecteur et l'affiche sur l'écran OLED. Si l'UID de la balise est égal à la valeur prédéfinie qui est stockée dans la mémoire Arduino, nous verrons alors le message "Déverrouillé" sur l'écran. Si l'identifiant unique n'est pas égal à la valeur prédéfinie, le message "Déverrouillé" n'apparaîtra pas - voir photo ci-dessous.
Le château est fermé
Le château est ouvert
Détails nécessaires pour créer ce projet :
- Lecteur RFID RC522
- Écran OLED
- Planche à pain
- fils
Détails supplémentaires:
- Batterie (banque d'alimentation)
Le coût total des composantes du projet était d'environ 15 $.
Étape 2 : Lecteur RFID RC522
Chaque tag RFID a une petite puce (carte blanche sur la photo). Si vous pointez une lampe de poche vers cette carte RFID, vous pouvez voir une petite puce et une bobine qui l'entoure. Cette puce n'a pas de batterie pour générer de l'énergie. Il reçoit l'alimentation du lecteur sans fil à l'aide de cette grande bobine. Il est possible de lire une carte RFID comme celle-ci jusqu'à 20 mm de distance.
La même puce existe dans les étiquettes de porte-clés RFID.
Chaque étiquette RFID a un numéro unique qui l'identifie. C'est l'UID qui s'affiche sur l'écran OLED. A l'exception de cet UID, chaque tag peut stocker des données. Ce type de carte peut stocker jusqu'à 1 000 données. Impressionnant, n'est-ce pas ? Cette fonctionnalité ne sera pas utilisée aujourd'hui. Aujourd'hui, tout ce qui nous intéresse est l'identification d'une carte particulière par son UID. Le lecteur RFID et ces deux cartes RFID coûtent environ 4 $.
Étape 3Écran OLED
Le didacticiel utilise un moniteur OLED 0,96" 128x64 I2C.
C'est un très bon écran à utiliser avec Arduino. C'est un écran OLED et cela signifie qu'il a une faible consommation d'énergie. La consommation électrique de cet écran est d'environ 10-20mA et cela dépend du nombre de pixels.
L'écran a une résolution de 128 par 64 pixels et est de petite taille. Il existe deux options d'affichage. L'un d'eux est monochrome, et l'autre, comme celui utilisé dans le tutoriel, peut afficher deux couleurs : jaune et bleu. Le haut de l'écran ne peut être que jaune et le bas bleu.
Cet écran OLED est très lumineux et dispose d'une grande et très belle bibliothèque qu'Adafruit a développée pour cet écran. En plus de cela, l'écran utilise une interface I2C, donc la connexion à l'Arduino est incroyablement facile.
Vous n'avez besoin de connecter que deux fils à l'exception de Vcc et GND. Si vous êtes nouveau sur Arduino et que vous souhaitez utiliser un affichage peu coûteux et simple dans votre projet, commencez ici.
Étape 4 : Assembler toutes les pièces
La communication avec la carte Arduino Uno est très simple. Tout d'abord, connectez l'alimentation au lecteur et à l'écran.
Attention, le lecteur RFID doit être branché sur la sortie 3.3V de l'Arduino Uno sinon il sera endommagé.
Étant donné que l'affichage peut également fonctionner à 3,3 V, nous connectons le VCC des deux modules au rail positif de la planche à pain. Ce rail est ensuite connecté à la sortie 3.3V de l'Arduino Uno. Ensuite, nous connectons les deux masses (GND) au bus de masse de la planche à pain. Nous connectons ensuite le bus GND de la planche à pain au GND Arduino.
Affichage OLED → Arduino
SCL → Broche analogique 5
SDA → Broche analogique 4
Lecteur RFID → Arduino
RST → Broche numérique 9
IRQ → Non connecté
MISO → Broche numérique 12
MOSI → Broche numérique 11
SCK → Broche numérique 13
SDA → Broche numérique 10
Le module lecteur RFID utilise l'interface SPI pour communiquer avec l'Arduino. Nous allons donc utiliser les broches SPI du matériel Arduino UNO.
La broche RST va à la broche numérique 9. La broche IRQ reste déconnectée. La broche MISO va à la broche numérique 12. La broche MOSI va à la broche numérique 11. La broche SCK va à la broche numérique 13, et enfin la broche SDA va à la broche numérique 10. C'est tout.
Lecteur RFID connecté. Nous devons maintenant connecter l'écran OLED à l'Arduino à l'aide de l'interface I2C. Ainsi, la broche SCL sur l'écran passe à la broche analogique 5 et la broche SDA sur l'écran à la broche analogique 4. Si nous allumons maintenant le projet et plaçons la carte RFID à côté du lecteur, nous pouvons voir que le projet fonctionne correctement.
Étape 5 : Code du projet
Pour que le code du projet soit compilé, nous devons inclure certaines bibliothèques. Tout d'abord, nous avons besoin de la bibliothèque MFRC522 Rfid.
Pour l'installer, rendez-vous sur Sketch -> Inclure les bibliothèques -> Gérer les bibliothèques(Gestion des bibliothèques). Trouvez MFRC522 et installez-le.
Nous avons également besoin de la bibliothèque Adafruit SSD1306 et de la bibliothèque Adafruit GFX pour l'affichage.
Installez les deux bibliothèques. La bibliothèque Adafruit SSD1306 nécessite une petite modification. Aller au dossier Arduino -> Bibliothèques, ouvrez le dossier Adafruit SSD1306 et modifiez la bibliothèque Adafruit_SSD1306.h. Commentez la ligne 70 et décommentez la ligne 69 car L'écran a une résolution de 128x64.
Tout d'abord, nous déclarons la valeur du tag RFID que l'Arduino doit reconnaître. C'est un tableau d'entiers :
code entier = (69,141,8,136); // UID
Nous initialisons alors le lecteur RFID et affichons :
Rfid.PCD_Init(); display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
Après cela, dans la fonction de boucle, nous vérifions le tag sur le lecteur toutes les 100 ms.
Si le lecteur a une étiquette, nous lisons son UID et l'imprimons sur l'écran. Nous comparons ensuite l'UID de la balise que nous venons de lire avec la valeur stockée dans la variable de code. Si les valeurs sont les mêmes, nous affichons le message UNLOCK, sinon nous n'afficherons pas ce message.
If(match) ( Serial.println("\nJe connais cette carte !"); printUnlockMessage(); )else ( Serial.println("\nCarte inconnue"); )
Bien sûr, vous pouvez modifier ce code pour stocker plus d'une valeur UID afin que le projet reconnaisse plus d'étiquettes RFID. C'est juste un exemple.
Code de projet:
#comprendre Comme vous pouvez le voir dans la leçon - pour peu d'argent, vous pouvez ajouter un lecteur RFID à vos projets. Vous pouvez facilement créer un système de sécurité avec ce lecteur ou créer des projets plus intéressants, par exemple, afin que les données d'une clé USB ne soient lues qu'après le déverrouillage. Je revoyais The Amazing Spider-Man l'autre jour et dans une scène, Peter Parker ouvre et ferme à distance la porte de son ordinateur portable. Dès que j'ai vu cela, j'ai immédiatement réalisé que j'avais besoin d'une telle serrure électronique sur la porte d'entrée. Après un peu de bricolage, j'ai assemblé un modèle de travail d'une serrure intelligente. Dans cet article, je vais vous dire comment je l'ai collecté. Pour assembler une serrure électronique sur Arduino, vous aurez besoin du matériel suivant : Électronique: Composants: Outils: L'idée est que je peux ouvrir ou fermer la porte sans clé, et sans même y aller. Mais ce n'est que l'idée de base, car vous pouvez ajouter un capteur de cliquetis pour réagir à un coup spécial, ou vous pouvez ajouter un système de reconnaissance vocale ! Un levier d'asservissement connecté au pêne fermera (0°) et ouvrira (60°) le pêne à l'aide des commandes reçues via le module Bluetooth. Commençons par connecter le servo à la carte Arduino (je tiens à noter que même si j'utilise une carte Arduino Nano, le brochage est exactement le même sur la carte Uno). Je vous conseille de tester le servo avant de procéder au montage. Pour ce faire, dans le programme Arduino IDE, sélectionnez Sweep dans les exemples. Après s'être assuré que le servo fonctionne, nous pouvons connecter le module Bluetooth. Vous devez connecter la broche rx du module Bluetooth à la broche tx de l'Arduino, et la broche tx du module à la broche rx de l'Arduino. Mais ne le faites pas tout de suite ! Une fois ces connexions soudées, vous ne pourrez plus télécharger de codes sur l'Arduino, alors téléchargez d'abord tous vos codes et ensuite seulement soudez les connexions. Voici le schéma de connexion du module et du microcontrôleur : Si l'explication n'est pas claire pour vous, suivez le schéma de câblage fourni. Maintenant que nous avons toutes les pièces de travail, assurons-nous que le servo peut déplacer le loquet. Avant de monter le loquet sur la porte, j'ai assemblé un échantillon de test pour m'assurer que le servo était suffisamment solide. Au début, il m'a semblé que mon servo était faible et j'ai ajouté une goutte d'huile dans le verrou, après cela tout a bien fonctionné. Il est très important que le mécanisme coulisse bien, sinon vous risquez d'être enfermé dans votre chambre. J'ai décidé de ne mettre que le contrôleur et le module Bluetooth dans le boîtier, et de laisser le servo à l'extérieur. Pour ce faire, sur un morceau de carton, tracez le contour de la carte Arduino Nano et ajoutez 1 cm d'espace autour du périmètre et découpez-le. Après cela, nous avons également découpé cinq autres côtés du corps. Dans le mur avant, vous devrez percer un trou pour le cordon d'alimentation du contrôleur. Dimensions des côtés du boîtier : Pour contrôler le contrôleur, vous avez besoin d'un gadget Android ou Windows avec Bluetooth intégré. Je n'ai pas eu l'occasion de tester l'application sur des appareils Apple, peut-être que certains pilotes seront nécessaires. Je suis sûr que certains d'entre vous ont l'occasion de le vérifier. Pour Android, téléchargez l'application Bluetooth Terminal, pour Windows, téléchargez TeraTerm. Ensuite, vous devez connecter le module à votre smartphone, le nom doit être linvor, le mot de passe doit être 0000 ou 1234. Une fois l'appairage établi, ouvrez l'application installée, entrez les options et sélectionnez "Établir une connexion (non sécurisée)". Votre smartphone est maintenant le moniteur série Arduino, ce qui signifie que vous pouvez communiquer avec le contrôleur. Si vous entrez 0, la porte se fermera et l'écran du smartphone affichera le message "Porte fermée". Vous devez d'abord connecter le servo au loquet. Pour ce faire, coupez les bouchons des trous de montage du boîtier d'entraînement. Si nous mettons un servo, les trous de montage doivent être au ras du loquet. Ensuite, vous devez placer le levier d'asservissement dans la fente du loquet, là où se trouvait la poignée du loquet. Vérifiez comment le verrou se déplace dans le boîtier. Si tout est OK, fixez le levier du servo avec de la colle. Maintenant, vous devez percer des avant-trous dans la porte pour les vis. Pour ce faire, fixez le loquet à la porte et marquez les trous pour les vis sur le vantail de la porte avec un crayon. Percez des trous pour les vis d'environ 2,5 cm de profondeur aux endroits marqués. Fixez le loquet et fixez-le avec des vis. Vérifiez à nouveau le servo. Pour compléter l'appareil, vous aurez besoin d'une alimentation, d'un cordon et d'une prise mini usb pour vous connecter à l'Arduino. #include Servo monservo ; entier pos = 0 ; état entier ; drapeau entier=0 ; void setup() ( myservo.attach(9); Serial.begin(9600); myservo.write(60); delay(1000); ) void loop() ( if(Serial.available() > 0) ( state = Serial.read(); flag=0; ) // si l'état est "0", le moteur à courant continu s'éteindra si (state == "0") ( myservo.write(8); delay(1000); Serial. println("Porte verrouillée"); ) else if (state == "1") ( myservo.write(55); delay(1000); Serial.println("Porte déverrouillée"); ) ) Profitez de votre verrouillage à distance et n'oubliez pas d'enfermer "accidentellement" vos amis dans la pièce. Après avoir fouillé dans les brocantes chinoises et ebay, je n'ai rien trouvé de bon marché et de plus ou moins sérieux et j'ai décidé de le fabriquer moi-même. Je ferai tout de suite une réserve sur le fait que la plate-forme Arduino a été choisie pour sa simplicité, car il n'y avait aucune expérience avec les microcontrôleurs. Total: 33,5 $ et 350 roubles. Pas si peu, me direz-vous, et vous aurez certainement raison, mais il faut payer pour le plaisir ! Et c'est toujours agréable de collectionner quelque chose de ses propres mains. De plus, le prix de la conception peut être considérablement réduit si vous utilisez un MK nu sans Arduino. Vidéo du processus de fonctionnement de l'appareil : Après avoir fouillé dans les brocantes chinoises et ebay, je n'ai rien trouvé de bon marché et de plus ou moins sérieux et j'ai décidé de le fabriquer moi-même. Je ferai tout de suite une réserve sur le fait que la plate-forme Arduino a été choisie pour sa simplicité, car il n'y avait aucune expérience avec les microcontrôleurs. Total: 33,5 $ et 350 roubles. Pas si peu, me direz-vous, et vous aurez certainement raison, mais il faut payer pour le plaisir ! Et c'est toujours agréable de collectionner quelque chose de ses propres mains. De plus, le prix de la conception peut être considérablement réduit si vous utilisez un MK nu sans Arduino. Vidéo du processus de fonctionnement de l'appareil : Dans cet article, je vais vous montrer comment fabriquer une serrure à combinaison à partir d'arduino. Pour ce faire, nous avons besoin de LED rouges et vertes, d'un buzzer, d'un arduino nano, d'un écran LCD avec un convertisseur I2C, d'un servo et d'un clavier matriciel 4x4. Lorsqu'il est allumé, l'écran écrira "Entrez le code.", la LED rouge s'allume, et que le vert s'éteint, le servo sera réglé sur 0°. Lorsque des chiffres sont saisis, * s'allume sur l'affichage. Si le code n'est pas entré correctement, l'écran affichera "Entrer code.". Si le code est correct, un bip retentira, le servo tournera à 180°, l'écran affichera "Open". la LED verte s'allume, et le rouge s'éteindra. Après 3 secondes, le servo reviendra à position de départ, la LED rouge s'allumera et la LED verte s'éteindra, l'écran écrira "Fermer.", puis l'écran écrira "Entrez le code.". Maintenant sur le schéma. Tout d'abord, nous connectons l'arduino avec des fils à la planche à pain (contacts d'alimentation). Ensuite, nous connectons un clavier matriciel aux contacts D9 - D2. Puis le servo. Nous le connectons à la broche 10. LED rouge à la broche 11. Vert - à la broche 12. Buzzer - à la broche 13. Téléchargez maintenant le croquis. #comprendre C'est tout. Profitez de la serrure à code ! Arduino Nano 3.0 220 ohms AL102G AL307GÉtape 6 : résultat final
Étape 1 : Liste des matériaux
Étape 2 : Comment fonctionne la serrure
Étape 3 : Schéma de câblage
Étape 4 : Tester
Étape 5 : Enceinte pour les composants électriques
Étape 6 : Candidature
Si vous entrez 1, vous verrez la porte s'ouvrir et le message "Porte ouverte" apparaîtra à l'écran.
Sous Windows, le processus est le même, sauf que vous devez installer l'application TeraTerm.Étape 7 : Montez le boulon
Étape 8 : Alimentation
Connectez la borne de terre de l'alimentation à la borne de terre du port mini usb, connectez le fil rouge au fil rouge du port mini usb, puis faites passer le fil de la serrure à la charnière de la porte, et de là à la prise .Étape 9 : Coder
Étape 10 : Verrouillage Arduino terminé
Idée
Sur la porte, à l'extérieur de la porte, il devrait y avoir un clavier sur lequel le mot de passe est entré, et le reste de la structure est fixé à l'intérieur. Un interrupteur à lames est utilisé pour contrôler la fermeture complète de la porte. En quittant le bureau, une personne appuie sur « * » sur le clavier et, sans attendre que la porte se ferme, le ferme-porte vaque à ses occupations, lorsque la porte est complètement fermée, l'interrupteur à lames se fermera et la serrure sera fermée. La porte s'ouvre en saisissant un mot de passe à 4 chiffres et en appuyant sur "#". Accessoires
Arduino UNO = 18 $
Protoshield Arduino + planche à pain = 6 $
L293D = 1 $
Faisceau de fils 30pcs pour bredboard = 4 $
2 prises RJ45 = 4 $
2 prises RJ45 = 0,5 $
actionneur de verrouillage central = 250 roubles.
Interrupteur à lames = arraché gratuitement de l'ancienne fenêtre.
Espagnolette métal tailles gigantesques = gratuit
Boîtier d'un ancien moyeu D-LINK en fer de 1,5 mm = gratuit
Alimentation depuis le même hub D-LINK pour 12 et 5v = également gratuite
Un tas de vis et d'écrous pour fixer tout ça au boîtier = 100 roubles.
Le panneau de contrôle du système d'alarme de sécurité = gratuit. Préparation du montage
Je voudrais dire quelques mots sur l'achat d'un élément clé de la conception de l'actionneur. Dans un magasin automobile local, ils m'ont proposé deux types d'actionneurs : "avec deux fils et avec cinq". Selon la vendeuse, ils étaient exactement les mêmes et la différence du nombre de fils ne signifiait absolument rien. Cependant, comme il s'est avéré plus tard, ce n'est pas le cas! J'ai choisi un appareil à deux fils, il était alimenté en 12v. La conception à cinq fils comporte des interrupteurs de fin de course pour contrôler le mouvement du levier. Je me suis rendu compte que j'avais acheté le mauvais modèle uniquement lorsque je l'ai démonté et qu'il était trop tard pour le changer. La course du levier s'est avérée trop courte pour pousser correctement le loquet, il a donc fallu le modifier un peu, à savoir retirer deux rondelles en caoutchouc raccourcissant la course du levier de l'actionneur. Pour ce faire, le corps devait être scié avec une scie à métaux ordinaire, car la deuxième rondelle était à l'intérieur. Le ruban adhésif bleu pour nous, comme toujours, nous a aidés plus tard lors du remontage.
Pour contrôler le moteur de l'actionneur, le pilote de moteur L293D a été utilisé, qui peut supporter une charge de pointe allant jusqu'à 1200 mA, dans notre cas, lorsque le moteur de l'actionneur a été arrêté, la charge de pointe a augmenté à seulement 600 mA.
Les contacts du clavier, du haut-parleur et de deux LED ont été retirés du panneau de commande de l'alarme de sécurité. La télécommande et l'appareil principal devaient être connectés à l'aide d'une paire torsadée et de connecteurs RJ45 Programmation.
Donc, comme je n'ai eu aucune expérience avec la programmation Arduino jusqu'à présent. J'ai profité des développements d'autres personnes et des articles du site arduino.cc. Qui s'en soucie, peut regarder ce code laid :) Photo et vidéo
Arduino et actionneur
Source de courant
Clavier
Espagnolette (relié à l'actionneur par une aiguille métallique et sur lequel on met du thermorétractable pour la beauté)Idée
Sur la porte, à l'extérieur de la porte, il devrait y avoir un clavier sur lequel le mot de passe est entré, et le reste de la structure est fixé à l'intérieur. Un interrupteur à lames est utilisé pour contrôler la fermeture complète de la porte. En quittant le bureau, une personne appuie sur « * » sur le clavier et, sans attendre que la porte se ferme, le ferme-porte vaque à ses occupations, lorsque la porte est complètement fermée, l'interrupteur à lames se fermera et la serrure sera fermée. La porte s'ouvre en saisissant un mot de passe à 4 chiffres et en appuyant sur "#". Accessoires
Arduino UNO = 18 $
Protoshield Arduino + planche à pain = 6 $
L293D = 1 $
Faisceau de fils 30pcs pour bredboard = 4 $
2 prises RJ45 = 4 $
2 prises RJ45 = 0,5 $
actionneur serrure centrale= 250 roubles.
Interrupteur à lames = arraché gratuitement de l'ancienne fenêtre.
Espagnolette métal taille géante= gratuit
Boîtier d'un ancien moyeu D-LINK en fer de 1,5 mm = gratuit
Alimentation depuis le même hub D-LINK pour 12 et 5v = également gratuite
Un tas de vis et d'écrous pour fixer tout ça au boîtier = 100 roubles.
Panneau de contrôle de alarme= gratuit. Préparation du montage
Je voudrais dire quelques mots sur l'achat d'un élément clé de la conception de l'actionneur. Dans un magasin automobile local, ils m'ont proposé deux types d'actionneurs : "avec deux fils et avec cinq". Selon la vendeuse, ils étaient exactement les mêmes et la différence du nombre de fils ne signifiait absolument rien. Cependant, comme il s'est avéré plus tard, ce n'est pas le cas! J'ai choisi un appareil à deux fils, il était alimenté en 12v. La conception à cinq fils comporte des interrupteurs de fin de course pour contrôler le mouvement du levier. Je me suis rendu compte que j'avais acheté le mauvais modèle uniquement lorsque je l'ai démonté et qu'il était trop tard pour le changer. La course du levier s'est avérée trop courte pour pousser correctement le loquet, il a donc fallu le modifier un peu, à savoir retirer deux rondelles en caoutchouc raccourcissant la course du levier de l'actionneur. Pour ce faire, le corps devait être scié avec une scie à métaux ordinaire, car la deuxième rondelle était à l'intérieur. Le ruban adhésif bleu pour nous, comme toujours, nous a aidés plus tard lors du remontage.
Pour contrôler le moteur de l'actionneur, le pilote de moteur L293D a été utilisé, qui peut supporter une charge de pointe allant jusqu'à 1200 mA, dans notre cas, lorsque le moteur de l'actionneur a été arrêté, la charge de pointe a augmenté à seulement 600 mA.
Les contacts du clavier, du haut-parleur et de deux LED ont été retirés du panneau de commande de l'alarme de sécurité. La télécommande et l'appareil principal devaient être connectés à l'aide d'une paire torsadée et de connecteurs RJ45 Programmation.
Donc, comme je n'ai eu aucune expérience avec la programmation Arduino jusqu'à présent. J'ai profité des développements d'autres personnes et des articles du site arduino.cc. Qui s'en soucie, peut regarder ce code laid :) Photo et vidéo
Arduino et actionneur
Source de courant
Clavier
Espagnolette (relié à l'actionneur par une aiguille métallique et sur lequel on met du thermorétractable pour la beauté)Liste des éléments radio
La désignation
Type de
Dénomination
Quantité
Noter Score Mon bloc-notes
E1
Carte Arduino 1
5V
Vers le bloc-notes
E8, E9
Résistance 2
CMS
Vers le bloc-notes
E6
Diode électro-luminescente 1
Rouge
Vers le bloc-notes
E7
Diode électro-luminescente 1
Vert
Vers le bloc-notes
E3
affichage LCD Avec interface I2C 1
Rétroéclairage vert
Vers le bloc-notes
E5
Servomoteur SG90 1
180 degrés
Vers le bloc-notes
E2
Avertisseur sonore 5V 1
Bu
Vers le bloc-notes
E4
Clavier 4x4 1
matrice
Vers le bloc-notes
Pas
Planche à pain 640 points 1
sans soudure