Restriction de l’accès aux appareils via Carte sans contact avec le NodeMCU et le module RC522

Dans cette série à composantes multiples, nous nous sommes engagés à utiliser le module RFID - rc522 relativement mature pour limiter l 'accès aux équipements ou aux systèmes ayant une carte sans contact de la série mifare.

Dans la première partie de cette série, nous allons présenter l 'apparence des composants, des commutateurs de base de matériel et programmer la première application de carte.Dans cette application, le relais ouvre et ferme la carte d 'autorisation spécifiée dans le Code de programme.Les del multicolores indiquent si le lecteur de carte est autorisé à ouvrir le relais.Le relais permet aux utilisateurs potentiels gratuits d 'ouvrir.S'applique:

Attention!Lorsque la tension d 'alimentation dépasse 30 ou 230 volts, un choc électrique met en danger la vie.S' il vous plaît, assurez - vous que la séparation appropriée et les règles initiales de protection et de fonctionnement soient conformes au Din VDE 0105.

En particulier, cinq règles de sécurité s'appliquent: https://de.wikipedia.org/wiki/F%C3%BCnf_Sicherheitsregeln Pour lire.

Revenons maintenant à notre liste de projets et de pièces détachées.Vous avez besoin de ce qui suit:

Un noeud

Un relais double.

Lecteur de carte 1x rc522 + carte classique mifare

Un adaptateur d 'alimentation

1 module RGB - led

Notes:

Le sac rc522 contient déjà la carte mifare Classic, ce qui est suffisant pour notre projet.Il n 'est donc pas nécessaire de commander une carte d' identification Radio distincte.

Le module KY - 016 LED RGB comprend déjà une résistance avant pour le fonctionnement direct de la broche de port.Ils ne sont donc plus utilisés seuls.Si vous préférez travailler en l 'absence d' un module RGB, vous devez utiliser une del RGB avec une résistance 3x220 ohm à cathode commune.

Les pieds de tuyau des LED RGB sont mappés comme suit:

Nodemcu Output

Couleur de del

Catégorie D2

B) Liu

D3.

G) vert

D4.

Droite

Sur le plan expérimental, les composants sont maintenant connectés de la manière suivante:

On dirait un circuit:

Sur cette photo, vous pouvez voir clairement les besoins en courant du circuit d 'activation du relais.Environ 190 mm sous 8 volts.Si le relais n 'est pas activé, la demande de courant est d' environ 110 MM.Il est donc nécessaire de raccorder l 'alimentation externe à l' alimentation USB.

Après assemblage de tous les composants, nous convertissons le moule arduino en puce de support esp8266, choisissant le module universel esp8266 à partir de la plaque d 'outils.Ensuite, on choisit les outils. Le port nodemcu est connecté au port com.Nous saisissons maintenant le code suivant:

 

"35; y compris <Protéine de séparation de soja.Heure>
"35; y compris <Mfrc522..Heure>

\ 35; définitions Rst     5   / / SPI Reset Lead (D1 output)
\ 35; définitions Relais  16  / / relais (d0 output) [faible activation] - led interne à proximité du port USB
\ 35; définitions Poignée SS - U      15  / / SPI sélectionne le pied de tuyau d 'un machine

\ 35; définitions Mélangeur    2   / / Rouge (sortie D4) 
\ 35; définitions Mix G    0   / / vert (D3 output), il y a également des del internes sur le module ESP
\ 35; définitions Mix B    4   / / bleu (sortie D2)

\ 35; définitions Del intégrée 16
\ 35; définitions SDA 4 
\ 35; définitions Câblage 5 
 
Mfrc522. Mfrc 522(Poignée SS - U, Rst);   / / créer l 'exemple mfrc522
Mfrc522.::Clé mifare La clé.;

échanger Myvalidcarduid[4] = {0x00.,0x00.,0x00.,0x00.}; / / ici lecture d 'interface série                                                 / / Saisissez l 'identifiant à lire                                                 / / doit être efficace et le relais doit être connecté                                                  / / devoir.
Nullité Set() {   Mode pinmode(Rst,Output);   Mode pinmode(Relais,Output);   Mode pinmode(Mélangeur,Output);   Mode pinmode(Mix G,Output);   Mode pinmode(Mix B,Output);   écriture numérique(Relais,Haut);    Relais inactif   écriture numérique(Rst,Haut);   écriture numérique(Mélangeur,Bas);       / / membre australien   écriture numérique(Mix G,Bas);   écriture numérique(Mix B,Bas);   Télécharger.Allez.(9600);               / / initialisation de communications en série avec pc   Télécharger.Imprimer(Regarde.Allez.D'accord.);    Protéine de séparation de soja.Allez.();                      / / initialisation de communications spi   écriture numérique(Rst,Bas);   Retarder(300);   écriture numérique(Rst,Haut);   Mfrc 522.PCD Reset();   Mfrc 522.Initialisation de CD();               / / module de lecture mfrc522 initialisé   Mfrc 522.Antenne PCD - U();   Production();   écriture numérique(Mélangeur,Haut);     L 'initialisation Lila est terminée.   écriture numérique(Mix G,Bas);   écriture numérique(Mix B,Haut);
}
 
Nullité Run()   {   Si (Mfrc 522.Com.NET.CN zhongguorenminbaoxiangufenyouxiangongsi.com.NET.CN zgrmybxgfyxgs.com.NET.CN() && Mfrc 522.PICC série de cartes() )   Carte à circuit intégré de proximité                                                                                                                                            Carte à puce sans contact   {     Télécharger.Imprimer("China People 's Insurance Company unid:);     Pour (échanger Moi. = 0; Moi. < Mfrc 522.Guide.Taille; Moi.++)      {       Télécharger.Imprimer(Mfrc 522.Guide.Byte unitaire[Moi.] < 0x10. ? " 0" : " ");       Télécharger.Imprimer(Mfrc 522.Guide.Byte unitaire[Moi.], XVI);     } 
 Bourg Ça marche. = Vraiment?;    Pour (échanger Moi. = 0; Moi. < Taille(Myvalidcarduid); Moi.++)      {     Si (Mfrc 522.Guide.Byte unitaire[Moi.] != Myvalidcarduid[Moi.]) { Ça marche. = Faux; }        }    Si (Ça marche.)    {       Bourg Aiguille= Lecture numérique(Relais);       Aiguille = !Aiguille;       écriture numérique(Relais, Aiguille);            écriture numérique(Mélangeur,Bas);     / / LED vert       écriture numérique(Mix G,Haut);       écriture numérique(Mix B,Bas);       Télécharger.Imprimer("Valide.");       Retarder(2000);       écriture numérique(Mélangeur,Bas);     Les lecteurs de cartes bleues / LED sont presque normaux.       écriture numérique(Mix G,Bas);       écriture numérique(Mix B,Haut);     } Heure de départ prévue    {        écriture numérique(Mélangeur,Haut);     / / LED rouge - la dernière carte n 'est pas valable       écriture numérique(Mix G,Bas);       écriture numérique(Mix B,Bas);       Télécharger.Imprimer("Nul".);       Retarder(2000);       }      Télécharger.Imprimer();      Mfrc 522.Arrêt PICC.();       / / déplace la carte active en mode stationnaire.     Retarder(1000);   }   Production(); / / appel interne esp8266, fonction
}

 

Nous compilons le Code et le Téléchargeons à nodemcu.Pendant le téléchargement, nos lampes RGB LED ont allumé "rouge".Après le téléchargement réussi, la del devient violette.Modifier la couleur affiche le succès du processus de téléchargement.

Pour que le téléchargement vers nodemcu soit normal, le bouton flash sur nodemcu doit être maintenu pendant la compilation.

Une fois le processus de téléchargement achevé, nous lançons le terminal série dans l 'IDE et réglons la vitesse de transmission à une configuration de 9600.

Nos lecteurs sont prêts à lire la première carte.Bien sûr, c 'est interdit, car nos lecteurs ne savent pas encore votre carte d' identité.La sortie dans le terminal est alors indiquée comme suit:

C'est une question d'anticipation.Pour que la carte soit acceptée comme une carte valide à l 'avenir par nos lecteurs, nous allons maintenant modifier le mot "byte" myvalidcarduid [4] = {0x00, 0x00, 0x00]; "par" byte myvalidcard [4] {0x16, 0x15, 0x8d, 0x05 ";" afin de réécrire et de Télécharger le code à MCU noeud.La carte est ensuite reconnue comme valide et vous pouvez Commuter le relais en détenant la carte valide.Le feu vert de 2 secondes de la del le confirme.

En cas de possession d 'une carte non valide, la del passe en rouge de manière permanente.Il est donc évident que des cartes non autorisées ont été utilisées dans le passé pour tenter des erreurs.

Les lecteurs attentifs se demanderont certainement pourquoi nous avons recours à nodemcu pour accomplir cette tâche, par exemple, qui peut être réalisée par arduino Uno.Ceci est correct en principe, mais nous voulons élargir nos lecteurs de cartes à des options de configuration de réseau confortables et ajouter des fonctions de sécurité.Tout cela fait partie de la suite de la série.

L'auteur propose de ne pas utiliser le système décrit ci - dessus comme contrôle d'accès pour les systèmes de porte ou d'autres systèmes clefs de sécurité, étant donné que le « classique mifare » de la base du système a été démantelé et qu'il est donc considéré comme dangereux.

Bonne reconstruction jusqu 'à l' article suivant

 

Esp-8266Projekte für fortgeschrittene

8 commentaires

Harald

Harald

Hallo,
Einer von vielen sehr hilfreichen Artikeln. Allerdings auch mit einer Frage. hat sich schon mal jemand daran getraut diesen Card Reader per I2C anzusprechen. Angeblich kann das Funktionieren und würde mir viele Eingänge bringen.

Frank Carius

Frank Carius

Schaut euch vielleicht mal https://github.com/esprfid/esp-rfid) an. Das ist quasi eine fertige Firmware wie Tasmota, ESPEasy, ESPurna nur mit dem Fokus auf RFID.
Läuft vermutlich out of the Box mit eurem Hardware setup

Interessant wäre es natürlich mal, wie man z.B. eine EC-Karte/Kreditkarte mit dem RC522 nicht nur liest, sondern vielleicht einen Challenge sendet und den REsponse liest. Dann wäre es sicherer als einfach nur “Seriennummer lesen”

Michael

Michael

Hallo zusammen,
cooles Projekt. Ich versuche die Sensitivität des RC522 durch die Ergänzung der Initialisierung PCD_WriteRegister(RFCfgReg, (0×07<<4)); im File MRFC522.cpp zu erhöhen.
Leider ohne Erfolg.
Habt jemand schon mal erfolgreich die Reichweite des RC522 erhöht?
Die Reichweite ist für mein Projekt zu gering :-(.

Vielen Dank für alle Hinweise

Jörg

Jörg

Hallo,
toller Artikel, der Aufbau funktioniert nach einigem Hin und Her
(LED leuchtet lila), aber die LED reagiert nicht, wenn ich eine RFID-Karte davor halte.
Im seriellen Monitor gibt es keine Reaktion.
Ich habe es mit zwei unterschiedlichen Cardreadern und Karten versucht.
Was kann ich noch machen?

Vielen Dank und Grüße
Jörg

Paul

Paul

Ein super Projekt.

Hat auf Anhieb funktioniert. (Nur das kopieren des Codes muss man manuell machen, über den Button kommen die ein anderer schon schreibt Fehler rein.)
Ich gehe direkt zum Teil 2.

Heiko

Heiko

Hallo zusammen,
die Fehlermeldung ist geklärt.
Durch das Kopieren von der Internetseite werden statt Leerzeichen im Code Sonderzeichen eingetragen.
Die habe ich dann alle ersetzt durch Leerzeichen und schon läufts.

Danke trotzdem

Weiter so, ist ein Super Blog. Sehr interessant und leicht zu verstehen.

Heiko

Heiko

Hallo zusammen,
tolles Projekt.
Habe alles aufgebaut.
Ich bekomme die Fehlermeldung stray ‘\302’ in program
Alle Librarys sind installiert (meiner Meinung nach).
Der Reader ist in Ordnung, liest die Karten ordnungsgemäß ein.
Ist getestet mit einem anderen Programm.

Kann mir jemand erklären was es mit dieser Fehlermeldung auf sich hat?

Vielen Dank im voraus

Mathias Päzolt

Mathias Päzolt

Hallo,
sehr interessanter Artikel, aber ich wäre nicht ich, wenn ich nicht was zu meckern hätte :-)
Da ich ein anderes RFID-Modul verwende (VMA405 von Velleman, fand sich noch in der Bastelkiste) wäre ein mapping für alle Kontakte sehr sinnvoll, da sich mein Modul in der Beschaltung unterscheidet.

Laisser un commentaire

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