Files
OpenParcelBox/docs/fr/architecture.md
T

4.4 KiB
Raw Blame History

Architecture OpenParcelBox

Objectif du projet

OpenParcelBox est un projet open source visant à remplacer l'électronique propriétaire de la Boks One tout en conservant autant que possible les éléments mécaniques, électromécaniques et esthétiques d'origine.

Les objectifs principaux sont :

  • Fonctionnement entièrement local.
  • Intégration native avec Home Assistant.
  • Communication Zigbee.
  • Mises à jour OTA.
  • Documentation complète.
  • Reproductibilité du matériel et du logiciel.
  • Faible consommation énergétique.
  • Réutilisation maximale des composants d'origine.

Vue d'ensemble

                    Home Assistant
                           │
                    Zigbee (ZHA / Zigbee2MQTT)
                           │
                           ▼
                 ┌─────────────────────┐
                 │ OpenParcelBox       │
                 │                     │
                 │ Zephyr RTOS         │
                 │ XIAO nRF52840       │
                 │                     │
                 ├── Access Control    │
                 ├── Keyboard          │
                 ├── NFC               │
                 ├── Lock Controller   │
                 ├── Power Manager     │
                 ├── Diagnostics       │
                 └── OTA               │
                 └─────────────────────┘

Principes de conception

Réutilisation du matériel d'origine

Le projet privilégie la conservation des éléments existants lorsque cela est pertinent.

Éléments conservés :

  • Mécanisme de verrouillage KR-S79.
  • Lecteur NFC.
  • LEDs de façade.
  • Compartiment batterie.
  • Connectique interne.
  • Implantation du clavier.

Le PCB d'origine est remplacé par une nouvelle électronique.


Clavier

Le clavier est entièrement redéveloppé.

Le PCB d'origine n'est pas réutilisé.

Contraintes :

  • disposition verticale 2 × 6 ;
  • façade d'origine conservée ;
  • matrice de touches compatible firmware Zephyr.

Architecture matérielle

Le système repose sur un unique microcontrôleur :

  • Seeed Studio XIAO BLE nRF52840

Responsabilités :

  • lecture du clavier ;
  • lecture NFC ;
  • contrôle du verrou ;
  • surveillance batterie ;
  • gestion des LEDs ;
  • gestion du buzzer ;
  • communication Zigbee ;
  • mises à jour OTA.

Architecture logicielle

Le firmware est organisé en modules indépendants.

Core

  • Initialisation
  • Configuration
  • Gestion des modules

Keyboard

  • Lecture de la matrice
  • Anti-rebond
  • Saisie utilisateur

NFC

  • Lecture des badges
  • Validation des UID
  • Réveil basse consommation

Access Control

  • Codes administrateur
  • Codes permanents
  • Codes temporaires
  • Anti brute-force

Lock Controller

  • Pilotage de la serrure
  • Validation de l'ouverture
  • Gestion des erreurs

Power Manager

  • Batterie
  • Veille profonde
  • Réveil
  • Optimisation énergétique

Zigbee

  • Communication Home Assistant
  • Publication des états
  • Réception des commandes

OTA

  • Téléchargement
  • Vérification
  • Mise à jour sécurisée

Validation d'ouverture

L'ouverture n'est jamais validée par une temporisation fixe.

La séquence est :

Commande SIG
        │
        ▼
Impulsion d'ouverture
        │
        ▼
Attente du changement d'état COM/NC
        │
        ├── OK
        │      ▼
        │ Ouverture validée
        │
        └── Timeout
               ▼
        Erreur

Cette méthode garantit que le firmware valide une ouverture réelle du mécanisme.


Home Assistant

Entités prévues :

  • verrou
  • batterie
  • dernière ouverture
  • diagnostic
  • version firmware
  • qualité du lien Zigbee

Services :

  • ouverture
  • verrouillage
  • gestion des codes
  • redémarrage
  • diagnostic

Sécurité

Principes :

  • fonctionnement local ;
  • aucun cloud obligatoire ;
  • validation stricte des commandes ;
  • journalisation des événements ;
  • limitation des tentatives ;
  • séparation administrateur / utilisateur.

Développement

Firmware :

  • Zephyr RTOS

Langage :

  • C++

Outils :

  • Zephyr SDK
  • west
  • CMake
  • Git
  • Gitea
  • VSCodium

Évolutions futures

  • historique des événements ;
  • gestion avancée des utilisateurs ;
  • diagnostic matériel ;
  • support Bluetooth Low Energy ;
  • prise en charge de plusieurs boîtes.