Sistema IoT per svincoli autostradali
Realizzazione di un sistema per la gestione da remoto delle sbarre di emergenza
Cliente
Richiesta
Hai presente quando entri al casello e puoi prendere lo svincolo in una direzione o in un’altra? Immagina ora se, nella direzione in cui vuoi andare, ci fosse il traffico fermo per una qualunque causa: non sarebbe meglio evitare quella strada?
La necessità di Autostrade era appunto quella di poter chiudere con una sbarra automatizzata e controllata da remoto uno svincolo di accesso in caso di eventi eccezionali.
Semplice? Non proprio: come spesso accade, progetti che sembrano facili in apparenza, nascondono aspetti complessi.
Il sistema, infatti, doveva integrarsi con la rete di Autostrade per l’Italia, rispettare severi requisiti di security e di safety e rispondere in modo efficace a tutta una serie di eventi, prevedibili e non.
Soluzione
Metodologia
- Agile ispirato a Kanban all’interno del team
Servizi coinvolti
Tecnologia
- Hardware: scheda custom Linux
- WebApp: React
- Software: Go
Hai bisogno di supporto per il tuo progetto?
Risultati
Abbiamo fornito un prodotto completo: progettato e costruito l’hardware di un armadio, comprendente sia la scheda custom che il pannello, sviluppato il software connesso al network Autostrade e realizzato la Web App dialogante con la parte embedded per il controllo da remoto. Il tutto studiando a fondo l’esperienza utente e mettendo l’accento sull’accessibilità.
Il pieno controllo su software, hardware e firmware ci ha permesso di recepire tutte le istanze emerse durante lo sviluppo del progetto e fare le opportune modifiche.
Data l’importanza strategica e logistica di Autostrade, l’apparato è stato progettato per soddisfare le stringenti richieste di sicurezza informatica e di affidabilità.
Vantaggi
- Soluzione custom integrata
Avendo il controllo totale di tutte le specifiche e realizzando sia l’hardware che il software, siamo riusciti a gestire ogni variabile, in modo da mandare velocemente avanti la produzione e risolvere i problemi mano a mano che si sono presentati. - Diagnostica preventiva
Abbiamo implementato sistemi di euristica per la diagnostica e la manutenzione predittiva, per individuare possibili malfunzionamenti e per garantire un comportamento sicuro anche in caso di eventi eccezionali. - Usabilità
La particolare attenzione che rivolgiamo sempre all’esperienza utente rende il prodotto utilizzabile da una vasta gamma di operatori.
Hardware
Lato hardware, abbiamo fornito un armadio, da noi assemblato in ogni sua parte, posizionato allo svincolo in prossimità delle sbarre di chiusura, che contiene il quadro elettrico per l’alimentazione e il controllo delle sbarre e delle altre apparecchiature, come semafori, sirene di allarme, tastierini numerici e telecamere.
All’interno di esso, è presente una scheda controller collegata alla rete Autostrade, che comunica al server remoto – tramite messaggistica criptata – lo stato degli svincoli e permette di eseguire i comandi inviati dalla sala di controllo. Abbiamo scelto di realizzare una scheda custom Linux, più versatile, che consente di implementare tutte le richieste di sicurezza necessarie per il tipo di applicazione e per le esigenze del cliente.
L’apparato è dotato anche di un’interfaccia per il personale della manutenzione, che può compiere azioni manuali in fase di installazione del sistema e successive verifiche di corretto funzionamento. Sono poi previsti sistemi ridondanti di verifica di eventuali operazioni non consentite.
Abbiamo curato infine i piccoli dettagli, come l’illuminazione dell’armadio stesso: infatti, la maggior parte degli interventi viene fatta di notte per evitare disagi alla viabilità.
Software e Web App
Lato software, abbiamo realizzato due prodotti distinti (server e client), oltre alle configurazioni sistemistiche e ad alcuni servizi di utilità.
Il software client, realizzato in Go, è in esecuzione sulla scheda custom e ha le seguenti responsabilità:
- intercetta i segnali provenienti dall’armadio in strada (es. la pressione di un bottone) ed esegue il comando sullo svincolo (es. l’apertura)
- monitora lo stato della sbarra, del semaforo e degli altri accessori, riportando l’informazione e facendo scattare eventuali allarmi
- è in ascolto di comandi remoti, che poi vengono eseguiti sullo svincolo
Il software server, anch’esso realizzato in Go:
- comunica con i client attraverso connessioni cifrate ed autenticate
- raccoglie informazioni dagli svincoli (attraverso le comunicazioni inviate dai client), avvisando gli utenti o facendo scattare allarmi
- fornisce le API utilizzate dal frontend web, un’applicazione React.js utilizzata dagli utenti per la gestione degli svincoli
I servizi di utilità che abbiamo realizzato svolgono varie funzioni, come la gestione delle connessioni sicure, l’encoding real-time di streaming video per il monitoraggio degli svincoli e raccolta centralizzata dei log.
Il deploy in produzione di tutta l’infrastruttura è realizzato con moderne tecniche di DevOps, che permettono un deploy veloce, semi-automatizzato e sicuro, con una completa separazione degli strati (assimilabili a molti micro-servizi), utile anche in un’ottica futura in cui le diverse parti possono essere facilmente spostate (ad esempio, in una nuova infrastruttura server e/o cloud).
Anche in questa occasione, la scelta del Go come linguaggio principale di sviluppo (oltre a TypeScript per la parte frontend web) si è rivelata strategica, permettendo di sviluppare il software in tutto lo stack utilizzato (dal backend web, all’infrastruttura server fino al codice embedded), mettendo a fattor comune il codice e le librerie realizzate, con grande risparmio di tempo e risorse, ma comunque con un altissimo grado di affidabilità, sicurezza e prestazioni.
Usabilità e design
Quando si tratta di progettare interfacce che contemplano la ricezione e la risposta di allarmi, il dialogo tra frontend designer e backend developer diventa fondamentale poiché da esso sono generati i componenti che rispondono alle esigenze funzionali ed estetiche dell’utilizzatore finale.
A questo scopo, lato design, siamo partiti dalla mappatura dei requisiti principali e delle esigenze del cliente, per arrivare alla redazione di alcune storie basate su questi desiderata.
Il sistema doveva essere utilizzabile da un’utenza eterogenea, quindi accessibilità e esperienza utente sono state particolarmente curate studiando alcuni aspetti, come l’affiancamento di più colori o la sovrapposizione e sovraimpressione di elementi su mappe geografiche.
Infine, abbiamo realizzato un design system module (DSM) per rendere scalabile ed uniforme il progetto nel tempo, qualora questo evolva. Infatti, la progettazione di funzionalità è stata incrementale, in modo da recepire in futuro altre richieste del cliente senza stravolgere il design system e l’esperienza utente.
Peculiarità
La parte più emozionante è stata senza dubbio quella delle prove in loco. Le installazioni e i collaudi sul campo sono stati eseguiti necessariamente di notte, per evitare problemi alla viabilità, e abbiamo anche fatto un corso per imparare a guidare in retromarcia nella corsia d’emergenza!
Conclusione
In questo momento, i nostri armadi hanno passato tutti i collaudi e sono funzionanti, installati in due svincoli importanti dell’autostrada toscana.
Stiamo già preparando i prossimi!