La ESP32-WROOM-32 è una delle tante versioni della ESP32 che programmeremo utilizzando la IDE di Arduino
Oggi spostiamo la nostra attenzione su una delle più potenti e complete dev-board attualmente in commercio, già presente in diversi modelli con altrettante diverse funzionalità: ESP32
Specifiche
Il modello di ESP32 che esaminiamo oggi è la ESP32-WROOM-32, un modello tra i più economici e diffusi e che possiamo acquistare su Aliexpress a circa 4,50€ oppure su Amazon a 11€ circa. Esteticamente è molto simile al NodeMCU V3, sebbene differisca parecchio da quasi ogni punto di vista.
Abbiamo voluto compararlo alle due dev-board più performanti già in nostro possesso:
ESP32 | NODEMCU V3 | STM32F103C8T6 | |
---|---|---|---|
CHIP | Tensilica Xtensa dual-core 32-bit LX6 | Tensilica 32-bit RISC CPU Xtensa LX106 | ARM®Cortex®-M3 |
ARCHITETTURA | 32 BIT | 32 bit | 32 BIT |
CORE | 2 | 1 | 1 |
CPU | 240MHz | 80MHz | 72MHz |
WiFi | IEEE 802.11 b/g/n | IEEE 802.11 b/g/n | / |
Bluetooth | 4.2 | / | / |
RTC | Sì | / | Sì |
RAM | 512KB | 24KB | 20KB |
MEMORIA FLASH | 4MB | 4MB | 64KB |
PIN GPIO | 36 | 16 | 37 |
INTERFACCIA | CAN, I2C, SPI, UART | I2C, SPI, UART | CAN, I2C, SPI, UART |
TENSIONE OPERATIVA | 3,3V | 3,3V | 3,3V |
COSTO (€) | ±4,50 | ±2,60 | ±2,20 |
Come leggiamo dalla tabella, la ESP32 possiede un chip Tensilica Xtensa dual-core LX6, basato su architettura a 32BIT, in grado di raggiungere i 240MHz e con ben 4MB di memoria flash, associati a 512KB di RAM. A differenza delle ESP8266, la ESP32 non possiede solo la connessione WiFi, ma è altresì dotata della connessione Bluetooth 4.2. Possiamo adoperare ben 36 PIN GPIO tutti PWM, lavorando con una tensione a 3,3V, senza però dimenticare che possiamo alimentare questa scheda anche con i 5V dal connettore Micro-USB o da pin VIN.
Collegamenti
Per poter caricare gli sketch sarà necessario utilizzare un cavo Micro-USB e un condensatore da 10μF che utilizzeremo per ponticellare il pin GND e il pin EN. Sarà necessario perchè i modelli economici, come quello che stiamo testando oggi, necessitano di questa accortezza per entrare nella Program Mode.
Per chi non lo sapesse, i condensatori hanno un positivo ed uno negativo; quest’ultimo va collegato al GND, mentre il positivo al pin ENABLE (EN).
Fatto questo, passiamo a predisporre la IDE di Arduino per programmare la nostra ESP32 inserendo il link https://dl.espressif.com/dl/package_esp32_index.json nel percorso File -> Impostazioni e aggiungerlo alla voce URL aggiuntive per il gestore schede.
Una volta confermato tutto, muoviamoci sul menu Strumenti->Schede->Gestore schede.
Quando la finestra sarà aperta, cerchiamo ESP32 e installiamo il pacchetto che ci appare.
Codice
Proveremo due sketch di esempio, il primo ci sarà utile per far accendere e spegnere il led interno alla scheda e collegato al GPIO 2. Di base è lo stesso identico utilizzato per Arduino UNO, con la sola differenza che utilizzeremo il LED integrato nella ESP32.
void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(1000); digitalWrite(2, LOW); delay(1000); }
In fase di caricamento dello sketch ricordatevi di impostare la scheda come in figura, modificando solo la porta e assegnando quella che fornisce il vostro PC:
Il secondo sketch lo troviamo negli esempio disponibili nel menu FILE ed è il WiFiScan, adoperato per scansionare e fornire gli SSID delle reti WiFi disponibili.