L’idea di realizzare un distributore automatico smart e online utilizzando un chatbot è nata dalla necessità di far conoscere determinati prodotti al pubblico in tempo di COVID 19 attraverso campioni omaggio. Per evitare il contatto ed eventuali assembramenti abbiamo optato per l’utilizzo di un distributore automatico che evitasse appunto qualsiasi tipologia di contatto con il distributore stesso e assembramento di persone. Infatti, grazie al distributore così progettato, il cliente per ricevere il campioncino desiderato non deve fare altro che chattare con un chatbot in una pagina dedicata su Messenger. Grazie a qualche puntuale domanda fatta dal chatbot al cliente, il sistema definisce quale prodotto è più indicato sulla base delle sue risposte e invia al distributore automatico online la corretta spirale che erogherà il prodotto.
L’incontro con l’IoT, nasce il distributore automatico smart
Il concetto di IoT rappresenta una possibile evoluzione dell’uso della rete internet: gli oggetti (le “cose”) si rendono riconoscibili e acquisiscono intelligenza grazie al fatto di poter comunicare dati di se stessi e accedere a informazioni aggregate da parte di altri. Per “cosa” o “oggetto” si può intendere più precisamente categorie quali: dispositivi, apparecchiature, impianti e sistemi, materiali e prodotti tangibili, opere e beni, macchine e attrezzature. Questi oggetti connessi che sono alla base dell’Internet delle cose si definiscono più propriamente smart objects (in italiano oggetti intelligenti) e si contraddistinguono per alcune proprietà o funzionalità. Le più importanti sono identificazione, connessione, localizzazione, capacità di elaborare dati e capacità di interagire con l’ambiente esterno”. [fonte Wikipedia]
Nel nostro caso abbiamo collegato un Raspberry al distributore automatico, in cui abbiamo installato il sistema operativo Microsoft Iot Core e un’applicazione scritta in UWP per farlo comunicare con il sistema centrale tramite Azure Iot Hub.
Azure Iot hub, come funziona
“L’hub IoT è un servizio gestito da Microsoft, ospitato nel cloud, che funge da hub di messaggi per la comunicazione bidirezionale tra l’applicazione e dispositivi online.
Si può usare l’hub IoT di Azure per creare soluzioni IoT con comunicazioni affidabili e sicure tra milioni di dispositivi IoT e un back-end della soluzione ospitato nel cloud. È possibile connettere praticamente qualsiasi dispositivo all’hub IoT”. [fonte Microsoft Docs]
Quando il cliente ha risposto a tutte le domande postegli dal chatbot, il nostro sistema individua quale tra i diversi prodotti erogare, inviando un Cloud to Device (C2D) message al distributore automatico, contenente il numero della spirale da erogare.
Il distributore connesso a internet e in ascolto continuo sull’Iot Hub, riceve il messaggio, deserializza il contenuto e individua quale motore far girare per erogare il prodotto al cliente.
Il ruolo del chatbot in un distributore automatico smart
Il chatbot ha un ruolo fondamentale in questo progetto; abbiamo provato diversi framework quali Twilio, Manychat, fino a individuare quello a noi più consono: Chatfuel.
Chatfuel è uno strumento che permette di creare chatbot da collegare a servizi esterni di chat come Telegram e Facebook Messenger.
È nato con lo scopo di rendere l’utilizzo dei chatbot facile e accessibile a tutti.
Grazie allo sviluppo di un’interfaccia estremamente intuitiva, infatti, è molto semplice creare il proprio flusso di conversazione tramite moduli sequenziali e blocchi in cui iniziare e terminare la conversazione. Dopo il messaggio di benvenuto, il bot interroga il cliente ponendogli alcune domande inerenti alla tipologia di prodotto caricato sul distributore. Ogni risposta del cliente viene salvata e al termine della conversazione i dati vengono inviati al sistema centrale, il quale si occuperà di individuare il prodotto ideale.
La comunicazione tra Chatfuel e il sistema centrale avviene tramite chiamate in GET e POST ad Azure function, che sono il core del nostro progetto.
Azure function
Azure function è il servizio di elaborazione serverless ospitato nel cloud di Microsoft Azure. Sono funzioni progettate per accelerare e semplificare lo sviluppo di applicazioni, senza la necessità di utilizzare un server. Nel nostro progetto si occupano di interfacciarsi con il database per recuperare le domande e opzioni di risposta da inviare al chatbot e di individuare il prodotto da erogare al cliente. È loro il compito, infatti, di inviare il messaggio C2D al distributore automatico a fine conversazione.
Conclusioni
Il progetto è stato molto interessante e a breve saranno installati i distributori automatici presso un centro commerciale a Viterbo. I distributori saranno sempre operativi, con un servizio disponibile 24 ore su 24, tutti i giorni della settimana. Microsoft è stato un partner fondamentale e grazie ai servizi messi a disposizione è stato più facile poter implementare questa tipologia di progetto.