Heeeeeeeeeeeeyyyyyyyyyy !!!!! Ça fait déjà plus d’un mois que je n’ai pas publié de nouvel objet ! C’est reparti avec cet objet 5 ! Une serrure électronique et numérique NFC ! Comment ouvrir un coffre sans clé ? Juste avec une simple carte ? Arduino, servomoteur et impression 3D à gogo ! Cela n’a pas été facile !

What ?!

Et oui, si vous ne saviez pas, je me suis lancé un défi il y a quelques mois… Réaliser un objet mêlant conception, électronique, programmation et impression 3D ! Et le tout avec un objectif d’un objet par semaine… Hum hum !! J’ai vite réalisé que c’était un objectif impossible pour moi en terme de rythme. Avec tous les projets lancés autours du blog, les tutos à venir (#ApprendreArduino, #tutos3DàVenir…), les gros projets à préparer… Je ne peux tout simplement pas respecter le rythme d’un objet par semaine. Par contre, je continuerai le défi à mon rythme :-). Cela peut être un objet tous les 2, 3 voire 4 semaines, selon la complexité de celui-ci. Mais ne vous inquiétez pas, il y aura toujours autant (voire +) de contenu sur BenTeK.fr. 🙂

Introduction faite, c’est parti pour les spécifications de mon objet :
Lorsqu’on conçoit un objet, il y a toujours la question de la problématique, que veut le client final ? Ici, le client final (moi, mouhouhaha !) aimerait pouvoir sécuriser un coffre avec une carte d’accès, pas de crochetage possible donc. Pour se faire, j’aimerai l’ouvrir à l’aide d’une carte à l’aide de la technologie NFC.

Pour se faire, il faut donc :

  • Que le coffre puisse être verrouillé / déverrouillé grâce à une carte d’accès.
  • Que le système soit autonome en électricité et fonctionne longtemps avant de changer pile ou batterie.
  • La possibilité d’allumer / éteindre le système afin d’économiser la pile ou la batterie.
  • Qu’une fois le système éteint, le coffre reste en position verrouillé / déverrouillé.
  • Un indicateur sur le coffre qui puisse indiquer si la serrure est en position verrouillé ou déverrouillé.

Conception / Dessin

Dessin_zoom_coffre_NFC

J’ai tout d’abord commencé par me faire une idée de à quoi pourrait bien ressembler mon coffre une fois fini. Les petits croquis rapides sont les meilleurs ! Au niveau des composants, nous avons :

Sans plus tarder, le schéma électrique de notre projet :

Schéma - Serrure NFC

RFID / NFC ? Qu’est-ce que c’est que ça ?

Alors ici, je vais vous faire un rapide topo sur la technologie NFC. Le NFC est l’abréviation anglaise de Near Field Communication. Il s’agit d’une technologie de communication sans fil à courte portée. Un composant NFC peut être actif (ce sera le cas de notre lecteur RFID-RC522) ou passif (ce sera le cas de notre carte). Un composant passif aura besoin d’être associé à un composant actif pour pouvoir fonctionner.

Voyons ça avec un exemple un peu plus concret : La carte bancaire. Les dernières montures françaises possèdent la technologie “sans contact” qui n’est autre que du NFC. Pour être lue, la carte bancaire a besoin d’un terminal de paiement qui joue le rôle de composant actif. Le terminal de paiement fourni le courant nécessaire à la carte bancaire pour pouvoir la décoder. Le tout “sans contact”, car le terminal de paiement va pouvoir créer un signal de radiofréquence à l’approche de la carte bancaire et ainsi transmettre du courant à la puce NFC intégrée. La variation de courant dans la puce NFC de la carte bancaire va intrinsèquement créer une variation dans le champ de radiofréquence qui sera perçu par le terminal de paiement. Cette variation est perçue comme un signal qui est l’image du code inscrit sur la puce NFC. Entre autre, dans ce cas, vos identifiants bancaires.

Tags NFC

Mais alors, quand parle-t-on de RFID ?
En fait, la technologie NFC est dérivée de la technologie RFID. D’où une trop grande généralisation des deux termes pour définir tout ce qui est apparent aux technologies sans fil. On pourrait définir les deux technologies ainsi :

  • RFID : Technologie sans fil utilisant la radio fréquence pour identifier des étiquettes RFID (ou Tags RFID). Ces étiquettes peuvent êtres passives ou actives. Les liaisons RFID s’effectuent toujours d’une balise (Tag, étiquette…) à un lecteur RFID (système de radiofréquence). Le RFID peut couvrir une zone pouvant atteindre les 100 mètres de diamètres autour du lecteur RFID. Les 3 plages de fréquences couvertes par le RFID sont :
    • Fréquence basse : 125-134 kHz
    • Fréquence haute : 13.56 MHz
    • Ultra haute fréquence : 856-960 MHz
  • NFC : Technologie sans fil à courte distance utilisant également la radiofréquence pour communiquer. La communication s’effectue à courte distance (inférieure à 3 cm) uniquement sur la haute fréquence de 13.56 MHz. L’avantage du NFC, c’est qu’un dispositif NFC peut être à la fois balise et lecteur. Et c’est cette particularité qui a rendu la NFC la technologie numéro un pour le paiement sans contact et mobile. La fréquence et la technologie étant très proche du RFID à 13.56 MHz permettent à un dispositif NFC de lire une carte RFID passive à la norme ISO 15693.

Impression 3D

Pour la partie impression 3D, j’ai conçu 7 fichiers 3D, tous disponibles sur ma page Thingiverse correspondant à ce projet. On y retrouve :

  • Le dessus de la boîte,
  • Le capot du compartiment à pile,
  • L’attache pour l’interrupteur fin de course et le servo-moteur,
  • Le crochet se fixant sur le servomoteur,
  • La partie verrou,
  • Le bouton ON/OFF,
  • Les caches vis clipsables.

Au niveau des vis, je n’ai utilisé que des vis M3x8 ou M3x16. Tous les trous ont été préalablement taraudés. Le tout a été imprimé avec du filament ArianePlast (gris métallisé et rouge métallisé) à 215°C sur Dagoma DiscoEasy 200. Comme à mon habitude, j’ai chargé l’ensemble du projet sur Thingiverse. Vous êtes libre de télécharger les fichiers et de les modifier (n’oubliais pas de me citer ou citer BenTeK.fr dans ce cas, merci !).

Defi 5 - Lien Thingiverse Coffre NFC

Programmation

Au niveau du programme, je n’ai pas grand-chose à dire. Je lis l’identifiant sur la carte et je la compare. Si l’identifiant corresponds, la serrure s’ouvre ou se ferme selon l’état du fin de course. Les LEDs rouge et verte changent d’état selon l’état du fin de course. Voici le programme en entier :

/*
 * Serrure numérique NFC
 *  
 * Librairies nécessaires :
 *  - SPI
 *  - RFID
 *  - Servo
 * 
 * https://bentek.fr
 * Licence : MIT
 * 
 */

#include <SPI.h>
#include <RFID.h>
#include <Servo.h>

Servo monVerrou;
RFID monModuleRFID(10,9);

const int ledVerte = 7;
const int ledRouge = 4;
const int etatVerrou = 3;
const int alimVerrou = 8;  

int UID[5];
int UIDok[5] = {167,156,179,6,142};	// Ici on place l'UID de la bonne carte. Pour le savoir, il faut lire la carte une première fois en modifiant un peu ce programme 😉
int angle=100;

void setup()
{
  pinMode(etatVerrou, INPUT);
  pinMode(ledVerte, OUTPUT);
  pinMode(ledRouge, OUTPUT);
  pinMode(alimVerrou, OUTPUT);
  Serial.begin(9600);
  SPI.begin();
  monModuleRFID.init();
  monVerrou.attach(2);
}

void loop()
{

 if(digitalRead(etatVerrou) == true){
  digitalWrite(ledVerte, LOW);
  digitalWrite(ledRouge, HIGH);
 }
 else{
  digitalWrite(ledRouge, LOW);
  digitalWrite(ledVerte, HIGH);
 }
  
  bool UIDvalide[5] = {false,false,false,false,false};
    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);
              if(UID[i] == UIDok[i]){
                UIDvalide[i]=true;
              }
              Serial.print(".");
            }
            Serial.println("");
          }          
          monModuleRFID.halt();
          
          if(UIDvalide == true, true, true, true, true)
          {
            Serial.println("UID valide !");
            Serial.println(digitalRead(etatVerrou));
            if(digitalRead(etatVerrou)==true){
              Serial.println("Ouverture !");
            ouvrirVerrou();
            delay(100);
          }
          else{
            Serial.println("Fermeture !");
            fermerVerrou();
            delay(100);
          }
          }
    }
    delay(1);
}

void fermerVerrou(){
  digitalWrite(alimVerrou, HIGH);
  delay(50);
  monVerrou.write(65);				// ici on règle l'angle de fermeture du verrou, cela peut varier d'un servo-moteur à un autre.
  delay(2000);
  digitalWrite(alimVerrou, LOW);
  delay(50);
}

void ouvrirVerrou(){
  digitalWrite(alimVerrou, HIGH);
  delay(50);
  monVerrou.write(179);			// ici on règle l'angle d'ouverture du verrou, cela peut varier d'un servo-moteur à un autre.
  delay(2000);
  digitalWrite(alimVerrou, LOW);
  delay(50);
}

Conclusion

Après quelques mésaventures concernant l’impression 3D (un morceau de support a accroché la tête d’impression pendant l’impression du haut du coffre, ce n’était pas beau à voir ! Toujours surveiller ses impressions !), ce projet a porté ses fruits en terme d’apprentissage. C’était la première fois que j’intégrai un lecteur RFID et je pense que les possibilités et les idées avec cette technologie ne manquent pas, loin de là !

Dans ce projet, il y avait également un élément nécessaire au bon déroulement du projet : la précision. Il fallait que je sois précis dans la mesure, dans la retranscription 3D, dans les tolérances et dans l’impression 3D. Il fallait que l’imprimante soit bien calibrée pour mener à bien ce projet, car la serrure est un emboîtement d’une pièce 3D dans une autre !

Ce petit coffre va beaucoup me servir par la suite. Au niveau de l’électronique, j’aurai bien eu envie de router ma propre carte pour ce projet et passer sur des composants plus petits, peut-être dans une prochaine version ! 😉

En tout cas, si vous avez des idées d’objets à créer avec la technologie NFC, n’hésitez pas à me les faire parvenir en commentaires ! 😉

Ben.

  •  
  •  
  •  
  •  
  •  
    9
    Partages
  • 9
  •  
  •  
  •  

Recevez les bons outils pour débuter dans l'univers DIY et l'impression 3D !