In questo tutorial imparerai come configurare l’Arduino IDE per programmare la scheda Freenove ESP32-WROVER CAM. La scheda è paragonabile alla ESP32-CAM con una fotocamera OV2640 e un’interfaccia per schede SD, ma offre più pin GPIO ed è più facile da programmare rispetto alle vecchie schede ESP32-CAM.
Componenti necessari
Per seguire questo tutorial ti servirà una scheda Freenove ESP32-WROVER CAM. Di solito la scheda viene fornita con accessori come una scheda SD, un lettore di schede SD e un cavo USB-C, ma nel caso mancassero, li ho linkati qui sotto.

ESP32-WROVER CAM

Cavo USB C

Lettore di schede SD

Scheda MicroSD 16GB

Arduino IDE
Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.
Caratteristiche della scheda Freenove ESP32-WROVER CAM
La scheda Freenove ESP32-WROVER CAM dispone di un microprocessore dual-core a 32 bit (ESP32-Wrover-E chip) con frequenza da 80 a 240 MHz e 520KB di SRAM, 4 MB di Flash, 8 MB di PSRAM, Wi-Fi 2.4 GHz e Bluetooth 4.2 (LE) integrati, uno slot per schede microSD e una fotocamera OV2640. L’immagine sotto mostra il fronte e il retro della scheda:

Nota che la versione più vecchia 1.x della scheda non aveva lo slot per schede microSD, mentre la versione attuale 3.x lo include.
La scheda ha una porta micro-USB e un convertitore USB-to-UART integrato (CH340), il che rende semplice caricare il codice. Basta collegare la scheda al PC tramite cavo USB e usare l’Arduino IDE per scrivere e caricare il codice.
A differenza di alcune vecchie schede ESP32-CAM, non è necessario resettare manualmente la scheda per entrare in modalità download né usare un programmatore FTDI. Un altro vantaggio rispetto all’ESP32-CAM è che ci sono più pin GPIO liberi disponibili.
La scheda viene fornita con un Github Repo che contiene documentazione ed esempi di programmazione in C e Python. Puoi anche scaricare il ZIP-file with the documentation and examples. Ecco anche un link al Datasheet for the Wrover chip.
LED
La scheda ESP32-WROVER ha quattro LED integrati. Il LED verde ON indica che la scheda è alimentata. Il LED blu, etichettato IO2, è collegato al GPIO2 e può essere controllato dall’utente. I LED gialli RX e TX indicano il trasferimento di dati seriali. L’immagine sotto mostra i quattro LED sulla scheda:

Pinout
Una caratteristica utile della scheda è che i pin sono annotati sulla serigrafia indicando se sono usati dalla fotocamera (-), dalla scheda SD (~) o dalla PSRAM (*). Nell’immagine sotto puoi vedere un primo piano di alcuni pin con le loro etichette:

Questo è molto utile quando cerchi pin GPIO liberi, perché non puoi usare i pin segnati se la fotocamera o la scheda SD sono in uso. L’immagine seguente mostra il pinout completo della scheda (clicca per ingrandire):

Pin di strapping
Nota che oltre ai pin usati dalla fotocamera o dalla scheda SD, ci sono anche cinque pin di strapping: MTDI, GPIO0, GPIO2, MTDO e GPIO5. Devi fare attenzione nell’usare questi pin, perché devono trovarsi in uno stato specifico al reset della scheda. La tabella seguente mostra i pin di strapping e la loro funzione:
Dopo il reset, i pin di strapping possono funzionare come normali pin GPIO, ma devi assicurarti che durante il reset siano collegati a un circuito esterno ad alta impedenza, altrimenti la scheda potrebbe non avviarsi correttamente.
Preparare Arduino IDE per ESP32-WROVER CAM
Per programmare l’ESP32-WROVER CAM dall’Arduino IDE devi poter comunicare con la scheda e avere installato il software (core) per la scheda. Nei prossimi due paragrafi spiegheremo cosa fare.
Installare il driver CH340
La scheda ESP32-WROVER CAM comunica tramite un chip CH340 che permette di programmarla via USB. Se non hai mai programmato altre schede non-Arduino, potresti dover installare il driver CH340. Ecco un link al driver software for the CH340 per il tuo sistema operativo (Windows, Mac, Linux).
Su Windows puoi verificare se il CH340 è installato aprendo Gestione dispositivi e cercando sotto Porte la porta USB-SERIAL CH340 come mostrato sotto. Funziona solo se la scheda è collegata al PC tramite cavo USB.

Se non è installato, scarica il driver dal Repo, ad esempio CH341SER.EXE per Windows, eseguilo e clicca su INSTALL:

Poi ricontrolla in Gestione dispositivi se il driver è installato e la scheda è collegata a una porta COM.
Installare il Core ESP32
Ora dobbiamo installare il Core ESP32 per abilitare il supporto alle schede ESP32 nell’Arduino IDE. Installare il Core ESP32 è semplice. Avvia il Arduino IDE e segui i passaggi indicati qui sotto. Se hai problemi, puoi trovare istruzioni più dettagliate nel nostro tutorial How to Program ESP32 with Arduino IDE.
URL aggiuntivi per il Boards Manager
Per prima cosa apri la finestra Preferenze selezionando “Preferences…” dal menu “File”:

Si aprirà la finestra Preferenze mostrata sotto. Nella scheda Settings troverai in basso una casella di testo etichettata “URL aggiuntivi per il Boards Manager“:

In questo campo incolla il seguente URL: “https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json“
Questo farà sapere all’Arduino IDE dove trovare le librerie core ESP32. Ora installeremo effettivamente le librerie core ESP32 usando il Boards Manager.
Boards Manager
Apri il BOARDS MANAGER cliccando sull’icona della scheda nella barra laterale dell’Arduino IDE:

Vedrai apparire il BOARDS MANAGER a destra della barra laterale. Digita “ESP32” nel campo di ricerca in alto e dovresti vedere due tipi di schede ESP32; le “Arduino ESP32 Boards” e le schede “esp32 di Espressif”. Noi vogliamo le librerie esp32 di Espressif. Clicca sul pulsante INSTALL e attendi che il download e l’installazione siano completati.

Una volta installato, il tuo Boards Manager dovrebbe apparire così, anche se la versione (qui 3.0.0-a) potrebbe essere diversa.

Nel passaggio successivo ti mostro come selezionare la scheda ESP32 per l’ESP32-WROVER CAM.
Seleziona ESP32 Wrover Module
Clicca sul selettore delle schede. Nell’esempio sotto è selezionata una Arduino Uno (la cambieremo):

Cliccando sul nome della scheda attualmente selezionata (Arduino Uno), si apre la finestra di selezione scheda. Nel campo di ricerca digita “wrover” e seleziona “ESP32 Wrover Module” come mostrato sotto:

Se la scheda è collegata al PC via USB, dovresti poter selezionare anche la porta COM. Nello screenshot sopra è COM5, ma nel tuo caso potrebbe essere un’altra porta COM.
Programmare l’ESP32-WROVER CAM
Se sei riuscito a selezionare ESP32 Wrover Module come scheda e la connessione a una porta COM funziona, ora puoi programmare la tua scheda ESP32-WROVER CAM.
Blink
Come test semplice scarichiamo il solito Blink program. Il LED integrato controllabile dell’ESP32-WROVER CAM è collegato al GPIO 2. Impostiamo quindi la costante ledPin a 2 e accendiamo il LED per un secondo, poi lo spegniamo per un altro secondo:
const byte ledPin = 2;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(1000);
}
Se funziona, congratulazioni! Hai programmato con successo la tua ESP32-WROVER CAM. Nel prossimo paragrafo ti mostrerò come eseguire l’esempio WebServer che permette di trasmettere video al tuo computer.
WebServer per streaming video
Nel tuo Arduino IDE vai su File -> Examples -> ESP32 -> Camera e apri l’esempio CameraWebServer :

Poi dovrai modificare leggermente il codice in CameraWebServer.ino. Rimuovi i commenti // per la definizione di CAMERA_MODEL_WROVER_KIT e assicurati che tutte le altre definizioni della fotocamera siano commentate come mostrato sotto:

Nello stesso file, un po’ più in basso, devi inserire le credenziali Wi-Fi della tua rete domestica. Sostituisci SSID e PASSWORD con le credenziali della tua rete per le seguenti costanti:

Dopo aver caricato il codice sulla tua ESP32-WROVER CAM dovresti vedere il seguente testo nel Monitor Seriale:

CameraWebServerNota l’ultima riga, che ti fornisce l’URL (indirizzo IP) a cui il WebServer è attivo. Copia e incolla questo URL nella barra degli indirizzi del tuo browser (sarà diverso per la tua scheda).
Dovresti quindi vedere il sito web che trasmette le immagini della fotocamera dalla tua ESP32-WROVER al browser:

CameraWebServer nel browser webRicorda di premere “Start Stream” in fondo alla pagina per avviare lo streaming video. Nell’immagine sopra lo streaming è già avviato e il pulsante dice “Stop Stream”.

Sentiti libero di provare le diverse impostazioni della fotocamera. Noterai che il frame rate diminuisce abbastanza per immagini ad alta risoluzione.
Conclusioni
In questo tutorial hai imparato a programmare la scheda ESP32-WROVER CAM. Ti ho mostrato solo gli esempi Blink e WebServer, ma il repository Github contiene altri esempi di codice per il ESP32-WROVER CAM, specialmente per Wi-Fi e Bluetooth.
Rispetto a ESP32-CAM, l’ESP32-WROVER CAM ha il vantaggio di avere più pin GPIO liberi e che la programmazione non richiede hardware aggiuntivo, come uno shield di programmazione o un programmatore FTDI.
D’altra parte, l’ESP32-CAM è più piccola, più economica e ha un flash LED, che è un chiaro vantaggio per alcuni progetti. Se ti serve una scheda ancora più piccola, dai un’occhiata alla scheda XIAO-ESP32-S3-Sense. Non ha il LED flash ma ha più GPIO liberi, il che permetterebbe di aggiungere un LED flash.
Se hai domande, sentiti libero di lasciarle nella sezione commenti.
Buon divertimento con il tinkering 😉


