Primi passi con il modulo ESP32-CAM

“Giocare significa allenare la mente alla vita. Un gioco non è mai solo un gioco.”
Stephen Littleword

Appena lessi la notizia, rimasi immediatamente affascinato da questo modulo da 10$ basato su ESP32, il fratello maggiore dei moduli ESP prodotti dalla cinese Espressif.

L’ESP32-CAM Development Board della A.I. Thinker incorpora una piccola videocamera da 2MPixel (OV2640 o OV7670 – Qui il datasheet) ed un slot per una scheda di memoria miniSD fino a 4 GByte, oltre alle consuete linee di I/O programmabili (le specifiche tecniche complete sono qui: ESP32-CAM Product Specification):

  • SPI Flash 32Mbit
  • RAM 520KB SRAM +4M PSRAM
  • Bluetooth 4.2 BR/EDR and BLE standards
  • Wi-Fi 802.11 b/g/n (WPA/WPA2/WPA2-Enterprise/WPS)
  • Support interface UART,SPI,I2C,PWM
  • Support TF card up to 4G
  • 9 I/O port

Sulla scheda è incorporato anche un led ad alta luminosità (connesso al PIN GPIO4) che può essere utilizzato come flash o come illuminatore. Il frame-rate dipende sia dal formato che dalle dimensioni. Indicativamente, riesce ad avere un throughput fino a 8 JPEG in SVGA (800×600) al secondo.

Lo schema completo del modulo, molto utile per comprenderne il funzionamento e i collegamenti, è disponibile qui: ESP32-CAM Schematic

Una brutta notizia, se “brutta” può essere, è che non c’è supporto di tale modulo su Arduino: la programmazione può essere fatta, al momento, solo con il framework ufficiale ESP-IDF, scaricabile liberamente da GitHub: Espressif IoT Development Framework. Official development framework for ESP32.

*** Aggiornamento 17.04.2019 *** E’ possibile usare anche l’SDK di Arduino per programmare la scheda e usare la videocamera e gli altri dispositivi. Maggiori informazioni su Ai-Thinker ESP32-CAM in the Arduino IDE.

L’installazione di ESP-IDF non è proprio banale ma seguendo le istruzioni e con un minimo di pazienza, si ottiene in poche decine di minuti un ecosistema di sviluppo perfettamente funzionante.

L’altra brutta notizia è che il modulo ESP32-CAM non ha porta USB incorporata. E quindi deve essere montato su una breadboard per poterlo programmare, attraverso i piedini della la porta seriale GPIO1 e GPIO3.

Ho usato, allo scopo, un adattatore USB – Seriale TTL acquistabile a pochi euro anche su Amazon o su Aliexpress.

ATTENZIONE: per poter caricare il firmware, è necessario abilitare la modalità flash-mode, ponendo il pin IO0 a GND e premendo il pulsante di reset. A questo punto è possibile, attraverso la porta seriale, caricare il firmware. Ricordatevi ovviamente di invertire, sul collegamento seriale, i pin TX e RX.

Per iniziare, ho scaricato e compilato ESP-WHO, “a face detection and recognition platform that is currently based on Espressif Systems’ ESP32 chip.” da GitHub, github.com/espressif/esp-who:

~/$ git clone --recursive https://github.com/espressif/esp-who.git
~/$ make menuconfig

Configuro le sezioni relative al Serial flasher config, indicando la porta seriale dove è connesso il modulo, e la Camera Web Server, indicando le caratteristiche della rete WiFi e del modulo Camera (ESP32 by AI-Thinker).

~/$ make
~/$ make flash

A questo punto possiamo sfruttare la connessione seriale per ricevere i messaggi di debug, attraverso il Monitor seriale di Arduino o altro programma di terminale.

Oltre ad ESP-WHO sono già pronti altri interessanti software come:

  • ESP32 Camera Demogets the image from camera and prints it out as ASCII art to the serial port;
  • QR Recognition
  • ESP32 Camera Drivercompatible driver for OV2640 image sensors. Additionally it provides a few tools, which allow converting the captured frame data to the more common BMP and JPEG formats

Questo articolo è stato visto 1.018 volte (Oggi 1 visite)

Hai trovato utile questo articolo?

8 comments
  1. Michele ciao, io purtroppo dopo un iniziale upload del camera web server che sembrava andato a buon fine, ho poi ricevuto un errore all’apertura del serial monitor (detected camera not supported + camera probe failed with error 0x20004); adesso poi non mi consente neppure di testare lo sketch perché dopo pochi secondi mi scrive La scheda esp32 (piattaforma esp32, pacchetto esp32) è sconosciuta

    Errore durante la compilazione per la scheda ESP32 Dev Module
    stesso errore se scelgo la scheda ESP32 Wrover.
    Ti sono grato per qls consiglio, aberto

  2. anche a me dava l’ errore 20004. Ho superato il problema alimentando lo ESP a 5Vdc sul relativo pin.
    Magari ti puo’ servire !
    Ambro

  3. Ciao,
    per me non c’e’ verso di farla funzionare.
    Ho commentato tutto, lasciando solo la connessione al WiFi, ma da quanto sono riuscito a caprire il programma non esegue questa riga:
    WiFi.begin(ssid, password);

    Ho configurato il tutto come indicato.

    Giuseppe

      1. Ciao Michele,
        risolto il tutto alimentando la scheda esternamente e non da USB.

        Giuseppe

  4. Ciao Michele,
    restandoo a casa ho il tempo di sperimentare e ho installato esp-ide e scaricato da git who il framwork.
    Dopo vari tentativi sono riuscito a compilarlo e a scaricarlo sulla board.
    Ho scelto ai-thinker pin dal menuconfig.
    Ma dopo aver scaricato il sw sulla scheda questa e’ in continuo restart.

    Ho poi invece utilizzato l’esempio camera in arduino IDE e va tutto bene.

    Mi serve programmare con ESP-IDF ide perche’ devo cambiare i paramtri Http server e questo lo posso solo fare attraverso il menuconfig che configura il file sdkconfig

    Quale potrebbe essere il problema?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.