IoT Async
Disclaimer: con alcuni dei siti linkati in questo articolo Gioorgi ha un'affiliazione (in particolare con Amazon) e ottiene una piccola quota dei ricavi, senza variazioni dei prezzi. Ma potete anche cercare le stesse cose su Google.
Qualche mese fa avevo sviluppato una applicazione IoT per misurare la temperatura e spedire i dati ad una coda mqtt. Poi c’era uns server che collezionava i dati. Totale: tre server, con tre punti di fallimento ma architettura molto “cool”
In effetti però la potenza dei moderni chip embedded è tale che è possibile implementare una soluzione completamente asincrona “alla Erlang”. Con meno di 8 euro, potete procuravi il chip esp8266 su Amazon
L’idea è che chi è interessato alla temperatura si “registri” sul disposivo IoT con qualcosa come
curl http://esp8266/subTemp/$callerHostname/$desideredPort/$callerRef # Esempio attualizzato curl http://esp8266/subTemp/mypc/7001/pushTemp
Dopodiché sarà il dispositivo IoT con i suoi tempi (per esempio dettati dalla funzionalità del sensore, ecc) a fare una chiamata all’ indietro (callback) del tipo
http://callerHostname:desideredPort/callerRef/$temperature/$humidity # Esempio attualizzato http://mypc:7001/pushTemp/23/84
Per semplicità le chiamate sono in GET (benché dovrebbero essere delle POST).
L’agente interessato a tale misure può essere un server scritto in nodejs, python o ruby e può anche richiedere la notifica ad un server terzo (per es esposto su Internet), per es sottoscrivendolo con qualcosa come
curl http://esp8266/subTemp/serverPippo/80/sendTemperatureAndHumidity