NodeMcu: cos’è, a cosa serve, quali sono i vantaggi e gli svantaggi

NodeMcu è diventato negli ultimi mesi un validissimo compagno per tutti i miei esperimenti IOT; una valida alternativa all’ormai per me storico Arduino.

NodeMcu è una scheda che si basa sul famoso ESP 8266; una schedina che nel settore dell’internet of think è stata rivoluzionaria: con pochi euro (siamo nell’ordine dei 3..5 dollari) si possono connettere velocemente oggetti utilizzando la connessione WIFI di casa.

 

Vediamo più da vicino il develpoment kit (la scheda) di NodeMcu.

La schedina è facilmente reperibile su Ebay e su tutti i vendor di elettronica in generale.

Nel corso dei mesi, partendo dalla primogenita: l’ESP8266-01 sono nate una serie di schede figlie che rispondono alle esigenze più dipsarate.

Se volte approfondire ecco un link a tutta la famiglia di ESP attualmente sul mercato (link in inglese).

Il problema principale della scheda ESP8266 è la totale mancanza di un sistema di interfacciamento semplice (non c’è USB ne bottoni) e quindi la connessione/disconnessione dal PC; il flash ed il reset della scheda devono esser fatti utilizzando i PIN il che risulta scomodo nella fasi di sviluppo dell’oggetto.

NodeMcu, risolve questo problema, in breve è una ESP8266 alla quale sono stati aggiunti tutta una serie di componenti elettronici che ne facilitano di molto l’utilizzo specie nella fase di prototipazione dell’oggetto.

NodeMcu è un progetto opensource; qui il link al sito ufficiale. esistono diversi produttori che producono il componente ed è possibile equipaggiare la scheda con diversi firmware che consentono alla scheda di funzionare ed essere programmabile.

Esistono al momento 3 versioni di NodeMcu:

  • NodeMcu 0.9: è stata la prima ad essere lanciata ed è ormai andata in pensione da un anno a questa parte. E’ facilmente riconoscibile perché è gialla e blu. Questa scheda normalmente viene detta anche V1 ed è  colei che ha fatto la storia introducendo questo nuovo development kit. Questa scheda monta il chip ESP-12. Attenzione questa scheda ha dei grossi problemi di compatibilità con il mondo Mec.
  • NodeMcu 1.0: di questa release esistono in realtà 2 versioni una chiamata V2 ed una chiamata V3. Sono facilmente riconoscibili perchè totalmente nere. Questa scheda monta il chip ESP12-E che presenta una potenza maggiore rispetto al suo predecessore. L’evoluzione 1.0 presenta una forma più stretta rispetto alla precedente rendendo possibile il perfetto alloggiamento nelle breadboard cose impossibile nella precedente versione. Solitamente sul retro questa versione presenta la scritta “Amica” o DOIT che sono i nomi dei produttori. La versione V3 è di fatto un fork della V2 fatta dal produttore LoLin che presenta una larghezza maggiore rispetto alla V2 ed una robustezza maggiore dell’apparato USB. Si tratta di piccole modifiche; di fatto nella vita comune entrambe le versioni offrono le stesse funzionalità.
il confronto tra NodeMcu 0.9 e 1.0 viste dal retro.

il confronto tra NodeMcu 0.9 e 1.0 viste dal retro.

Altra cosa molto interessante è che possibile utilizzare l’IDE di Arduino per programmarlo (l’IDE è il software di Arduino) scegliendo NodeMcu tra le schede proposte nell’apposita sezione.

 

Dal punto di vista della connessione al PC tutto è molto semplice: la connessione avviene tramite un semplice cavo micro usb come si fa del resto con Arduino senza dover utilizzare altri hardware che fanno da ponte il che è un vantaggio enorme se si deve continuamente caricare del codice.

I vantaggi rispetto all’utilizzo diretto della ESP riassumendo sono:

  • risparmio per l’acquisto di componentistica che fa da ponte tra il PC e la scheda
  • costo dell’hardware molto contenuto
  • dimensioni dell’hardware simili a quelle di un Arduino Nano con il vantaggio di avere già una connessione WIFI a bordo della scheda
  • facilità di connessione (si collega tutto tramite USB)
  • facilità nella fase di flash della scheda (si preme semplicemente un bottone senza bisogno di ponticelli tra i pin)
  • facilità nel reset della sheda (si preme semplicemente un bottone senza bisogno di ponticelli tra pin)
  • possibilità di utilizzare direttamente l’IDE di Arduino nella fase di programmazione della scheda