Aller au contenu principal
Mathyou ANDRE
ESP32 (WROOM-32)Arduino / C++RC522 (MFRC522, SPI)HTML / CSS / JavaScriptWeb Speech API

Prototype Pointeuse RFID

Pointeuse et suivi d'outillage par badge RFID sur ESP32 + RC522, entièrement autonome : point d'accès WiFi, interface web et annonces vocales, sans serveur ni Internet.

Code source

Schéma de branchement entre l'ESP32 WROOM-32 et le module RFID RC522

Prototype réalisé pour préparer un entretien : il présente une solution que je suis capable de mettre en œuvre pour répondre au besoin d’un tiers, pointer les arrivées et départs du personnel et suivre les sorties et retours d’outillage.

Architecture

L’ESP32 crée son propre réseau WiFi et héberge l’interface web : aucun serveur, aucune connexion Internet, aucune application à installer, un navigateur suffit. Le navigateur affiche l’interface et se charge de la synthèse vocale.

Architecture : le navigateur se connecte en WiFi à l'ESP32, qui fait serveur DNS (portail captif) et serveur web ; la logique des badges sauvegarde les fiches en NVS et lit le RC522 en SPI, qui lit le badge à 13,56 MHz Architecture : le navigateur se connecte en WiFi à l'ESP32, qui fait serveur DNS (portail captif) et serveur web ; la logique des badges sauvegarde les fiches en NVS et lit le RC522 en SPI, qui lit le badge à 13,56 MHz

Fonctionnement

Un badge reçoit à sa création un usage définitif :

Usage1er scan2e scan
Outillagesortie de stockretour en stock
Personnelarrivéedépart
  • Chaque mouvement est affiché dans le journal et annoncé à voix haute par le navigateur (Web Speech API, fonctionne hors ligne)
  • Le registre des badges est sauvegardé en mémoire non volatile (NVS) et survit à une coupure de courant
États d'un badge : outillage, en stock puis sorti à chaque scan ; personnel, absent puis présent à chaque scan États d'un badge : outillage, en stock puis sorti à chaque scan ; personnel, absent puis présent à chaque scan

Traitement d’un scan

Ce que fait la boucle principale du firmware à chaque badge présenté :

Logigramme d'un scan : lecture ignorée si un UID attend d'être nommé ou si le même badge a été lu il y a moins de 2 s ; sinon effacement, capture pour création, badge inconnu proposé à la création, ou bascule d'état ; chaque cas ajoute un événement au journal Logigramme d'un scan : lecture ignorée si un UID attend d'être nommé ou si le même badge a été lu il y a moins de 2 s ; sinon effacement, capture pour création, badge inconnu proposé à la création, ou bascule d'état ; chaque cas ajoute un événement au journal

Création d’un badge

Le serveur ne pousse rien : le navigateur découvre l’UID scanné en interrogeant l’ESP32 toutes les 800 ms.

Séquence de création : l'utilisateur arme le mode création, approche le badge, le navigateur récupère l'UID par interrogation, l'utilisateur nomme le badge et choisit son usage, l'ESP32 enregistre la fiche en NVS Séquence de création : l'utilisateur arme le mode création, approche le badge, le navigateur récupère l'UID par interrogation, l'utilisateur nomme le badge et choisit son usage, l'ESP32 enregistre la fiche en NVS

Matériel

ÉlémentDétail
CarteESP32 WROOM-32 (DevKit v1)
LecteurModule RFID RC522, 13,56 MHz
BadgesMIFARE Classic 1K
Câblage7 fils Dupont, bus SPI

Le dépôt contient le code, le schéma de branchement et l’API HTTP détaillée.