Il nostro hackerspace è situato all’Unical all’interno del Centro di Calcolo ad Alte Prestazioni (HPCC), il che ci pone un grosso problema: l’ingresso all’HPCC è limitato (il che non si sposa per niente con l’etica dell’hacklab), per entrare è necessario avere un badge magnetico e l’Unical ce ne ha (giustamente) forniti solo 4.
Storicamente quindi un membro Hacklab che volesse entrare in sede aveva due possibilità:
- Farsi prestare preventivamente un badge
- Chiamare all’interno per controllare che ci sia qualcuno (è possibile aprire la porta esterna dall’interno)
Per trovare una soluzione hacker al problema è nato il progetto presence, una webapp che permette di sapere se c’è qualcuno all’interno del laboratorio. Per realizzarlo abbiamo installato un tilt sensor sulla serratura della porta del laboratorio, collegato alla GPIO di una Raspberry Pi; su questa a sua volta gira un webserver che, in base allo stato del sensore, indica su una pagina web se la porta è aperta o chiusa.
Però il problema di accedere in caso non ci fosse nessuno rimaneva, per questo abbiamo poi deciso di spingerci più in là hackerando il sistema di apertura della porta esterna. Infatti suonando il campanello del laboratorio (Sinope) parte una chiamata dal centralino interno dell’HPCC verso il telefono del laborario, successivamente è possibile aprire la porta premendo il tasto *. Non abbiamo dovuto far altro che usare un modem dialtone (uno dei vecchi modem 56k) collegato alla solita RPi, più uno script python in modo da fargli ricevere la chiamata e inviare il tono * in modo automatico. Ovviamente dopo aver studiato la documentazione per i comandi AT necessari!
Il tutto è stato messo insieme con Django e Bootsrap ed è online su presence.hlcs.it (per aprire la porta è necessario avere un account). Ovviamente il software è rilasciato con licenza GPLv3, potete darci un’occhiata su github. Abbiamo in mente di continuare a lavorare sul sistema e renderlo facilmente estendibile e modulare, in modo da adattarsi a situazioni, hardware e “trigger” differenti.
Ed ecco la demo completa!