Case Study

Carimali: i progetti IoT e touchless per interagire con le macchine da caffè

carimali iot touchless

Carimali è una azienda italiana che dal 1919 si dedica alla produzione e all’esportazione di macchine per caffè in tutto il mondo. È tra le poche realtà a livello globale a produrre ed offrire una gamma completa sia di macchine per caffè superautomatiche sia tradizionali.

Nel 2016 il gruppo Carimali si amplia con la costituzione di una Business Unit commerciale dedicata esclusivamente al mercato italiano. La mission di questa nuova struttura è quella di fornire soluzioni complete di apparecchiature e servizi nell’ambito dei canali HoReCa (Hotellerie-Restaurant-Café) e OCS (Office Coffee Service), dall’installazione alla manutenzione delle macchine, con particolare attenzione alla predizione dei guasti sulle stesse e conseguente ottimizzazione delle forniture di ricambio.

Un tool per gestirle tutte

Nel 2017 nasce il progetto CARIcare: l’idea è quella di collegare le macchine del caffè ad internet e permettere a queste di inviare dati sul loro stato e attività e poter ricevere nuove configurazioni, comandi o aggiornamenti.

carimali bluedot

Carimali ci ha coinvolto nella realizzazione del loro progetto: siamo partiti con un MVP in cui gestivamo un solo modello di macchina, la BlueDot (che vedi qui accanto). Abbiamo implementato la funzionalità di personalizzazione delle bevande da remoto e la possibilità di visualizzare le informazioni più importanti sulle bevande prodotte e le anomalie riscontrate nella macchina.

Ad oggi, suddividendo l’implementazione del protocollo di comunicazione e i comportamenti di dominio tramite un sistema CQRS + Event Sourcing, siamo arrivati a gestire undici modelli di macchine!

Il progetto CARIcare nel dettaglio (tecnico)

Lo sviluppo lato backend ha un rilievo centrale in questo progetto. Il sistema poggia sul protocollo MQTT, che risolve il problema dell’instradamento dei messaggi permettendo di ordinarli in canali strutturati gerarchicamente.

Attraverso un broker, nel nostro caso RabbitMQ, il backend comunica in maniera asincrona con la coda dei messaggi in ingresso per elaborarli e generare gli eventi corrispondenti.

Abbiamo deciso di utilizzare un broker che facesse da traduttore da MQTT a AMQP vista la stabilità di quest’ultimo, la presenza di innumerevoli librerie che implementano questo protocollo e la possibilità di poter migrare facilmente sul cloud utilizzando servizi gestiti, nel caso in cui si volesse scalare in maniera rapida.

Il frontend di questo progetto è stato sviluppato utilizzando React, una libreria JavaScript molto famosa, sviluppata da Facebook per creare interfacce utente. Ogni componente comunica in maniera asincrona con il backend tramite un protocollo HTTP REST.

È nella parte backend di CARIcare che risiede tutta la logica di dominio per l’elaborazione dei dati che arrivano dagli utenti (HTTP) e dalle macchine del caffè (MQTT). Attualmente lo stack è composto da PHP, Symfony + Broadway (per la parte CQRS + EventSourcing), MySQL (per tutte le CRUD) e MongoDB (per gli eventi e i ReadModel).

Una delle schermate di dettaglio dello stato delle macchina

Le API REST hanno permesso anche a fornitori esterni di integrarsi con le nostre API e ricevere dati e informazioni per i loro sistemi gestionali, mentre il frontend come Single Page Application ha migliorato in maniera netta le performance del sito, dando anche all’utente finale una navigazione e un sistema di feedback migliore e più chiaro.

Touchless solutions: prendere un caffè senza toccare la macchina

Il business delle macchine da caffè ha subìto una frenata a causa della pandemia. Sia per il minor numero degli spostamenti, che ha prodotto una diminuzione dell’utilizzo di tutte quelle strutture che davano servizio ai viaggiatori e che avevano, tra le altre cose, anche delle macchine da caffè. Sia per la diffidenza nell’utilizzare un oggetto normalmente toccato da tantissime altre persone ogni giorno.

Per accogliere le nuove esigenze dei consumatori, a fine aprile 2020 abbiamo pensato di sfruttare il sistema di API di CARIcare per offrire un servizio attraverso cui le persone potessero scegliere una bevanda senza dover interagire con il display, ma tramite il proprio cellulare.

Abbiamo rilasciato il primo MVP alla fine della prima iterazione (cinque giorni lavorativi). L’idea era semplice: un QR-Code posizionato di fianco alla macchina, contenente un link alla pagina di selezione bevanda. Da lì, l’utente poteva selezionare la bevanda da far erogare alla macchina.

L’idea è piaciuta all’azienda e al marketing. Abbiamo ricevuto alcuni piccoli feedback riguardanti aspetto e funzionalità: nella successiva iterazione ci siamo focalizzati nel sistemarli. Nella terza – visto il via libera da parte del business per andare online – abbiamo reso il tutto più sicuro, introducendo delle sessioni temporanee e link a scadenza.

Dopo tre settimane il risultato è stato questo:

Nelle settimane successive, monitorando anche le statistiche di utilizzo e basandoci sul feedback di alcuni utenti, abbiamo migliorato la gestione degli errori e la compatibilità sui vari dispositivi mobili.

Attualmente il tool è online e viene utilizzato in varie parti del mondo, tra hotel e aeroporti. Ogni giorno in media vengono erogati da questo servizio centinaia di caffè.

La collaborazione pluriennale tra Carimali e Flowing ha portato ad avere un software come CARIcare, aperto al cambiamento e adattivo. Grazie al nostro approccio iterativo e incrementale, nel pieno dell’emergenza COVID siamo riusciti ad andare sul mercato con un prodotto funzionante, di valore per l’utente, in brevissimo tempo.

Da Product Owner della piattaforma IoT Carimali ho avuto l’occasione di poter lavorare più volte a strettissimo contatto con il team Flowing.

Le cose che ho apprezzato maggiormente sono in assoluto la loro capacità di consegnare valore in modo efficiente, mantenendo una buona flessibilità, e il loro costante senso critico nei confronti delle specifiche di progetto, attraverso un confronto costruttivo che più volte ha giocato un ruolo cruciale in termini di risultato e contenimento costi.

Personalmente ho potuto constatare quanto siano coerenti alla loro missione e, ultimo ma non meno importante, posso dire di aver imparato moltissimo dal loro metodo di lavoro agile con pratiche in continuo miglioramento.

Paolo Mantoan, IT Manager Carimali

Team

Andrea Mancino

Andrea Mancino

Development
Ettore Delprino

Ettore Delprino

Development
Simone D'Amico

Simone D'Amico

Development