# Hackdoor commandée par RFID

Le projet, démarré au début de l'année scolaire 2014-2015, a pour but d'automatiser la serrure de notre local, la cave 33. En effet, l'ancienneté de la serrure a fait se multiplier les clefs, données, copiées, rendues, recopiées, échangées, … re-recopiées. L'idée est d'arrêter les copies ici, tout en facilitant l'accès à la cave pour les nouveaux membres.

Les élèves de l'ENS possédant des cartes multifonctions basées sur le RFID, un lecteur de carte et la vérification de l'ID de cette dernière permettrons désormais de garantir l'accès à la cave. L'informatisation et la mise en réseau de ce module automatique permettront en outre de gérer la sécurité de la cave à distance, évitant d'embêtants et inutiles allers-retours vers le couloir BC.

hackEns souhaite remercier Intel qui nous a fourni un Galileo pour monter ce projet.

### État du projet

- Le projet est actuellement suspendu. En effet, le changement de local pour hackEns implique une nouvelle porte et une nouvelle serrure. Or le travail actuel consistait en l'adaptation de la partie mécanique sur la porte. Le projet devrait donc reprendre d'ici quelques semaines, une fois le déménagement achevé.

- Toute la partie informatique/électronique est en majeure partie terminée, contacter mathers ou \ sur IRC pour plus de précisions à ce propos.

- [MAJ 04/2016] On a des idées pour le faire dans le nouveau local à la rentrée! ## Plusieurs réunions après:

Enterrement d'une Galileo et d'une PN532.

Chaque composant marche séparément, sauf le servo (pas assez puissant) → un nouveau a été commandé.

On peut aussi ouvrir de l'exterieur même si la serrure est enclenchée.

## Réunion du 1er Octobre :

Beaucoup de monde est arrivé pour une première réunion, je remercie d'ailleurs tous ceux qui sont venus ! La présentation fut assez longue, et le reste assez court, mais parmi les questions qui sont ressorties souvent, la principale était : “Si ça plante, on peut toujours ouvrir ?”. La serrure permet d'ouvrir à l'extérieur avec une clef, à condition que le verrou ait fini sa rotation : cela implique qu'en cas de coupure de courant pendant une rotation de fermeture, le verrou ne doit jamais rester bloqué en cours de rotation. Si une solution mécanique a ressort a été proposée, a été à priori retenue une solution avec un système de secours à source d'énergie indépendante (batterie, condensateur chimique de grosse capacité…) permettant d'achever la rotation.

L'étude de la Galileo fut une des première chose faite ce soir. Elle contient un noyau Linux de base, et permettra de gérer autorisations et accès internet. Elle permet également un travail simple avec les microrupteurs et servos.

Pas mal de monde semble intéressé par l'utilisation et la compréhension du lecteur RFID, qui sera une grosse partie du travail à accomplir.

## Réunion du 9 Octobre :

Pas mal d'avancées faites cette semaine : on peut facilement envoyer et recevoir via les pins de la Galiléo, et récupérer les infos des cartes RFID. Cette dernière est utilisée via des paquets, nécessitant de ce fait un compilateur … absent de la Galiléo, pour l'instant.

Le travail sur la porte a été commencé, lui permettant notamment de se fermer complètement et de ne plus frotter au sol.

L'idée est d'avancer cette semaine en commençant certaines impressions des supports, et avancer le code. Au vu de l'avancée, une première version de base devrait être disponible d'ici deux semaines !

## Remarques diverses

L'intégralité du code est disponible sur notre dépot git.

### Configuration de `libnfc`

Pour compiler la libnfc depuis notre dépot git il faut faire :

  autoreconf -Wall -vis
  ./configure -with-drivers=pn532_uart,pn532_i2c
  make
  make install

Attention, l'étape `autoreconf` peut être lente.

Lors de l'appel au `./configure` de `libnfc`, ne pas oublier les arguments suivants pour que la bibliothèque puisse dialoguer avec notre carte nfc (pour pouvoir utiliser le lecteur via UART et I2C) : `./configure –with-drivers=pn532_uart,pn532_i2c`

Pour compiler un programme avec la libnfc: ````gcc -lmraa -lnfc hackens-alert-uid.c -o hackens-alert-uid````

Pour la configuration UART (serial), il faut préciser dans le fichier `etc/nfc/libnfc.conf` (`/usr/local/etc/nfc/libnfc.conf` dans la configuration par défaut) : ```

device.connstring = "pn532_uart:/dev/ttyUSB0"

```

Pour la configuration I2C, il faut préciser dans le meme fichier : ``` device.connstring = “pn532_i2c:/dev/i2c-0” ```

Note: Pour l'I2C, il faut utiliser un patch pour la libnfc (inclus dans le dépot git) pour utiliser al libmraa de la galileo.

### Automate de controle

### PCB pour brancher tous les mircorupteurs et servo et NFC à la Galileo

Chaque microrupteur a 3 fils : masse (blanc), 5V (rouge), valeur (noir)

Le servo a 3 fils : 5V (rouge), masse (noir), commande (marron) (les couleurs correspont aux fils de la nappe)

La led a 4 fils : rouge, vert, bleu, et noir. Le fil noir se branche sur le +5V et non sur la masse, car la led tricolore a un +5V commun et les leds s'allument en mettant 0V sur les fils de commande.

Mapping Galileo :

- 2 → Bouton intérieur (déverrouiller) - 3 → Servo - 4 → Bolt 2 (microrupteur à gauche du loquet) - 5 → Bolt 1 (microrupteur au-dessus du loquet) - 6 et 7 → Mircorupteurs des cales de la porte

- 10 → Bouton extérieur (verrouiller) - 11 → Led B - 12 → Led G - 13 → Led R - SDA → SDA de la NFC - SCL → SCL de la NFC

8 masses à relier ensemble et à la masse de la Galileo

9 Vdd à relier au +5V de la Galileo

Mapping du PCB :

- 02a - 09a : header relié aux pins SCL-10 de la Galileo (pas dans le même ordre) - 12a - 17a : header relié aux pins 7-2 de la Galileo (pas dans le même ordre) - 09,17 - 10,17 : header relié au GND et 5V de la Galileo

- 02b : SCL NFC - 03b : SDA NFC - 06b : Led R (fil rouge) - 07b : Led G (fil vert) - 08b : Led B (fil bleu) - 09b : Bouton extérieur (fil noir)

- 12b : Cale 1 (fil noir) - 13b : Cale 2 (fil noir) - 14b : Bolt 1 (fil noir) - 15b : Bolt 2 (fil noir) - 16b : Servo (fil marron) - 17b : Bouton intérieur (fil noir)

- 09,16 : 5V Cale (fil rouge) - 09,15 : 5V Cale (fil rouge) - 09,14 : 5V Bolt1 (fil rouge) - 09,13 : 5V Bolt2 (fil rouge) - 09,12 : 5V Servo (fil rouge) - 09,11 : 5V Bouton intérieur (fil rouge) - 09,10 : 5V Leds (fil noir) - 09,09 : 5V NFC (fil rouge) - 09,08 : 5V Bouton extérieur (fil rouge)

- 10,16 : GND Cale (fil blanc) - 10,15 : GND Cale (fil blanc) - 10,14 : GND Bolt1 (fil blanc) - 10,13 : GND Bolt2 (fil blanc) - 10,12 : GND Servo (fil noir) - 10,11 : GND Bouton intérieur (fil blanc) - 10,09 : GND NFC (fil noir) - 10,08 : GND Bouton extérieur (fil blanc)

Total : 43 soudures

## Contact

Pour toute question/suggestion/remarque/demande/autre, contactez Baltazar sur IRC.