FaciLock

🇫🇷 Français | 🇬🇧 English

🔒 FaciLock — Système de verrouillage connecté intelligent

Bannière FaciLock

Un système de sécurité moderne basé sur la reconnaissance faciale, le contrôle mobile et des modules embarqués sur Raspberry Pi.


🗒️ NOTE - Ce projet a été réalisé en juin 2025 lors de mon bac pro système numérique. Fait avec les outils et les connaissances que j’avais à l’époque

⚠️ Ce projet n’est pas maintenu

🌟 Projet en un coup d’œil

FaciLock est un système de sécurité intelligent qui combine :


🎯 Objectifs du projet


🧠 Description du projet

FaciLock a été conçu sur un Raspberry Pi 5 (8 Go) pour offrir une solution de verrouillage connectée et sécurisée.

🔄 Fonctionnement général

  1. Le système est en veille et affiche un écran d’accueil.
  2. Lorsqu’un visiteur appuie sur le bouton, la caméra s’active.
  3. Le système lance la reconnaissance faciale pendant quelques secondes.
  4. ✅ Si un visage autorisé est reconnu → déverrouillage + notification de succès.
  5. ❌ Sinon → notification d’échec envoyée à l’application mobile.
  6. ⏱️ Après un délai sans action, le système revient automatiquement à l’accueil.

🧭 Schéma de l’algorithme du backend

Schéma simplifié de l'algorithme du backend


⚙️ Technologies utilisées

🧩 Backend (Raspberry Pi)

Méthode Endpoint Description
POST /unlock Déverrouille la porte manuellement
GET /notifications Liste les vidéos capturées des visiteurs inconnus
DELETE /notifications/<video_id> Supprime une vidéo/notification
GET /authorized Liste les personnes autorisées
POST /authorized Ajoute une personne avec ses images (base64)
PUT /authorized/<old_name> Renomme une personne
DELETE /authorized/<name> Supprime une personne
GET /authorized/<name>/images Liste les images associées à un visage
GET /authorized/<name>/image Récupère une image spécifique
DELETE /authorized/<name>/image Supprime une image spécifique
POST /authorized_capture Capture directement des images depuis la caméra
POST /api/register_push_token Enregistre un token Expo pour les notifications push
GET /stream Envoie en temps réel l’état du verrou (lock_status) via SSE

Toutes les routes nécessitent un token de sécurité :
?token=afsfr-356hytjdhiy-huy5429876njyu-y-gfdrsertgry

📘 Voir les détails complets → backend/raspberrypi/README.md


📲 Application mobile

📘 Voir l’app mobile → mobile_app/README.md


🧱 Modules matériels

Module Rôle
Raspberry Pi 5 Unité centrale du système
Caméra infrarouge Reconnaissance faciale
Écran 3.5” Interface utilisateur principale
Bouton poussoir Déclenchement de la reconnaissance
Arduino Gestion du digicode
DFPlayer Mini Effets sonores (verrouillage/déverrouillage)

🔌 Schéma simplifié du câblage

Schéma simplifié du câblage du système


📁 Arborescence du projet

FaciLock/
├── backend/
│   ├── arduino/          # Arduino
|   |   ├── digicode.ino
|   |   ├── lcd-digicode-audio.ino
│   |   └── lcd-digicode.ino
|   └── raspberrypi       # Serveur Flask + reconnaissance faciale
|       ├── app.py
|       ├── icon/
│       ├── tetes/
│       ├── requirements.txt
|       └── ...
├── mobile_app/           # Application mobile (React Native)
│   ├── app/
│   ├── assets/
|   └── ...
├── docs/                 # Images, schémas, ressources
│   ├── banniere-facilock.png
│   ├── schema-simplifier-algorithme-backend.png
│   └── Schema-cablage-simple.png
└── README.md             # Présentation du projet

ecran raspberry

Exemple de fonctionnement :

https://github.com/user-attachments/assets/030c9b42-d527-4f9c-b894-ffae5ed32931

https://github.com/user-attachments/assets/c78db34c-b6a0-4d19-991c-1e6d8f9cd817

https://github.com/user-attachments/assets/aa9d5f4c-af0a-4c98-b0aa-f1e18a58ad64

👤 Auteur

Constant Segretain
🎓 Élève en BTS SIO SISR
📅 Année : 2025
📫 constantsegretain@gmail.com
🌐 github.com/ConstantSeg


« Un projet mêlant sécurité, intelligence et innovation — la clé, c’est vous. »