- ESP32-S3-BOX-3 d’Espressif Systems (1 unité)
- ESP8266 (2 unités)
- Arduino Uno (1 unité)
- Raspberry Pi (fonctionnera comme serveur) (1 unité)
- Carte Micro SD de 32 Go
- Lecteurs RFID MFRC522 (2 unités)
- Bande LED WS2812B
- Buzzer passif (1 unité)
- Alimentation 5 V (1 unité)
- Résistances 330 Ohms (10 unités)
- Planche à pain et fils de liaison
- Conseil de performances
- Broches d’en-tête mâles
Schéma de circuit
- Schéma de circuit basé sur ESP8266 :

- Côté gauche du rack
- Côté droit du rack
- Section supérieure ou lumineuse du rack
- Schéma de circuit basé sur Arduino Uno :


Assemblage du matériel
Boîtier ESP32-S3 et connexion Arduino :
- ESP32 TX → Arduino RX
- ESP32 RX → Arduino TX
- GND commun
Lecteurs RFID :
- SDA (problème) → D10
- SDA (Vol/Sortie) → D8
- SCK → D13
- MOSI → D11
- MISO → D12
- RST → D9
- VCC → 3,3 V
- Masse → Masse
Bande WS2812B :
- DIN → D5
- VCC → 5 V
- Masse → Masse
Ronfleur:
Connexions ESP8266 (x2) :
- PIN_R1_LEFT → GPIO 5 (D1), connecté à une résistance de 330 Ω à la bande LED WS2812B
- PIN_R2_LEFT → GPIO 4 (D2), connecté à une résistance de 330 Ω à la bande LED WS2812B
- PIN_R1_RIGHT → GPIO 16 (D0), connecté à une résistance 330Ω à la bande LED WS2812B
- PIN_R2_RIGHT → GPIO 12 (D6), connecté à une résistance 330Ω à la bande LED WS2812B
- PIN_GLOW_RACK → GPIO 13 (D7), connecté à une résistance 330Ω à la bande LED WS2812B
- Alimentation → 5V
- Masse → GND
Présentation du système
Livres

Étagères à livres

Système de porte

- Un lecteur RFID MFRC522 pour détecter les livres sortants
- LED WS2812B pour les alertes visuelles
- Un buzzer pour les alertes sonores

- L’écran d’accueil apparaît après l’animation de démarrage.
- Il comprend les options « Rechercher un livre », « Livre à problèmes », « Retourner le livre » et « À propos de nous ».
Trouver un livre

- Permet aux utilisateurs de saisir le nom du livre.
- Les détails du livre sont ensuite récupérés depuis Raspberry Pi via l’API. S’il est trouvé, les détails du livre apparaîtront, y compris le titre, le statut et l’emplacement exact (étagère, côté, ligne, colonne), sinon l’erreur « Livre introuvable, essayez un autre livre » apparaîtra.
Il dispose également de quelques boutons d’action :- Étagère clignotante: Allume la bande LED en haut du support où est placé le livre.
- Livre clignotant: Éclaire la ligne/colonne en utilisant une couleur aléatoire et reflète cette couleur sur l’écran ESP32.
- Carte de localisation: Affiche une carte qui montre où nous en sommes et où se trouve la position du livre.
- Ouvrir sur téléphone: affiche un code QR qui renvoie à la page du livre sur le serveur Web local.
- Page de codes QR sur mobile:
- Lors de la numérisation, les mêmes options de l’interface ESP32 sont disponibles pour poursuivre la recherche de manière transparente depuis un appareil mobile.
- Sur la page Web, il affiche les mêmes détails du livre
Et fournit des boutons Blink Shelf, Blink Book et View Map


- L’utilisateur scannera le livre via RFID à proximité de l’ESP Box.
- Après cela, si la RFID est valide/non émise par un autre utilisateur, il lui sera alors demandé de fournir un numéro d’inscription.
- Après cela, il affichera les informations sur l’utilisateur et le livre.
- Si l’utilisateur le confirme, un e-mail OTP sera envoyé et l’utilisateur sera invité à saisir l’OTP.
- Entrez OTP :
- Si correct → Carnet de problèmes → Afficher l’écran de réussite → Confirmation par e-mail
- Si incorrect → Afficher l’écran d’échec

- L’utilisateur scannera le livre via RFID à proximité de l’ESP Box.
- Si le livre UID/RFID est marqué émis dans DB :
- Il marquera le livre comme publié
- Définir le statut sur « disponible »
- Afficher la confirmation de retour + un email sera envoyé
Système antivol
| Champ | Taper |
| book_type_id | TEXTE (PK) |
| nom | TEXTE |
| étagère | TEXTE |
| côté | TEXTE |
| rangée | ENTIER |
| colonne | ENTIER |
| Champ | Taper |
| copie_uid | TEXTE (PK) |
| book_type_id | TEXTE (FK) |
| statut | TEXTE (par défaut : ‘disponible’) |
| Champ | Taper |
| identifiant | ENTIER (PK, incrément automatique) |
| copie_uid | TEXTE (FK) |
| inscription_no | TEXTE (FK) |
| action | TEXTE |
| horodatage | DATETIME (par défaut : CURRENT_TIMESTAMP) |
| Champ | Taper |
| inscription_no | TEXTE (PK) |
| nom | TEXTE |
| TEXTE |

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

