Esempio di Sviluppo Progetto ESP32 Cam su Ubuntu

Indice

ESP32-CAM camera development board

Informazioni su ESP32-CAM

ESP32-CAM è un modulo fotocamera di piccole dimensioni rilasciato da Ai-Thinker Co., Ltd, che può funzionare in modo indipendente come il sistema più piccolo, con una dimensione di 27*40.5*4.5mm e una corrente di deep sleep minima di 6mA.

Caratteristiche di ESP32 CAM

  • Interfaccia fotocamera (fino a 24MP)
  • Connettività Wi-Fi e Bluetooth
  • Processore dual-core ESP32-D0WDQ6
  • 520KB SRAM
  • 4MB di memoria Flash
  • Modulo fotocamera OV2640 2MP
  • Supporta i formati JPEG e BMP
  • Interfaccia USB Type-C
  • Connettore batteria LiPo
  • CPU a 32 bit, fino a 240MHz
  • Ricetrasmettitore Wi-Fi HT40 802.11b/g/n integrato
  • Bluetooth dual-mode integrato (classico e BLE)
  • Antenna PCB integrata
  • 8MByte PSRAM integrati
  • Fotocamera integrata
  • Connettore esterno per fotocamera
  • 5 x GPIO programmabili
  • 2 x UART, 2 x SPI, I2C, I2S, IRDA, PWM, GPIO

Schema dei pin ESP32 CAM

ESP32 CAM Pinout
ESP32 CAM Pinout

ESP32-CAM ha tre pin GND e due pin per l’alimentazione: 3,3V o 5V.

GPIO 1 e GPIO 3 sono pin seriali. Hai bisogno di questi pin per caricare il codice sulla tua scheda. Inoltre, GPIO 0 svolge un ruolo importante in quanto determina se l’ESP32 è in modalità lampeggio o meno. Quando GPIO 0 è collegato a GND, l’ESP32 è in modalità lampeggio.

I seguenti pin sono collegati internamente al lettore di schede microSD:

GPIO 14: CLK
GPIO 15: CMD
GPIO 2: Data 0
GPIO 4: Data 1 (collegato anche al LED integrato)
GPIO 12: Data 2
GPIO 13: Data 3

Sviluppo del progetto ESP32 Cam

Costruzione dell'ambiente

Hardware

  • Modulo ESP32-CAM
  • Fotocamera OV2640
  • Scheda da USB a porta seriale (USB-TTL)
  • Linea dupont
  • Alimentatore 5V 2A

Il modulo ESP32-CAM è alimentato separatamente, U0TXD, U0RXD e GND sono collegati alla scheda porta seriale e collegati al computer e la fotocamera è collegata al modulo tramite un cavo.

Prima della programmazione, il GPIO0 del modulo ESP32-CAM deve essere collegato a terra e ripristinato. Dopo aver completato la programmazione, GPIO0 viene sospeso e ripristinato per entrare in modalità di lavoro.

Ambiente di sistema

ESP32 può essere sviluppato su diversi sistemi. Ecco un’introduzione all’ambiente di sviluppo della versione desktop Ubuntu (la versione è Ubuntu 18.04.3).

Imposta il server di download

Esegui “Software e aggiornamenti”, fai clic sul menu a tendina “Scarica da” nella scheda “Software Ubuntu”, seleziona “Altro…”, trova “Cina” e seleziona qualsiasi server, fai clic su “Scegli server” e quindi inserisci la password per confermare. Quando viene chiuso, ti verrà richiesto di aggiornare le informazioni, fai clic su “Ricarica” per aggiornare.

ESP32 Cam system environment: choose a download server
ESP32 Cam system environment: choose a download server
Installa il software
sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git
Installa l'ambiente dipendente
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev

Codice del progetto e ambiente di sviluppo

elemento pull

Esegui il pull del progetto e dei sottomoduli contemporaneamente:

git clone --recurse-submodules https://github.com/Ai-Thinker-Open/Ai-Thinker-Open_ESP32-CAMERA_LAN.git

Se il pull viene interrotto, è necessario accedere alla directory del progetto per eseguire nuovamente il pull del sottomodulo:

cd Ai-Thinker-Open_ESP32-CAMERA_LAN/
git submodule update --init --recursive
Framework di sviluppo

Dopo aver estratto il progetto, puoi vedere che c’è una directory esp-idf nella directory del progetto. esp-idf (Espressif IoT Development Framework) è il framework di sviluppo esp. L’ambiente di sviluppo del progetto è costruito tramite esp-idf. La versione idf in questo progetto è esp-idf-v4.0.

Imposta il percorso IDF_PATH

Modifica il file di configurazione .bashrc:

cd esp-idf/
vim ~/.bashrc


Usa il comando vim per aprire .bashrc, usa la tastiera per spostare il cursore alla fine del file, premi a per inserire, premi Invio alla fine per andare a una riga vuota e inserisci il contenuto corrispondente in base al seguente formato per impostare la variabile IDF_PATH:

# export IDF_PATH=<percorso assoluto esp-idf>, l'esempio è il seguente
export IDF_PATH=/home/user/Desktop/esp32/Ai-Thinker-Open_ESP32-CAMERA_LAN/esp-idf


Dopo aver completato l’input, premi esc per annullare la modifica, :wq per salvare ed uscire, esegui il seguente comando per rendere effettiva immediatamente la modifica:

source ~/.bashrc


Verifica se la variabile è valida:

echo $IDF_PATH


Se il percorso stampato è coerente con l’impostazione, vai al passaggio successivo, altrimenti devi rioperare.

Installa gli strumenti di sviluppo

Esegui lo script install.sh nella directory esp-idf:

./install.sh

Quindi il terminale mostra le informazioni di download. Dopo aver stampato “All done!”, l’installazione è completa. A questo punto, esegui lo script export.sh per impostare la variabile d’ambiente:

. ./export.sh

Nota che c’è uno spazio dopo il primo “.”, che deve essere eseguito ogni volta che apri il terminale per lo sviluppo e il debug del progetto.

Dopo l’esecuzione dello script, viene stampato “Done!” per indicare il successo, quindi il progetto può essere configurato, compilato e scaricato.

Configura, Compila e Scarica

Configurazione del progetto

Entra nella directory del progetto demo “Ai-Thinker-Open_ESP32-CAMERA_LAN/examples/single_chip/camera_web_server”

cd ../examples/single_chip/camera_web_server/

Quindi iniziamo a configurare il progetto:

make menuconfig

Il messaggio “recipe for target ‘mconf.o’ failed” è un problema di dipendenza, inserisci sudo apt-get install libncurses5-dev per installare le dipendenze pertinenti e riprova.

L’interfaccia di configurazione è la seguente:

ESP32 Cam Project - Espressif IoT Development Framework Configuration
ESP32 Cam Project - Espressif IoT Development Framework Configuration

Usa i tasti freccia e il tasto Invio per spostare il cursore per operare, entra nell’interfaccia “Serial flasher config” e fai riferimento alla figura seguente per l’impostazione, qui la porta seriale è impostata su “/dev/ttyUSB0”, e deve essere impostata per connettersi al modulo ESP32-CAM durante il funzionamento porta seriale.

ESP32 Cam Project - Serial Flasher Config
ESP32 Cam Project - Serial Flasher Config

Entra in “Camera Web Server”->”Camera Pins”->”Select Camera Pinout” interfaccia, seleziona “ESP32-CAM by AI-Thinker”.

ESP32 Cam Project - Select Camera Pinout

Entra nell’interfaccia “Camera Web Server”->”Wifi Settings” per impostare la modalità Wifi, “Wifi STA SSID” & “Wifi STA Password” e “Wifi AP SSID” & “Wifi AP Password” per impostarne uno di essi.

(Wifi STA significa modalità Station, ESP32-CAM si connette alla rete Wifi di altri dispositivi; Wifi AP significa modalità AP, il computer o il telefono cellulare si connette all’hotspot Wifi aperto da ESP32-CAM)

La modalità Wifi AP è utilizzata qui, e il “Wifi AP IP Address” sottostante imposta l’indirizzo IP del modulo in modalità Wifi AP.

ESP32 Cam Project - WIFI Settings

Dopo aver completato l’impostazione, utilizzare i tasti sinistra e destra per spostare il cursore inferiore su “” e premere Invio per salvare, quindi spostarsi su “” per uscire dalla configurazione.

Compila e Scarica

compila:

make

scarica:

make flash

Si noti che il modulo GPIO0 deve essere collegato a massa e ripristinato prima della programmazione.

Quando si scarica make flash, viene utilizzata di default la porta precedentemente configurata “/dev/ttyUSB0”, e altre porte possono essere specificate con il parametro -p: make flash -p [PORT]

Se indica che il fallimento nell’apertura della porta seriale potrebbe essere causato da un problema di autorizzazioni, è possibile aprire tutte le autorizzazioni della porta seriale con sudo chmod -R 777 , ad esempio sudo chmod -R 777 /dev/ttyUSB0, ma tutte le autorizzazioni della porta seriale aperta diventeranno non valide dopo che la porta seriale è stata scollegata. Inoltre, l’utente corrente può essere aggiunto al gruppo dialout sudo usermod -a -G dialout

Ricevi informazioni di stampa della porta seriale:

make monitor

Si noti che il modulo GPIO0 deve essere sospeso per l’accensione o il ripristino durante il funzionamento.

Inoltre, è possibile utilizzare l’assistente della porta seriale per visualizzare le informazioni di stampa del modulo.

Scatta Foto e Video

Dopo aver scaricato il firmware demo, il modulo ESP32-CAM è acceso e in esecuzione. Collegare il computer o il telefono cellulare alla rete in cui si trova il modulo e accedere all’indirizzo del modulo nel browser.

In modalità Station, l’indirizzo del modulo è l’indirizzo IP assegnato dal dispositivo hotspot Wifi al modulo; in modalità AP, è l’indirizzo impostato da “Indirizzo IP Wifi AP”.

Nella pagina web del modulo, fare clic sul pulsante “Get Still” sotto la barra delle operazioni a sinistra per scattare una foto e sul pulsante “Start Stream” per registrare un video. Dopo aver scattato una foto o un video, l’immagine verrà visualizzata sulla pagina web.

Visualizza l’interfaccia operativa del modulo sul telefono cellulare come segue, puoi fare clic su “Salva” nell’angolo in alto a destra dell’immagine per salvare l’immagine.

ESP32-CAM module taking photogram

Iscriviti

Unisciti alla nostra lista di iscritti per ricevere aggiornamenti mensili sul blog, notizie tecnologiche, casi di studio. Non invieremo mai spam e potrai annullare l’iscrizione in qualsiasi momento.

Informazioni sull'autore

Picture of Aidan Taylor
Aidan Taylor

I am Aidan Taylor and I have over 10 years of experience in the field of PCB Reverse Engineering, PCB design and IC Unlock.

Hai bisogno di aiuto?

Torna in alto

Instant Quote