I linguaggi di programmazione per l’IoT

Nel momento in cui si decide di sperimentare direttamente il mondo Internet of Things sporcandosi le mani diventa inevitabile avere a che fare con i Microcontroller disponibili nel mercato. Ci si accorge subito che la prima cosa da fare una volta data l’alimentazione alla nostra scheda è farle fare qualcosa, qualcosa che sia deciso da noi.

Ogni microcontroller prevede l’uso di un linguaggio di programmazione, molto spesso associato ad uno specifico IDE, che consente di controllarne debug e upload sulla scheda.
Arduino, ad esempio, mette a disposizione il linguaggio di programmazione C e un IDE specifico. Il C è il linguaggio universale per interagire con l’Hardware, per questo è utilizzabile su ogni scheda.

L’IDE può essere installato sul computer su cui si sviluppa il software per la scheda, oppure può essere disponibile su Cloud, come fa mbed in maniera molto intelligente. Particle mette a disposizione degli sviluppatori un sistema simile.
Solitamente i Web IDE danno agli sviluppatori un’area riservata, uno spazio in cui editare, debuggare e mantenere i propri codici sorgenti, metterli a disposizione con la community. Nel caso specifico di mbed è supportata una ricca lista di schede ARM.
Segnalo un nuovo IDE trasversale, open source, che ad oggi sembra promettere bene come direzione: Platformio.  Va installato sul proprio PC e permette di scrivere codice sorgente per una grande varietà di schede.

Una nota a parte invece va ai single board computer, sui quali è possibile, anzi necessario, installare un Sistema Operativo come Linux, Android, Windows 10, con pieno supporto ai linguaggi di programmazione come Python, Java, Ruby, PHP, Javascript… Il livello sale e salgono anche le potenzialità di complessità raggiungibili.

L’approccio che consiglierei di seguire è quello di provare molte schede diverse fra di loro e molte vie per la loro programmazione, ricordando sempre che il focus è l’Internet of Things: oggetti connessi fra di loro e in rete che lavorano insieme per risolvere uno specifico problema.
Altra cosa è acquistare una Raspberry PI per creare un Media Center casalingo low cost.