IoT Async

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

con relativo sensore
e poi sviluppare un servizio micropython che vi notifichi il cambio di temperatura in modo asincrono.

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
Disclaimer: Gioorgi is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for website owners to earn advertising fees by advertising and linking to amazon.com, audible.com, and any other website that may be affiliated with Amazon Service LLC Associates Program.
As an Amazon Associate we earn from qualifying purchases.
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.