Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Créer une Zone Sécurisée Arduino pour Déverrouiller Android, iOS et Windows 10 par Empreinte

Composants et fournitures

ComposantQuantité
Module Bluetooth HC-05 série sans fil1
Arduino Nano R31
Module empreinte digitale R301T1
LED RGB 5 mm 4 broches (anode commune)1

Applications et services en ligne

À propos du projet

Ce projet crée un gadget « zone sûre » qui déverrouille vos appareils (smartphones, PC) quand vous êtes à proximité, après authentification par empreinte digitale. Fini les déverrouillages répétitifs dans votre bureau privé !

Objectifs :

Créer une Zone Sécurisée Arduino pour Déverrouiller Android, iOS et Windows 10 par Empreinte

Verrouiller & Déverrouiller les appareils

Nos appareils contiennent des données privées (chats, contacts, photos, notes). Les méthodes de verrouillage actuelles (code, empreinte, visage) deviennent fastidieuses quand on travaille seul dans une pièce sûre. L'idée : un petit gadget qui, activé par votre empreinte, se connecte en Bluetooth à vos appareils et les maintient déverrouillés tant qu'il reste à portée.

Module R301T Empreinte Digitale

Créer une Zone Sécurisée Arduino pour Déverrouiller Android, iOS et Windows 10 par Empreinte

Le R301T communique en série (UART) avec l'Arduino. On y enregistre d'abord son empreinte, puis on le relie aux pins Tx/Rx de l'Arduino. Le module Bluetooth HC-05 est appairé une fois avec chaque appareil. Le code Arduino active le Bluetooth dès qu'une empreinte valide est reconnue.

Schéma de câblage

Créer une Zone Sécurisée Arduino pour Déverrouiller Android, iOS et Windows 10 par Empreinte

Code

Installer la librairie Adafruit_Fingerprint puis téléverser :

#include "Adafruit_Fingerprint.h"
#include "SoftwareSerial.h"

SoftwareSerial mySerial(2, 3); // RX, TX
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
int cc = 0;

void setup() {
  Serial.begin(9600);
  while (!Serial);
  delay(100);
  Serial.println("\n\nTest detection empreinte Adafruit");
  finger.begin(57600);
  if (finger.verifyPassword()) {
    Serial.println("Capteur empreinte trouvé !");
  } else {
    Serial.println("Capteur non détecté :(");
    while (1) {
      pinMode(13, OUTPUT); digitalWrite(13, LOW);
      pinMode(9, OUTPUT); digitalWrite(9, HIGH);
    }
  }
  finger.getTemplateCount();
  Serial.print("Capteur contient "); Serial.print(finger.templateCount); Serial.println(" empreintes");
  Serial.println("En attente empreinte valide...");
}

void loop() {
  getFingerprintIDez();
  delay(50);
}

uint8_t getFingerprintID() {
  uint8_t p = finger.getImage();
  switch (p) {
    case FINGERPRINT_OK: Serial.println("Image capturée"); break;
    case FINGERPRINT_NOFINGER: Serial.println("Aucun doigt détecté"); return p;
    case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Erreur communication"); return p;
    case FINGERPRINT_IMAGEFAIL: Serial.println("Erreur imagerie"); return p;
    default: Serial.println("Erreur inconnue"); return p;
  }
  p = finger.image2Tz();
  switch (p) {
    case FINGERPRINT_OK: Serial.println("Image convertie"); break;
    case FINGERPRINT_IMAGEMESS: Serial.println("Image trop brouillée"); return p;
    case FINGERPRINT_PACKETRECIEVEERR: Serial.println("Erreur communication"); return p;
    case FINGERPRINT_FEATUREFAIL: Serial.println("Caractéristiques non trouvées"); return p;
    case FINGERPRINT_INVALIDIMAGE: Serial.println("Caractéristiques non trouvées"); return p;
    default: Serial.println("Erreur inconnue"); return p;
  }
  p = finger.fingerFastSearch();
  if (p == FINGERPRINT_OK) Serial.println("Correspondance trouvée !");
  else if (p == FINGERPRINT_PACKETRECIEVEERR) { Serial.println("Erreur communication"); return p; }
  else if (p == FINGERPRINT_NOTFOUND) { Serial.println("Aucune correspondance"); return p; }
  else { Serial.println("Erreur inconnue"); return p; }
  Serial.print("ID #"); Serial.print(finger.fingerID);
  Serial.print(" confiance "); Serial.println(finger.confidence);
  for (int i = 255; i > 1; i--) { analogWrite(9, i); delay(10); }
  if (cc % 2 == 0) digitalWrite(13, HIGH); else digitalWrite(13, LOW);
  cc++;
  return finger.fingerID;
}

int getFingerprintIDez() {
  uint8_t p = finger.getImage();
  if (p != FINGERPRINT_OK) return -1;
  p = finger.image2Tz();
  if (p != FINGERPRINT_OK) return -1;
  p = finger.fingerFastSearch();
  if (p != FINGERPRINT_OK) return -1;
  Serial.print("ID #"); Serial.print(finger.fingerID);
  Serial.print(" confiance "); Serial.println(finger.confidence);
  return finger.fingerID;
}

Assemblage & Appairage

Créer une Zone Sécurisée Arduino pour Déverrouiller Android, iOS et Windows 10 par Empreinte

Appairage Bluetooth :

Si l'appairage automatique échoue, envoyer un caractère depuis l'Arduino lors de la première tentative.

Améliorations possibles

Code (Librairie)

Librairie Adafruit Fingerprint (téléchargement uniquement)

Processus de fabrication

  1. Panneau de contrôle Arduino Nano pour Flight Simulator 2020 – Affichage LCD et CDI
  2. Créer un système Ambilight spectaculaire pour moniteur avec Arduino
  3. Système de Surveillance Thermique Scolaire : Précis, Temps Réel et Sécurisé
  4. Bibliothèque Arduino efficace pour port E/S 8 bits — Étendez le contrôle numérique
  5. Contrôler les clignotements LED Arduino depuis votre application iOS/Android via WiFi/Ethernet
  6. Clavier prototype 64 touches Arduino avec registres à décalage - Matrice clavier DIY
  7. Circuit d'entrée analogique isolée pour Arduino : Protection contre les parasites industriels
  8. Kit de robot de navigation intérieure intelligente pour projets Arduino
  9. Comment les pompes à eau directes améliorent l'efficacité de la transmission d'eau