Ouvrir des casiers dans deux vestiaires différents

Bonjour à tous

Je viens vers vous car je me pose des questions sur un projet que j’ai.

Mes connaissances en arduino sont de niveau débutant.

Mon Projet :

Ouvrir des casiers dans deux vestiaires différents soit 30 casiers dans le vestiaire femme et 30 casiers dans le vestiaire homme.

Un lecteur de carte dans le vestiaire femme qui ouvrira uniquement les casiers du vestiaire femme et un lecteur de carte dans le vestiaire homme qui ouvrira uniquement les casiers du vestiaire homme.

Style de lecteur de carte : https://www.amazon.fr/Neuftech®-Lecteur-capteur-dinduction-CRFM-522/dp/B00QFDRPZY/ref=sr_1_15?__mk_fr_FR=ÅMÅŽÕÑ&crid=2K99KHPA6WPYN&dchild=1&keywords=lecteur+de+badge+nfc&qid=1591989299&s=hi&sprefix=lecteur+de+badge%2Cdiy%2C149&sr=1-15

Chaque casier sera commandé par badge soit 30 badge différents par vestiaire. Les badges seront gérés par un arduino nano (soit 30 nano dans chaque vestiaire).

Style de badge : https://www.amazon.fr/LIBO-Smart-contrôle-Proximité-Porte-clés/dp/B07GLH7PGL/ref=pd_sbs_60_8?_encoding=UTF8&pd_rd_i=B07GLFYSZC&pd_rd_r=a5539eb9-2425-4a65-b95f-4006331395ce&pd_rd_w=9D3RQ&pd_rd_wg=O3FAH&pf_rd_p=0baa9522-93fe-4512-9471-0c8d24e13dac&pf_rd_r=WKBFKKGQ5SX7971MCCSB&refRID=WKBFKKGQ5SX7971MCCSB&th=1

Style d’arduino nano : https://www.amazon.fr/IZOKEE-ATmega328P-CH340G-Microcontrôleur-Arduino/dp/B072XS9ZTX/ref=as_li_ss_tl?s=computers&ie=UTF8&qid=1550031958&sr=1-
6&keywords=arduino+nano&linkCode=sl1&tag=arduinofrance-21&linkId=e14fa0ded38662c75f539314c5d862f5&language=fr_FR

A la sortie du nano, il y aura des cartes relais qui commanderont les gâches électriques des casiers avec un voyant pour indiquer le casier ouvert.

Style de carte relais : https://www.amazon.fr/AZDelivery-16-Relais-coupleur-Arduino-compris/dp/B07TZ16GMF/ref=sr_1_1_sspa?__mk_fr_FR=ÅMÅŽÕÑ&dchild=1&keywords=carte+relais+arduino&qid=1591992080&s=hi&sr=1-1-spons&psc=1&spLa=ZW5jcnlwdGVkUXVhbGlmaWVyPUFBQ1UzVUU1UVZPUUwmZW5jcnlwdGVkSWQ9QTA1NjQ1MDIzUTZQUlZJVTVYMElMJmVuY3J5cHRlZEFkSWQ9QTAyMDA4NTczTVczNFpPREg4QUJQJndpZGdldE5hbWU9c3BfYXRmJmFjdGlvbj1jbGlja1JlZGlyZWN0JmRvTm90TG9nQ2xpY2s9dHJ1ZQ==

Style de gâche électrique : https://www.amazon.fr/Aexit-Serrure-électrique-électro-aimant-solénoïde/dp/B07L69ND13/ref=sr_1_61?__mk_fr_FR=ÅMÅŽÕÑ&crid=2WJA2L6P5P8PG&dchild=1&keywords=electroaimant+12v&qid=1591993135&s=hi&sprefix=electro%2Cdiy%2C149&sr=1-61

Tout cela sera alimenté par deux alimentations : une de 5V pour les nano et une de 12v pour les gâches électriques et le voyant des casiers (pour chaque vestiaire).

Les questions que je me pose ?

  1. Cela est-il faisable ???? si oui voir les autres questions.
  2. Suis-je obligé de mettre un arduino nano pour chaque casier?
  3. Est-il possible d’avoir deux badges : l’un qui ouvre tous les casiers du vestiaire femme et l’autre qui ouvre tous les casiers du vestiaire homme?
  4. Est-il possible de relier les connecteurs du RFID sur tous les nano en même temps ?
  5. Pour ce qui est de la commande de la gâche, elle sera faite par la carte relais qui sera commandée par les arduino : cela est-il possible ?
  6. Mon système sera-t-il évolutif au cas où j’ai besoin de rajouter des casiers dans les vestiaires ?
  7. Ce système-là est-il fiable pour mon cas ?
  8. Y a-t-il un autre moyen plus simple ?

Voila vous savez tout sur mon projet que j’ai assez détaillé j’espère pour que vous puissiez bien comprendre ce que je veux.

Je remercie d’avance à tous ceux qui vont pouvoir et qui vont vouloir m’aider à réaliser ce projet.

Une dernière chose : si vous voulez savoir pourquoi je veux faire ce projet, c’est très simple : les clients ne me rendent pas tous les temps les clefs et je suis obligé de changer la serrure (question de sécurité envers les autres clients) et cela me coûte un bras et une jambe chaque année. Donc avant de me retrouver cul de jatte et manchot, il faut que je trouve une solution moins coûteuse et quand je vois les prix des badges sur aliexpress, avant d’être cul de jatte et manchot, ils pourront en voler des badges (environ 25€ les 100 le prix de deux serrures)

bonsoir
Il ne faut pas oublier que le cartes mifares supportées par le mrfc522 comportent des zones qui sont R/W (lecture/ecriture) et emportent "un peu" de securité.

les infos particulieres d'autorisation diverses peuvent donc etre embarquées SUR la (les) cartes

en theorie 8) seul le 1er secteur de chaque carte (n° de serie) n'est pas modifiable

:slight_smile: hello

pour amorcer le débat :slight_smile:

à l'entrée de chaque vestiaire:
un lecteur RFID, une mega 2560 et une platine de 30 relais ou transistors
la méga est largement dotée en entrées/sorties pour te permettre de faire un système évolutif

liaisons filaires entre la platine et les gâches électriques/lampes témoins.

  1. Suis-je obligé de mettre un arduino nano pour chaque casier?

Non.

  1. Est-il possible d'avoir deux badges : l'un qui ouvre tous les casiers du vestiaire femme et l'autre qui ouvre tous les casiers du vestiaire homme?

Bien sûr, mais d'un point de vue respect de la propriété privée je trouve ça douteux.

  1. Est-il possible de relier les connecteurs du RFID sur tous les nano en même temps ?

Certainement pas.

  1. Pour ce qui est de la commande de la gâche, elle sera faite par la carte relais qui sera commandée par les arduino : cela est-il possible ?

Oui, mais une NANO ne possède pas assez de sorties pour commander 2 cartes à 16 relais.
Il faudra envisager deux expanders 16 voies du genre MCP23017.
Il est possible aussi d'envisager une carte MEGA (54 sorties) mais cela imposerait de réaliser les liaisons aux cartes relais à l'aide de fils DUPONT. Je doute de la fiabilité.

  1. Mon système sera-t-il évolutif au cas où j'ai besoin de rajouter des casiers dans les vestiaires ?

Il suffira de rajouter une carte relais et un expander.

  1. Ce système-là est-il fiable pour mon cas ?

Tout dépendra de la qualité de la réalisation.

  1. Y a-t-il un autre moyen plus simple ?

Oui : faire des doubles des clés actuelles :wink:

hbachetti:
Il est possible aussi d'envisager une carte MEGA (54 sorties) mais cela imposerait de réaliser les liaisons aux cartes relais à l'aide de fils DUPONT. Je doute de la fiabilité.

-> Prendre une MEGA Mini (~ 38mm x 54mm) - on peut souder plus simplement

Pour ce projet il serait bien d'évaluer la partie mécanique et surtout le câblage.

  • fixation de la gâche
  • passage et protection des câbles
  • etc.

Si les câbles ne sont pas protégés leur arrachement accidentel est possible, et il serait dommage d'ouvrir le casier à la disqueuse pour réparer.

D'autre part les problématiques logicielles sont nombreuses :

  • saisie des ID de cartes et association N° de carte / N° de casier
  • remplacement d'une carte par une autre pour un N° de casier donné (perte, carte non rendue)

J'espère qu'il n'est pas envisagé de maintenir une liste de cartes dans le code ...

Deux solutions :

Afficheur TFT (pourquoi pas tactile) + clavier
Interface graphique

Serveur WEB
Plutôt qu'un ARDUINO je verrais assez un ESP32 comme sur ce projet : serveur-esp32-implementation-3eme-partie, afin de bénéficier de la facilité de développement et d'utilisation du serveur WEB.

Un ESP32 pourra facilement piloter le lecteur et les relais (avec des expanders).

Sans solides connaissances en logiciel ce projet sera difficilement envisageable, quelle que soit la solution retenue.

Utilisez la balise quote pour citer quelqu’un - votre post est illisible ...

Bonjour

Un grand merci pour vos réponses.

Je vais faire de même pour ne pas faire d’erreurs sur mon projet.

Artouste:
bonsoir
Il ne faut pas oublier que le cartes mifares supportées par le mrfc522 comportent des zones qui sont R/W (lecture/ecriture) et emportent “un peu” de securité.

les infos particulieres d’autorisation diverses peuvent donc etre embarquées SUR la (les) cartes

en theorie 8) seul le 1er secteur de chaque carte (n° de serie) n’est pas modifiable

Les cartes ou les badges que j’utiliserais n’auront aucune information. J’utiliserais juste le n° de série pour ouvrir un casier.

dfgh:
:slight_smile: hello

pour amorcer le débat :slight_smile:

à l’entrée de chaque vestiaire:
un lecteur RFID, une mega 2560 et une platine de 30 relais ou transistors
la méga est largement dotée en entrées/sorties pour te permettre de faire un système évolutif

liaisons filaires entre la platine et les gâches électriques/lampes témoins.

Si je ne me trompe pas, l’arduino mega 2650 a 54 sorties ?
Donc je pourrais évoluer de 24 casiers par la suite ?

hbachetti:
Bien sûr, mais d’un point de vue respect de la propriété privée je trouve ça douteux.

Le deuxième badge ne servira que pour le nettoyage et désinfection des casiers quand il n’y aura plus de client

hbachetti:
Oui, mais une NANO ne possède pas assez de sorties pour commander 2 cartes à 16 relais.
Il faudra envisager deux expanders 16 voies du genre MCP23017.
Il est possible aussi d’envisager une carte MEGA (54 sorties) mais cela imposerait de réaliser les liaisons aux cartes relais à l’aide de fils DUPONT. Je doute de la fiabilité.

Il suffira de rajouter une carte relais et un expander.

Comme je le dis juste au-dessus, je vais partir sur une MEGA

hbachetti:
Tout dépendra de la qualité de la réalisation.

Pour ce qui est de la liaison, je compte faire une platine en PCB avec ma CNC pour tout mettre dessus, ce qui évitera les liaisons par fils.

Les seuls fils seront l’alimentation, la liaison entre les relais et les casiers puis la liaison entre le lecteur de carte et le MEGA.

hbachetti:
Oui : faire des doubles des clés actuelles :wink:

Les casiers ne sont pas attribués aux mêmes personnes donc point de vue respect de la propriété privée, c’est pire que ma carte qui ouvre tous les casiers.

Autre chose : je dis en début de mon post que je vais utiliser deux alim. Est-il possible d’utiliser qu’une alim de 12v aussi bien pour les gâches que pour les arduino mega ?

Pour ce qui est de la liaison, je compte faire une platine en PCB avec ma CNC pour tout mettre dessus, ce qui évitera les liaisons par fils.

Possible avec une carte comme propose J-M-L.

Autre chose : je dis en début de mon post que je vais utiliser deux alim. Est-il possible d'utiliser qu'une alim de 12v aussi bien pour les gâches que pour les arduino mega ?

Oui.

On trouve sinon des "ProtoShield pour Mega"


elle s'enfiche sous la carte MEGA et on a des borniers à vis qui donnent accès aux pins. ça permet de faire mieux qu'avec des Dupont

grosgros:
Bonjour

...

Les cartes ou les badges que j'utiliserais n'auront aucune information. J'utiliserais juste le n° de série pour ouvrir un casier.

Bonjour

SI je resume ce que j'ai compris de tes souhaits et pour une realisation (au moins dans un premier temps) simple et rapide je partirais trés surement sur qq chose comme çà :

  • une carte "master" peux ouvrir tous les casiers attachés à un lecteur
  • une carte "lambda" ne peux ouvrir qu'un casier attaché à un lecteur

que ce soit dans le le vestiaire homme ou femme n'est en soit pas important , dans la mesure où il y a un lecteur MRFR522 par vestiaire "sexé"

le N° de serie "usine" d'une carte n'est pas là une info interessante à connaitre et utile à la résolution du probléme

pour une carte "lambda" j'inscirais Dans la carte et dans une zone protégée par MP de la carte l'info concernant le casier qu'elle est autorisée à "ouvrir"

un lecteur (arduino + MRFC522) sur presentation d'une carte n'a pour mission que de simplement "regarder" (lecture de la zone reservée avec le MP d'encodage) si il y a un relais/sortie à activer en correspondance.

Il n'y a aucune raison objective d'aller se "prendre" le choux avec les "N° de serie" :grin:
c'est la carte qui embarque les infos d'autorisations .

aprés les differentes déclinaisons (carte master , droits divers, nb d'utilisations, etc) sont imples à gérer/décliner

I.e il est facile de preparer des cartes d'avance à mettre en circulation par exemple si une carte "lambda" n'a pas été restituée en fin de journée/session.

Il n'y a aucune raison objective d'aller se "prendre" le choux avec les "N° de serie" :grin:

hum - c'est quand même plus simple (et moins secure) que d'aller lire des secteurs... :slight_smile:

J-M-L:
hum - c'est quand même plus simple (et moins secure) que d'aller lire des secteurs... :slight_smile:

Bonjour JML
çà depend des finalités recherchées
parce que toutes façons pour avoir le N° de serie ,il faut de toutes façons aller y lire le secteur 0 8)

la theorie veux que le secteur 0 ne soit simplemenr pas reinscriptible/modifiable aprés sortie "usine"

mais çà c'est la "theorie" , parce que la securité avec "le mifare basique" aujourd'hui... c'est une simple vue de l'esprit :grin:

Je ne vois pas de prise de chou à aller lire le N° de série.

De toutes façons il faudra une table soit en FLASH (liste des N° de casier) soit en EEPROM (liste des couples N° de série / N° de casier).

Il faudra également un bout de logiciel pour créer les nouvelles cartes en cas de perte ou de carte non rendue.
Deux méthodes :

  • remplacer le N° de carte qui correspond à un casier donné dans la liste
  • encoder le N° de casier dans la nouvelle carte

La problématique d'enregistrement des cartes dans la base clients, ou du N° de casier dans la carte, n'a même pas été évoquée.
Il est évident que cela nécessite une IHM.

En partant sur une MEGA cela nécessitera clavier + écran ou écran tactile.
Outre la partie logicielle cela entraîne quelques difficultés supplémentaires d'intégration mécanique.
La réalisation d'un boîtier propre comportant un écran et un clavier n'est pas si simple, sauf si l'on dispose d'une imprimante 3D.

Le plus simple serait une page WEB (accès par tel portable), un montage à base d'ESP32 serait complètement invisible et le boîtier serait un simple coffret avec face avant plastique disponible dans le commerce.

###EDIT : un boîtier avec écran + clavier sera également plus sujet à vandalisme.

la theorie veux que le secteur 0 ne soit simplemenr pas reinscriptible/modifiable aprés sortie "usine"

Il ne s'agit pas de modifier le N° de série de la carte, mais d'inscrire le nouveau N° de carte dans une liste de couples N° de carte / N° de casier, à l'emplacement adéquat.

hbachetti:
Il ne s'agit pas de modifier le N° de série de la carte, mais d'inscrire le nouveau N° de carte dans une liste de couples N° de carte / N° de casier, à l'emplacement adéquat.

Tout à fait d'accord Henri
Mais pour ajouter "une nouvelle carte" , l'utilisation du numero de serie impose que l'arduino la connaisse à priori d'une maniere ou d'une autre , dans mon approche ce n'est pas necessaire , cette info est encodée (avec un peu de secu) dans n'importe quelle carte "neuve ou pas"
le lecteur (arduino+MFR) fait une lecture d'un secteur X avec la clef definie et active les actions en fonction de cette lecture.

les droits sont encodés sur la carte , c'est en çà que j'exposais que le N° de serie , n'est pas une notion absolument necessaire et utile.

Il n'y a pas de base à maintenir

Aprés tout depend de la la sophistication que l'on recherche pour le systeme.

Il n'y a aucune sophistication.
Une carte a un seul droit et il y a une seule action possible : ouvrir.

Que l'on encode le N° de casier dans la carte ou le N° de série dans une liste, la difficulté est à peu près équivalente.
Il faut simplement prévoir le bout de logiciel qui fera le boulot, et surtout l'IHM.

hbachetti:
Il n'y a aucune sophistication.
Une carte a un seul droit et il y a une seule action possible : ouvrir.

Que l'on encode le N° de casier dans la carte ou le N° de série dans une liste, la difficulté est à peu près équivalente.
Il faut simplement prévoir le bout de logiciel qui fera le boulot, et surtout l'IHM.

oui tout à fait d'accord

Les bibliothèques existantes donne l'UID en un seul appel après détection de présence - c'est en ce sens que je disais que c'est simple à coder.

MFRC522 mfrc522(SS_PIN, RST_PIN);  // Create MFRC522 instance
...

if (mfrc522.PICC_IsNewCardPresent() &&  mfrc522.PICC_ReadCardSerial()) {
  // --> le N° de série est dans mfrc522.uid

}

Le seul doute que j'aurais concerne la fraude.
Il est facile de changer l'UID d'une MYFARE.
Je l'ai jamais acheté de lot de cartes. Les UID sont-ils consécutifs ou non ?
Si oui, si un utilisateur possède une carte ayant l'UID 0x12345678 il est facile de créer une nouvelle carte avec l'UID 0x12345679 ou 0x12345677 pour ouvrir le casier N-1 ou N+1.

Dans le doute on peut changer tous les UID pour éviter qu'ils se ressemblent tous.
Mais on peut aussi écrire le N° de casier dans un secteur, avec un peu de sécu en plus (le CRC16 ou la SHA1 d'une combinaison de N° de casier + N° de série).
Bref, il y a X solutions.

Oui le No de série c’est pas très secure… mais même la crypto des MIFARE classic est cassée depuis longtemps (mfoc attack / hardnested attack). Desfire est robuste (si vous n’utilisez pas que le UID)

Plus d’info sur les hacks ici