Internet of Things con Firmata e johnny-five

Nell’enorme quantità di piattaforme che implementano uno standard di comunicazione indipendente dalla scheda su cui si lavora per i progetti IoT sono rimasto sorpreso da Johnny-Five, che implementa il protocollo Firmata. Ogni microcontroller che implementa il protocollo Firmata, una volta connesso via USB ad un computer, è in grado di comunicare con esso mediante ogni linguaggio di programmazione che ne implementa una libreria. Il programma scritto nel linguaggio preferito, munito della libreria corretta, è quindi in grado di comunicare con il microcontroller, con i suoi pin in ingresso e uscita, in grado di leggere il valore di sensori e di inviare comandi agli attuatori. Oltre ad utilizzare ad esempio il protocollo I2C per interagire con altri oggetti connessi al microcontroller.

Ho visto vari tentativi di uniformare l’interfaccia di accesso ad un gran numero di microcontroller, in maniera proprietaria. La mia idea è che adesso è il momento in cui la community di sviluppatori contribuisce con l’introduzione di vie, metodi e protocolli aperti che permettono di sperimentare, fino a trovare uno standard universalmente riconosciuto, per cui decidere di adottare una metodologia proprietaria potrebbe rivelarsi una scelta limitante.

Lavorare con Johnny-Five prevede la scelta di Javascript come linguaggio di programmazione e l’uso di Node.js come piattaforma. In questo modo qualunque sia il dispositivo su cui è installata la piattaforma Johnny-Five, se a questo è collegato via USB un Microcontroller compatibile Firmata, è possibile scrivere del software in Javascript per interagire con il microcontroller tramite Node.js. I dispositivi connessi possono essere anche più di uno.

Il progetto ha mappato una grande quantità di sensori ed attuatori che possono essere utilizzati in maniera standard da codice. C’è anche qualcuno che, non vedendo l’amato dispositivo nella lista, ha deciso di scrivere un tutorial (PyMata) per connetterlo.

Il metodo comunemente più usato è quello di uploadare su Arduino uno sketch generico che implementa il protocollo Firmata, collegare Arduino al PC (o alla raspberry pi opportunamente configurata) e scrivere il codice di interazione con il dispositivo Firmata (in questo caso Arduino).

Qui un pò di documentazione del protocollo Firmata per Arduino.
Qui la documentazione della libreria Firmata per Arduino.