Sécurisation moto par système biométrique à capteur d'empreintes
Composants et fournitures
| Arduino Mini 05 (Pro Mini) | × | 1 |
| Relais (générique) | × | 1 |
| Capteur biométrique FPM10A (empreintes digitales) | × | 1 |
| Module régulateur de tension Digilent | × | 1 |
Outils nécessaires
- Fer à souder (générique)
- Fil à souder sans plomb
- Ruban électrique
- Pince à bec long
Applications et services en ligne
- Arduino Web Editor
À propos du projet
Face aux nombreux vols de motos, nous avons développé un système antivol utilisant un Arduino Pro Mini qui lie la moto à l'enregistrement numérique de l'utilisateur via son empreinte digitale.
Canal Sandro Mesquita Roboticamente
Code
Code du système de sécurité moto
/***************************************************
* Exemple pour capteur d'empreintes optique Adafruit
* Conçu pour fonctionner avec le capteur Adafruit BMP085
* Communication série TTL, 2 pins requis
* Licence BSD, tout le texte ci-dessus doit être inclus dans toute redistribution
****************************************************/
int chave = 0;
int verde = 5;
int azul = 4;
int vermelho = 6;
int rele = 7;
#include <Adafruit_Fingerprint.h>
// Sur Leonardo/Micro ou autres avec série matériel, utilisez ceux-ci !
// #0 = fil vert, #1 = fil blanc
// #define mySerial Serial1
// Pour UNO et autres sans série matériel, utiliser SoftwareSerial
// Pin #2 = entrée depuis capteur (fil VERT)
// Pin #3 = sortie vers Arduino (fil BLANC)
SoftwareSerial mySerial(2, 3);
Adafruit_Fingerprint finger = Adafruit_Fingerprint(&mySerial);
void setup() {
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
digitalWrite(rele, 1); // Relais au repos (coupé)
delay(100);
digitalWrite(azul, 1); // LED bleue = initialisation
finger.begin(57600); // Vitesse série capteur
// Vérification mot de passe capteur (commenté)
/* if (finger.verifyPassword()) {
Serial.println("Found fingerprint sensor!");
} else {
Serial.println("Did not find fingerprint sensor :(");
while (1) { delay(1); }
} */
// finger.getTemplateCount();
// Serial.print("Sensor contains "); Serial.print(finger.templateCount); Serial.println(" templates");
// Serial.println("Waiting for valid finger...");
digitalWrite(azul, 0);
digitalWrite(vermelho, 1); // LED rouge = en attente d'empreinte
digitalWrite(verde, 0);
}
void loop() {
if (getFingerprintIDez() == 1) {
chave = !chave; // Bascule état
delay(500);
}
digitalWrite(rele, !chave); // Relais : actif si clé autorisée
digitalWrite(verde, chave); // LED verte = autorisé
digitalWrite(vermelho, digitalRead(rele)); // LED rouge = refusé
delay(50);
}
uint8_t getFingerprintID() {
uint8_t p = finger.getImage();
switch (p) {
case FINGERPRINT_OK: break;
case FINGERPRINT_NOFINGER: return p;
case FINGERPRINT_PACKETRECIEVEERR: return p;
case FINGERPRINT_IMAGEFAIL: return p;
default: return p;
}
p = finger.image2Tz();
switch (p) {
case FINGERPRINT_OK: break;
case FINGERPRINT_IMAGEMESS: return p;
case FINGERPRINT_PACKETRECIEVEERR: return p;
case FINGERPRINT_FEATUREFAIL: return p;
case FINGERPRINT_INVALIDIMAGE: return p;
default: return p;
}
p = finger.fingerFastSearch();
if (p == FINGERPRINT_OK) {
// Serial.println("Found a print match!");
} else if (p == FINGERPRINT_PACKETRECIEVEERR) return p;
else if (p == FINGERPRINT_NOTFOUND) return p;
else return p;
// Serial.print("Found ID #"); Serial.print(finger.fingerID);
// Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}
// Retourne -1 si échec, sinon ID
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("Found ID #"); Serial.print(finger.fingerID);
// Serial.print(" with confidence of "); Serial.println(finger.confidence);
return finger.fingerID;
}
Schéma

Principe de fonctionnement : Le capteur FPM10A lit l'empreinte digitale. Si elle correspond à un enregistrement autorisé, le relais bascule (active le circuit d'allumage/démarrage). LEDs indicatrices : bleu = initialisation, rouge = attente/accès refusé, vert = accès autorisé.
Processus de fabrication
- Détecteur de langue TinyML avec Edge Impulse sur Arduino Nano 33 BLE Sense
- Dé numérique Arduino sur écran LCD 16x2 – Générateur aléatoire à bouton poussoir
- Système de Capteur de Température Multi-Position pour Intégration Domotique
- Créer votre propre jeu de roulette à 37 LED avec Arduino Nano
- Surveillance de la Qualité de l'Eau : Système Arduino MKR1000 pour Rivières et Lacs
- ATtiny85 Mini Arcade : Snake – Construire une console de jeu portable OLED
- Détecteur de distance portable – Kit DIY Arduino Nano avec HC-SR04, alimentation 18650 et boîtier imprimé 3D
- Projet de galvanoplastie au cuivre : Construisez un système intelligent avec Arduino UNO
- Jeu Pong sur Matrice NeoPixel avec Arduino Nano