Questo articolo ti fornirà tutte le informazioni necessarie sul pinout e sulle differenze tra le schede NodeMCU ESP8266 e Arduino UNO.
Ho incluso un diagramma dettagliato delle specifiche dei pin di NodeMCU ESP8266 e Arduino UNO.
Dopo aver letto questo articolo, saprai come utilizzare Arduino UNO e la scheda ESP8266 con Arduino IDE e conoscerai le differenze tecniche tra le due schede.
Materiali necessari
Componenti hardware
Software
| Arduino IDE | Arduino IDE |
Makerguides.com partecipa al programma Amazon Services LLC Associates, un programma di affiliazione progettato per fornire un mezzo ai siti per guadagnare commissioni pubblicizzando e collegandosi ai prodotti su Amazon.com.
Qual è la differenza tra NodeMCU ed ESP8266?
Il NodeMCU ESP8266 è un microcontrollore a basso consumo a 32 bit con processore integrato Tensilica 32-bit RISC che lavora a 160 MHz e dispone di un modulo WiFi integrato.
Arduino UNO è la scheda più popolare tra i principianti. Arduino UNO si basa sul microcontrollore ATmega328P a 8 bit che lavora a una frequenza di 16 MHz.
Il microcontrollore di Arduino UNO funziona con logica a 5V e tutti i pin sono compatibili con 5V.
Dispone di 2KB di RAM, 32KB di memoria flash per i programmi e 1 KB di EEPROM per i parametri.
Specifiche di NodeMCU ESP8266 e Arduino UNO
| Funzione | Descrizione (NodeMCU ESP8266) | Descrizione (Arduino UNO) |
| Microcontrollore | Tensilica 32-bit Xtensa LX106 | ATmega328P |
| Memoria Flash | 4 MB | 32 KB (0.5 KB utilizzati per il Bootloader) |
| SRAM | 128 KB | 2 KB |
| EEPROM | Non disponibile512 byte (Software) | 1 KB |
| Frequenza di CLOCK | 80 MHz o 160 MHz | 16 MHz |
| Tensione di funzionamento | 3.3V DC | 5V DC |
| Tensione di ingresso | 7-12 DC | 6V-20V DC |
| Consumo di corrente | 15 µA – 400 mA | 45 mA – 80 mA |
| Corrente DC per ogni pin I/O | 12 mA | 40 mA |
| Pin di I/O digitali | 17 | 14 |
| Pin di ingresso analogico | 1 | 6 |
| UART | 2 | 1 |
| SPI | 2 | 1 |
| I2C | 1 | 1 |
| PWM | 4 | 6 |
| WiFi | Sì | No |
| Bluetooth | No | No |
Confronto dei pin tra NodeMCU ESP8266 e Arduino UNO
Puoi consultare il NodeMCU ESP8266 Schematic diagramma per maggiori dettagli sui componenti presenti sulla scheda ESP8266.
Il diagramma dei pin di ESP8266 è mostrato qui sotto.

Puoi anche consultare il Arduino Uno Schematic diagramma per i dettagli dei componenti presenti sulla scheda Arduino UNO.
Il diagramma dei pin di Arduino UNO è mostrato qui sotto.

Alimentazione
Puoi fornire una tensione regolata di 5V DC per alimentare l’ESP8266. I circuiti regolatori interni convertiranno questi 5V in 3.3V DC perché NodeMCU ESP8266 funziona con logica a 3.3V.
Il pin VIN può alimentare direttamente NodeMCU ESP8266 e le sue periferiche con una sorgente di tensione regolata a 5V.
I pin 3.3V sono l’uscita di un regolatore di tensione integrato.
Questi pin possono essere usati per alimentare componenti esterni.

Allo stesso modo, per Arduino UNO il pin di ingresso (VIN) viene usato per fornire un’alimentazione esterna da 5V a 9V DC.
3.3V e 5V pin sono l’uscita del regolatore di tensione integrato.
La corrente massima prelevabile è 50mA. GND rappresenta la massa di NodeMCU ESP8266 e Arduino UNO.

Pin di Input/Output Generico (GPIO)
NodeMCU ESP8266 ha 17 pin GPIO che possono essere configurati come Input o Output digitali. Possono anche essere usati per varie funzioni come I2C, SPI, UART, PWM tramite software.
Ogni GPIO digitale può essere configurato con pull-up o pull-down interno, oppure impostato ad alta impedenza.
Quando configurato come input, può essere impostato per trigger su fronte o livello per generare interrupt alla CPU.

Arduino Uno ha 14 pin digitali di input/output, di cui sei possono essere usati come uscite PWM, e sei pin di ingresso analogico.
Nel codice Arduino puoi usare la funzione pinMode(pin, direction) per impostare la direzione del pin, digitalRead(pin, value) per leggere il valore sul pin digitale e digitalWrite(pin, value) per scrivere il valore digitale sul pin.

Pin analogici
NodeMCU ESP8266 ha un solo pin analogico (A0). Arduino UNO ha sei pin analogici (A0 – A5).
Sono usati per fornire un ingresso analogico nel range 0-5V.
Entrambe le schede hanno un ADC a 10 bit di risoluzione, quindi otterrai valori tra 0 e 1023.
Nel codice Arduino puoi usare la funzione analogRead() per leggere i valori dei pin analogici e analogWrite() per scrivere sui pin analogici.
Pin Serial Peripheral Interface (SPI)
NodeMCU ESP8266 dispone di due interfacce SPI (SPI e HSPI). Entrambe supportano le modalità Master e Slave.
La frequenza di clock in modalità master può essere impostata fino a 80 MHz, mentre in modalità slave arriva fino a 20 MHz. Solo il master può generare il ciclo di clock.
HSPI_CLK – GPIO14, HSPI_MISO – GPIO12, HSPI_MOSI – GPIO13, HSPI_CS – GPIO15 sono i pin GPIO usati per la comunicazione SPI.
I pin SCLK–GPIO6, MISO–GPIO7, MOSI–GPIO8, CS–GPIO11 non sono disponibili a bordo per l’utente.

Arduino Uno ha un’interfaccia di comunicazione SPI. I pin sono 10 (SS), 11 (MOSI), 12 (MISO) e 13 (SCK).

Puoi consultare il SPI library per esempi di comunicazione SPI.
Pin I2C
Su NodeMCU ESP8266, GPIO4 e GPIO5 possono essere usati come SDA e SCL per l’interfaccia I2C.
La frequenza di clock è di massimo 100 kHz. Non ha funzioni alternative.
Arduino UNO ha un’interfaccia di comunicazione I2C. I pin A4 (SDA) e A5 (SCL) sono usati per l’I2C.
Puoi consultare il wire library per esempi di comunicazione I2C.
Pin Universal Asynchronous Receiver Transmitter (UART)
NodeMCU ESP8266 ha due UART hardware (UART0 e UART1) con baud rate fino a 115200 e può comunicare fino a 4.5 Mbps.
- UART0 TX – GPIO1, UART0 RX – GPIO3
- UART1 TX – GPIO15, UART1 RX – GPIO13
- UART2 TX – GPIO2, UART2 RX – GPIO8 (Non disponibile).
Arduino Uno ha una UART per la comunicazione seriale, e puoi usare i pin 0 (RX) e 1 (TX) con un baud rate specificato.
Puoi usare il serial library per UART. Puoi anche usare la Software Serial libreria per impostare qualsiasi pin GPIO come Tx e Rx per la comunicazione UART.
Pin di interrupt
Tutti i pin GPIO tranne GPIO16 supportano gli interrupt su NodeMCU ESP8266.
I pin 2 e 3 di Arduino Uno possono essere configurati per generare un interrupt su valore basso, fronte di salita o discesa, o su cambiamento di valore.
Usa attach interrupt per collegare un interrupt ai pin indicati.
Pin Pulse Width Modulation (PWM)
La scheda NodeMCU ESP8266 ha quattro canali PWM.
L’uscita PWM può essere implementata via software e usata per pilotare motori digitali e LED. L’intervallo di frequenza PWM è regolabile da 1000 μs a 10000 μs.
I pin 3, 5, 6, 9, 10 e 11 di Arduino UNO forniscono un’uscita PWM usando i pin di ingresso analogico, ognuno dei quali offre una risoluzione di 10 bit, cioè da 0 a 1023 valori diversi.
Pin SDIO
NodeMCU ESP8266 dispone di un’interfaccia Secure Digital Input/Output (SDIO), usata per collegare direttamente le schede SD.
Supporta anche SDIO v1.1 a 4 bit 25 MHz e SDIO v2.0 a 4 bit 50 MHz.
Il pin SDIO non è disponibile su Arduino UNO.
Pin di CONTROLLO
Pin EN – Il chip NodeMCU ESP8266 è abilitato quando il pin EN è portato a livello HIGH. Se portato a LOW, il chip lavora al minimo consumo.
Pin WAKE – Il pin WAKE serve a risvegliare il chip dal deep sleep. I pin EN e WAKE non sono disponibili su Arduino UNO.
Pin RST – Il pin RST serve a resettare il chip ESP8266 e il microcontrollore di Arduino UNO.
HEADER ICSP
Arduino Uno ha un header femmina ICSP. L’In-Circuit Serial Programming (ICSP) permette di programmare Arduino UNO senza scollegarlo dal circuito.
Arduino UNO ha sviluppato i propri header per la programmazione ICSP.
Sulla scheda Arduino Uno sono disponibili sei pin ICSP (MISO, MOSI, SCK, VCC, Ground, Reset) che possono essere collegati a un programmatore tramite un cavo di programmazione.

Come scrivere codice per NodeMCU ESP8266?
Esistono diverse piattaforme di sviluppo che puoi usare per programmare NodeMCU ESP8266.
Puoi sviluppare il firmware per NodeMCU ESP8266 usando Arduino IDE.
Segui i passaggi qui sotto per configurare Arduino IDE per NodeMCU ESP8266.
Passo 1: Scarica prima Arduino IDE Software
Passo 2: Apri Arduino IDE e vai su File > Preference.

Passo 3: Nella finestra delle Preferenze, copia e incolla il link qui sotto in Additional Boards Manager URLs.
Nota che se vuoi aggiungere un altro link, puoi mettere una virgola e poi incollare l’altro link. http://arduino.esp8266.com/stable/package_esp8266com_index.json

Passo 4: Ora chiudi la finestra delle Preferenze e vai su Tools > Board > Boards Manager

Passo 5: Nella finestra Boards Manager, digita ESP8266 nella casella di ricerca. ESP8266 apparirà nei risultati. Ora seleziona l’ultima versione della scheda e clicca su installa.

Passo 6: Dopo l’installazione della scheda, apri Tools > Board > e seleziona NodeMCU ESP8266 1.0 (ESP-12E Module).
Per selezionare la porta, vai su Tools > Port e seleziona la porta COM dell’ESP8266.

Passo 7: Nel menu File, vai su Example e poi apri l’esempio Blink.

Passo 8: Clicca su Verifica codice e poi caricalo sulla tua scheda.

Come scrivere codice per Arduino Uno?
Puoi scrivere il firmware per Arduino Uno con il noto Arduino IDE.
Puoi sviluppare moltissime applicazioni su Arduino Uno usando Arduino IDE in C++.
Passo 1: Prima scarica Arduino IDE
Se non riesci a capire le istruzioni, guarda anche l’immagine e segui i passaggi.
Passo 2: Apri Arduino IDE e vai su Tools > Board > Arduino AVR Boards > Seleziona Arduino Uno.
Per selezionare la porta, vai su Tools > Port e seleziona la porta COM di Arduino UNO.

Passo 3: Nel menu File, vai su Example e poi apri l’esempio Blink.

Passo 4: Clicca su Verifica codice e poi caricalo sulla tua scheda.

Quali sono i vantaggi di NodeMCU?
- Il NodeMCU ESP8266 è un dispositivo a basso consumo e basso costo, ideale per applicazioni embedded.
- Dispone di un modulo WiFi integrato, che lo rende perfetto per applicazioni Internet of Things (IoT).
- NodeMCU ESP8266 supporta anche FreeRTOS, che permette al programmatore di progettare task paralleli sulla scheda.
- Migliore memoria e potenza di calcolo rispetto ad Arduino UNO.
- La scheda ESP8266 è compatibile con breadboard ed è adatta anche per essere montata su PCB (Printed Circuit Board).
- Facile da programmare tramite Arduino IDE e software open-source.
Quali sono i vantaggi di Arduino Uno?
- Arduino UNO è una scheda economica e la più popolare per chi inizia.
- L’hardware e il software open-source offrono anche un grande supporto dalla community.
- Arduino UNO ha più pin analogici rispetto a ESP8266.
ESP8266 è migliore di Arduino UNO?
Se confronti prestazioni, costo, consumo e funzionalità, ESP8266 è decisamente superiore ad Arduino UNO.
NodeMCU ESP8266 supporta il WiFi per web server e può essere impostato in modalità STA o AP.
Puoi aggiornare il firmware di ESP8266 via OTA (Over The Air).
Grazie a FreeRTOS, puoi gestire task paralleli su ESP8266.
L’unico svantaggio di ESP8266 è che ha solo un pin analogico integrato, quindi non puoi collegare più di un segnale analogico direttamente all’ESP8266.
Conclusione
Secondo me, ci sono pochi casi in cui non conviene scegliere una scheda basata su NodeMCU ESP8266.
Le schede basate su NodeMCU ESP8266 consumano poca energia, hanno molta memoria e il Wi-Fi integrato.
Tuttavia, se sei un principiante e vuoi esempi già pronti per tutto, ti consiglio Arduino UNO. Ha un grande supporto dalla community.
Se hai domande, suggerimenti o pensi che manchi qualcosa in questo tutorial, lascia un commento qui sotto.


