Présentation du coffre fini :

I. Prototypage arduino et module RFID

Avant se lancer dans la conception du coffre lui même il faut se familiariser un peu avec la partie électronique du bidule. Rien de compliqué la dedans mais il faut se lancer, surtout dans le cas où on n’a jamais fait de montage électronique de sa vie (ca va vous rappeler les heures de physique au collège et au lycée 😉 )

Je vous conseille de regarder avant de commencer le fonctionnement d’un arduino parce que mine de rien, cela va vous prendre un petit paquet d’heures, donc lorsqu’on part de nulle part…

Toujours partant pour vous lancer ? Alors allons y !

Un peu de théorie sur ce qu’est un module RFID maintenant : 

Bon il va falloir un peu de matos du coup :

Breadboard et fils de cablage
Fer à souder
Carte Arduino Uno
étain
Module RFID

Si vous n’êtes pas pressé je vous conseille d’aller farfouiller sur banggood, aliexpress ou sur amazon pour comparer les prix.

Ensuite il faut vous télécharger le programme pour programmer l’arduino sur votre ordinateur : https://www.arduino.cc/en/Guide/HomePage

On ouvre le programme que l’on vient de télécharger, et on le configure : 

Dans “Outils -> type de carte”, on choisit le modèle de sa carte arduino (surement une Uno mais attention à la marque que vous avez acheté)

Ensuite dans “Outils -> port” il faudra choisir le port de communication entre votre ordi et l’arduino (généralement il n’y a qu’un choix)

Ensuite, on copie/colle le code suivant :

#include <SPI.h>
#include <MFRC522.h>

MFRC522 monModuleRFID(10,9);

int UID[5];

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  monModuleRFID.init();  
}


void loop()
{
    if (monModuleRFID.isCard()) {  
          if (monModuleRFID.readCardSerial()) {        
            Serial.print(“L’UID est: “);
            for(int i=0;i<=4;i++)
            {
              UID[i]=monModuleRFID.serNum[i];
              Serial.print(UID[i],DEC);
              Serial.print(“.”);
            }
            Serial.println(“”);
          }          
          monModuleRFID.halt();
    }
    delay(1);    
}

On compile le programme (symbole en haut à gauche) pour voir si il n’y a aucune erreur. Puis on téléverse le programme dans l’arduino en reliant l’arduino avec le câble USB et en cliquant sur le symbole flèche en haut à gauche.

Maintenant il faut câbler tout ça ! Quelques points de soudure sur le module RFID pour lui coller ses broches; on branche tout sur la breadboard en suivant le schéma de câblage suivant :

Bon c’est l’instant de vérité, vous allez maintenant passer devant le détécteur votre badge bleu ou la carte blanche qui sont fournis avec le module RFID. Avant cela ouvrez le programme arduino et reliez le à l’ordinateur et ouvrez la console “Outils -> Moniteur série”. Si tout va bien il sera inscrit un numéro d’identification dans votre fenêtre qui correspond à l’identification du badge et un autre pour la carte. Pensez à noter ces identifiants, ils serviront pour la suite.

Bravo ! Vous avez réussi la première étape ! Vous pouvez être fier de vous et passer à l’étape suivante.


II. Utiliser la détection RFID pour actionner quelque chose

Bon maintenant que votre arduino détecte votre badge RFID, il va falloir en faire quelque chose. Personnellement j’ai opté pour actionner un verrou magnétique à chaque fois que le badge passe devant le détecteur.

J’ai opté pour ce genre de choses que l’on peut trouver sur amazon, banggood, ect… 

L’idée est donc d’envoyer sur une des sorties de l’arduino afin d’alimenter ces verrous à chaque fois que le badge passe devant le détecteur. Voici le code que vous pouvez copier/coller dans le programme arduino :

#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9
#define SS_PIN 10

MFRC522 module_rfid(SS_PIN, RST_PIN);

int solenoid = 7;

void setup() {
Serial.begin(9600);
pinMode(solenoid, OUTPUT);
digitalWrite(solenoid, LOW); // Fermeture Solenoide
SPI.begin();
module_rfid.PCD_Init();
module_rfid.PCD_DumpVersionToSerial(); // Show details of PCD – MFRC522 Card Reader details
Serial.println(F(“Scan PICC to see UID, SAK, type, and data blocks…”));
delay(1000);
}

void loop() {
//RFID
if ( ! module_rfid.PICC_IsNewCardPresent()) 
{
return;
}

if ( ! module_rfid.PICC_ReadCardSerial()) 
{
return;
}

String UID = “”;

for (byte i = 0; i < module_rfid.uid.size; i++) {
UID.concat(String(module_rfid.uid.uidByte[i] < 0x10 ? ” 0″ : ” “));
UID.concat(String(module_rfid.uid.uidByte[i], HEX));
}

UID.toUpperCase();

if (UID.substring(1) == “70 72 4E D3” or UID.substring(1) == “04 E9 E6 72 91 5B 80“) 
{
//ACCES AUTORISE BADGE
digitalWrite(solenoid, HIGH); //ouverture Solenoide

delay(8000);

digitalWrite(solenoid, LOW); // Fermeture Solenoide
}

// Dump debug info about the card; PICC_HaltA() is automatically called
module_rfid.PICC_DumpToSerial(&(module_rfid.uid));

}

Avant de le téléverser dans votre arduino, pensez à remplacer dans le code, les parties qui sont en gras (qui correspondent aux identifiants de MES cartes et badges) par les votre (ceux que vous avez quand vous passez le badge ou la carte devant le détecteur).

Maintenant il faut câbler ! Retour à la breadboard. Vous allez compléter le montage précédant en utilisant la PIN (sortie) n°7 qui sera le signal envoyé aux verrous. Malheureusement, la tension sera trop faible pour ouvrir directement le verrou. Il faut donc passer par ce qu’on appelle un relais de puissance. En gros il s’agit d’un interrupteur qui sera contrôlé par la Pin n°7 de l’arduino et qui fermera le circuit électrique dans lequel vous alimenterez vous 2 verrous magnétiques par une pile 9V par exemple.

Un relais c’est ce genre de chose.

Devant il y a 3 entrées :
– NO (normalement ouvert)
– la Masse (GND)
– NF (normalement fermé).

Et derrière également 3 entrées :
– VCC
– la masse
– le signal déclencheur (In ou Trig)

Il faut donc former avec les 2 verrous en série un circuit fermé alimenté par une pile 9V et passant par les sorties NO et la masse (on laissera la sortie NF vide).
De l’autre côté, on va câbler : 

  • la sortie n°7 de l’arduino avec le “In” (ou “Trig”)
  • une des sorties appelées GND de l’arduino (n’importe laquelle) avec la masse du relais
  • La sortie 5V de l’arduino avec l’entrée VCC du relais.

On a plus qu’à brancher l’arduino à l’ordinateur et tester tout cela ! Si tout se passe bien, vos verrous doivent s’ouvrir lorsque vous passez le badge ou la carte devant le détecteur.

III. En route pour travail manuel

Bravo, si vous êtes arrivés ici, c’est que votre prototype fonctionne ! Il va falloir maintenant câbler tout ce bazar dans votre coffre.

Premièrement, il faut coller le détecteur RFID sous le couvercle du coffre (la détection se fait à travers du bois, du plastique, ect mais attention à tester l’épaisseur pour voir si cela marche avant de tout câbler pour rien…

Ensuite on trouve un emplacement pour la carte arduino + 2 piles 9V et le relais dans un coin du coffre : Il faudra penser à alimenter l’arnuino par une des piles 9V grâce à un câble adéquat et la 2e pile sert à alimenter les 2 verrous

Il faut ensuite poser les 2 verrous : bricolage maison pour la fermeture à l’aide de 2 petites équerres en acier, 4 vis et quelques morceaux de bois.

On câble tout ca en rajoutant 2 fils qui sortent discrètement du coffre (dessous) qui vont permettre d’ouvrir les verrous sans passer par l’arduino en cas de problème divers : problème d’alimentation du système, perte du badge ou verrouillage avec celui-ci à l’intérieur par exemples 😀

Il ne reste plus qu’à tester tout ca en fermant le coffre et en passant le badge sur le dessus.

On peut ensuite placer le badge ou la carte dans un objet de son choix mais cela n’est pas très pratique étant donné leur forme. Heureusement il existe des équivalents sous forme d’autocollants.

Attention à la norme utilisée pour la communication RFID (il y en a plusieurs).

Prenez par exemple ceux-ci :

https://fr.aliexpress.com/item/10pcs-Lot-NFC-TAG-Sticker-13-56MHz-ISO14443A-NTAG-213-NFC-tag-Universal-Lable-for/32637183249.html?spm=a2g0s.9042311.0.0.3da26c37vzJLNL

Si vous optez pour cette solution il faudra penser à noter le code identifiant de l’autocollant que vous utiliserez en le passant devant le détecteur lorsque l’arduino est connecté à votre ordinateur et le remplacer dans le code que vous allez téléverser.

Il ne restera plus qu’à coller l’autocollant sous un objet de votre choix (personnellement je l’ai glissé dans la statuette qui est creuse).


IV. Décoration et côté “Pimp”

J’ai personnellement, décoré mon coffre en imprimant des images tirées du web et en les collant à l’aide de vernis colle. Ca donne une petite touche au coffre et sur le dessus ca permet de “visualisé” l’emplacement où le joueur doit poser son objet pour l’ouverture du coffre.

Petit bonus : j’ai “pimpé” un peu le coffre en utilisant une led qui change de couleur pour faire l’oeil de Quetzalcoatl 😉

Pour cela il faut utiliser une led rgb :

Les 3 pattes du composant correspondent aux couleurs rouge, vert et bleue + une anode (ou cathode suivant le modèle) commune.

Il faudra donc câbler les 3 pattes des couleurs à 3 sorties de l’arduino (qui contrôlera l’intensité de chaque couleur) et la plus grande soit à la masse soit à la sortie 5V de l’arduino. Dans mon cas il s’agit d’une led à anode commune, donc reliée au 5V.

Ne pas oublier d’intercaler une résistance de 150Ω en série avec chaque diode de couleur pour ne pas les faire claquer.

Une fois tout ceci câblé, il faut programmer le fonctionnement de couleur. Dans le programme suivant j’ai rajouté à l’ancien (en gras) : une variation continue de couleur entre du bleue et du violet tout le temps, ainsi qu’un passage à la couleur verte lorsque le badge est détecté.

#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9
#define SS_PIN 10

MFRC522 module_rfid(SS_PIN, RST_PIN);

int solenoid = 7;
int led_rouge = 5;
int led_verte = 3;
int led_bleue =6;
int Rcolor =255;
int Gcolor =255;
int fadeAmount = 5;


void setup() {
Serial.begin(9600);
pinMode(solenoid, OUTPUT);
digitalWrite(solenoid, LOW); // Fermeture Solenoide
SPI.begin();
module_rfid.PCD_Init();
module_rfid.PCD_DumpVersionToSerial(); // Show details of PCD – MFRC522 Card Reader details
Serial.println(F(“Scan PICC to see UID, SAK, type, and data blocks…”));
delay(1000);
}

void loop() {
//Colorisation progressive des LEDs
setColor(Rcolor,Gcolor,Bcolor);
Rcolor = Rcolor – fadeAmount;
if (Rcolor ==0 || Rcolor ==255)
{
fadeAmount = -fadeAmount;
}
delay(75);


//RFID
if ( ! module_rfid.PICC_IsNewCardPresent()) 
{
return;
}

if ( ! module_rfid.PICC_ReadCardSerial()) 
{
return;
}

String UID = “”;

for (byte i = 0; i < module_rfid.uid.size; i++) {
UID.concat(String(module_rfid.uid.uidByte[i] < 0x10 ? ” 0″ : ” “));
UID.concat(String(module_rfid.uid.uidByte[i], HEX));
}

UID.toUpperCase();

if (UID.substring(1) == “70 72 4E D3” or UID.substring(1) == “04 E9 E6 72 91 5B 80“) 
{
//ACCES AUTORISE BADGE
digitalWrite(solenoid, HIGH); //ouverture Solenoide

// Led verte allumée
setColor(255,0,255);


delay(8000);

digitalWrite(solenoid, LOW); // Fermeture Solenoide
}

// Dump debug info about the card; PICC_HaltA() is automatically called
module_rfid.PICC_DumpToSerial(&(module_rfid.uid));

}

//Fonction de controle de couleur led RGB
void setColor(int red, int green, int blue)
{
analogWrite(led_rouge,red);
analogWrite(led_verte,green);
analogWrite(led_bleue,blue);
}

On téléverse depuis l’ordinateur dans l’arduino, on teste et là, c’es bôôôô ! 😀

Pin It on Pinterest

Share This