Visto il successo dei voice personal assistant come Google Home e Alexa, mi stavo anche io interessando all'argomento visto che ho a casa 2 Home Mini e mi incuriosisce come poter collegare un Arduino (o ESP diciamo) al servizio vocale e "fare qualcosa comandandolo con la voce".
Di fatto, stando a quanto ho potuto vedere, ci sono varie soluzioni possibili ognuna comunque con pro e contro. Attualmente non ho ancora fatto prove specifiche, perché prima di scegliere una modalità ovviamente vorrei capirne pro e contro per identificare quella a me più adatta. Ci sono anche alcune varianti (ad esempio usando Blynk in mezzo) ma per ora vorrei concentrarmi su quelle più "canoniche".
Provo a riepilogarle, anche se qualcosa ancora non mi è del tutto chiara, ma correggetemi se qualcosa vi risulta errato o da completare:
-
Home -> Assistant -> IFTTT -> Arduino
Questa è quella più o meno "canonica", diciamo quella "tutta Google" (Assistant di fatto è su Dialogflow che si chiamava API.AI in vecchi tutorial). Qualche informazione QUI (tralasciate il tipo di device).
Ma ha come contro il fatto che bisogna aprire una porta specifica sul proprio firewall per permettere ad IFTTT di dialogare col device, e questo può essere un problema. -
Home -> Assistant -> Heroku -> Arduino
Questa soluzione è analoga alla precedente, ma utilizzando Heroku non è necessario aprire porte sul firewall in quanto è il device che si connette e registra sul server Heroku.
Ha come "contro" che utilizza un servizio esterno che in precedenza non avevo mai sentito. -
Home -> Assistant -> IFTTT -> Adafruit -> Arduino
Come descritto QUI, si collega via MQTT ad Adafruit IO il quale si aggancia a IFTTT.
Anche questa soluzione non richiede l'apertura di firewall, ma, almeno dal mio punto di vista, anche se coinvolge un server in più rispetto alla soluzione 2, diciamo mi "fido" più di Adafruit che di Heroku
Mi chiedo quale sia il metodo utilizzato dai device come Chromecast ad esempio, teoricamente sarebbe il primo, ma dato che non si deve aprire nessuna porta, probabilmente si registra in un server Google, e "giocano in casa".
Tutte e tre le soluzioni sono quindi ovviamente praticabili per cercare di interfacciare Arduino o un ESP, ma mi sembra di aver capito che la terza sia quella più frequentemente utilizzata.
In definitiva, confrontando pro e contro voi quali suggerireste, e perché? Se avete già fatto qualcosa in questo contesto, quale soluzione avete utilizzato?