Introduzione a NodeMCU - come ho fatto a vivere senza
Coding
Scritto da Vincenzo Caputo
Cominciamo questa nuova serie dedicata al coding introducendo la piattaforma che utilizzeremo in seguito.Si tratta della scheda di sviluppo open source ESP8266 NodeMCU WiFi Devkit creata specificatamente per l'IoT composta da:
- un modulo Wi-Fi ESP8266-12E
- un convertitore USB/UART CP2102
- un regolatore di tensione a 3.3V
Inoltre, sono presenti un pulsante di reset e uno di flash. Quest’ultimo serve per riprogrammare il firmware solo nel caso in cui decidessimo di utilizzare come linguaggio, il linguaggio di programmazione Lua.
Ecco a voi il pin mapping del NodeMCU.
Non preoccupatevi se non avete capito molto. Nel corso della serie di tutorial, vi illustrerò le caratteristiche del NodeMCU utilizzandolo.Il termine NodeMCU, in realtà, si riferisce al firmware open source scritto nel linguaggio Lua caricato di default e non all'hardware che rappresenta. Noi continueremo ad utilizzare il termine NodeMCU come sinonimo della scheda di sviluppo infatti, uno dei modi per programmare la scheda di sviluppo è tramite l'uso dell'IDE ESPlorer utilizzando come linguaggio di programmazione proprio il Lua.In questa serie di tutorial utilizzeremo invece l'IDE di Arduino programmando in C++.Potete scaricare l'IDE di Arduino qui.
Qui invece come installare l'Add-on ESP8266 nell'IDE di Arduino.Abbiamo deciso di utilizzare il NodeMCU per questa serie di tutorial, anzichè una scheda Arduino, poichè l'unica scheda Arduino (credo) che includa il modulo Wi-Fi è la Arduino Yun e la differenza di prezzo rispetto al NodeMCU è solo di un ordine di grandezza...
Inoltre, la semplicità nella programmazione ci permetterà di realizzare bei piccoli progetti in poco tempo e con tanta soddisfazione.Dopo questa breve introduzione al NodeMCU facciamo un piccolo esempio su come far lampeggiare (blink) un led con il NodeMCU.
Blink di un led con NodeMCU
Ingredienti necessari:
Preparazione:
Prendete dell'hardware e collegatelo così:
Prendete del software, cioè l'IDE di Arduino, e scrivete così:
void setup() {
pinMode(D0, OUTPUT); //Dichiaro il pin D0 come Output
}
void loop() {
digitalWrite(D0, HIGH); //Imposto Alto il pin D0
delay(1000); //Attende 1 secondo
digitalWrite(D0, LOW); //Imposto Basso il pin D0
delay(1000); //Attende 1 secondo
}
Questo è lo sketch che andremo a caricare.
Descrizione:
La funzione setup() viene invocata dal NodeMCU una sola volta quando lo sketch inizia o quando viene premuto il tasto di reset. E' utilizzata ad esempio per inizializzare le variabili e gli oggetti che saranno usati in seguito, per impostare i pinMode, etc...
Al termine della funzione setup() viene invocata la funzione loop() che cicla all'infinito finchè il NodeMCU è alimentato.
La funzione pinMode() permette di impostare il pin digitale a cui si riferisce, in questo caso D0, come input o come output.
Il Reference di Arduino lascia un po' a desiderare per quanto riguarda la documentazione, ma la funzione pinMode() dovrebbe avere un prototipo del genere:
void pinMode(const int pin, const int mode);
mode può assumere i seguenti valori:
- INPUT
- OUTPUT
- INPUT_PULLUP
Questi valori sono in realtà definiti come costanti:
#define INPUT 0x0#define OUTPUT 0x1#define INPUT_PULLUP 0x2
La funzione digitalWrite() permette di scrivere un valore alto o basso al pin a cui ci si riferisce. In pratica, se impostato alto, fornisce una tensione tra il pin a cui si riferisce e il ground che nel caso del NodeMCU è di 3.3V mentre se è impostato basso fornisce una tensione nulla equivalente ad un circuito aperto.
Il prototipo della funzione digitalWrite() dovrebbe essere al pari della funzione pinMode():
void digitalWrite(const int pin, const int mode);
mode può assumere i seguenti valori:
- HIGH
- LOW
Risultato:
Colleghiamo il NodeMCU al pc tramite il cavo USB in modo tale da alimentarlo tramite il pc.
Nell'IDE di Arduino selezioniamo la scheda NodeMCU 1.0 (ESP-12E Module) così:
Selezioniamo la porta USB così:
Carichiamo lo sketch così:
Dopo aver caricato lo sketch "dovremmo" vedere il led che si illumina e si spegne ad intervalli di un secondo.
Se questo non avviene scrivetemi nei commenti e cercherò di aiutarvi il prima possibile.
Nel prossimo tutorial...
Introdurremo la classe Serial, molto utile per effettuare dei piccoli debug del programma, ed effettueremo una lettura su un pin digitale con il fine di sviluppare un piccolo sistema di coltivazione in idroponica.
Se avete suggerimenti su nuovi tutorial attinenti il NodeMCU non esitate a scrivere nei commenti.
Produrre e aggiornare contenuti su vincenzocaputo.com richiede molto tempo e lavoro. Se il contenuto che hai appena letto è di tuo gradimento e vuoi supportarmi, clicca uno dei link qui sotto per fare una donazione.