Contrôle d’accès salle 214

Bonjour,
Je suis étudiant en deuxième année de cycle préparatoire à Polytech Angers. J’ai choisi de travailler sur le projet de contrôle d’accès à la salle 214.

Objectif du projet

La salle 214 est une salle de Polytech Angers dédiée aux projets. Cette salle contient beaucoup de matériel. Il est donc important de laisser la porte de cette salle fermée lorsque personne n’y travaille.
Actuellement, les étudiants qui veulent accéder à la salle 214 doivent demander la clé à l’accueil en échange de leur carte étudiante. Ils peuvent ensuite rapporter cette clé quand ils ont terminé.
Le but de mon projet est de simplifier cette démarche en rendant automatique l’ouverture de la porte grâce aux cartes étudiantes.

En effet, les cartes étudiantes contiennent une puce RFID. En scannant une carte à l’aide d’un lecteur de cartes, il est possible de récupérer un numéro unique pour chaque carte. Il y avait déjà un ancien système pour ouvrir la porte de la salle 214, mais il fonctionnait avec des badges et n’est plus utilisé. Je réutilise donc ce système pour déclencher l’ouverture de la porte.

Le premier ojectif de mon projet est de créer une base de données avec les numéros des cartes étudiantes pour gérer qui a accès à la salle. Un programme relié à cette base de données déclenchera un relais qui laisse passer le courant pour ouvrir la porte de la salle 214. Le second objectif est de créer un site web pour pouvoir contrôler facilement les accès et voir l’historique de toutes les entrées dans la salle.

Étapes du projet

Pour ce projet, j’ai utilisé deux Raspberry Pi. Une Raspberry Pi est un petit ordinateur de la taille d’une carte bancaire. On peut programmer une Raspberry Pi de la manière qu’on le souhaite. De plus, la Raspberry Pi possède des broches GPIO que l’on peut alimenter avec un programme. J’utilise donc ces broches pour relier la Raspberry Pi au relais qui ouvre la porte.

Une Raspberry Pi utilisée durant ce projet.

Une Raspberry Pi utilisée durant ce projet.

J’ai commencé par écrire un programme en langage Python qui récupère le numéro de la carte. J’ai ensuite créé une base de données. Une base de données peut être composée de plusieurs tables, j’ai donc créé une table composée comme ceci :

id Nom Prénom Numéro de carte Date de début d’entrée autorisée Date de fin d’entrée autorisée
1 DURAND Martin 00123456789ABCDE 2019-03-01 2019-06-30

Dans l’exemple ci dessus, Martin DURAND peut accéder à la salle 214 du 1er mars au 30 juin 2019.

J’ai donc intégré cette base de données à mon programme Python pour qu’il cherche si le numéro scanné par le lecteur est présent dans la base de données et si la personne a le droit d’entrer.
Pour activer le relais, j’ai déclenché l’alimentation d’une broche GPIO à partir du programme Python. Ainsi, tout fonctionnait avec une seule Raspberry Pi.

Test du programme avec une seule Raspberry Pi.

Test du programme avec une seule Raspberry Pi.

Une des contraintes de ce projet est que le déclenchement de l’ouverture de la porte de la salle 214 se fait sur un tableau électrique présent en salle 212. C’est pour cela que j’ai besoin de deux Raspberry Pi qui doivent communiquer entre elles pour ouvrir la porte. Ainsi, j’ai fait deux programmes Python :

  • Un pour la Raspberry Pi en salle 214 qui scanne la carte et regarde dans la base de données si la personne a le droit d’entrer
  • Un autre pour la Raspberry Pi en salle 212 qui déclenche l’ouverture de la porte

Le programme Python de la salle 214 envoie un message d’ordre d’ouverture à l’autre programme quand la personne est autorisée à entrer.

J’ai ensuite installé tous les composants dont j’avais besoin sur le tableau électrique en salle 212 avec l’aide de M. Bouljroufi.

Composants installés sur le tableau électrique

Composants installés sur le tableau électrique

Ainsi, j’ai pu tester que le programme fonctionnait correctement. Voici une vidéo de l’ouverture de la porte avec une carte étudiante :

J’ai ensuite créé le site web. J’ai pour cela installé un serveur web sur la Raspberry Pi de la salle 214. J’ai utilisé le langage php pour relier la base de données au serveur web. J’ai aussi créé une deuxième table dans la base de données pour avoir un historique de toutes les ouvertures de la porte de la salle.

Voici une démonstration du fonctionnement de ce site web :

Conclusion

Le résultat de ce projet est satisfaisant. On peut désormais ouvrir la porte de la salle 214 à l’aide d’une carte étudiante. De nombreux points restent à améliorer. Le site web pourrait avoir plus de fonctionnalités et être plus esthétique. Mais globalement ce projet a été une très bonne expérience. Cela m’a permis d’apprendre plein de nouvelles connaissances. J’ai appris les langages Python et php. J’ai découvert comment gérer des bases de données et j’ai amélioré mes compétences en électricité.