Alcune parti di questo sito web non sono ancora disponibili nella tua lingua. Stiamo lavorando per risolvere questo problema e ci scusiamo per eventuali disagi.
Tutorial ESP32 42/55 - Scattare foto con la fotocamera e salvarle su Micro SD CAM-1 | Kit ESP32 di SunFounder
In questo tutorial, utilizzeremo il microcontrollore ESP32 insieme alla sua scheda di estensione di SunFounder per catturare foto utilizzando una camera e salvarle direttamente su una scheda micro SD. Questo progetto sfrutta le capacità integrate dell'ESP32, inclusi Wi-Fi e Bluetooth, per creare un dispositivo compatto per la cattura di foto. Alla fine di questo tutorial, avrai un setup funzionante in grado di scattare e memorizzare immagini, accessibili successivamente su un computer.
extension_bopard_camera
Per coloro che sono nuovi all'ecosistema ESP32, questo kit offre una piattaforma versatile per vari progetti, incluso questo. La fotocamera utilizzata in questo progetto è la OV2640, che offre una risoluzione di 1600x1200 pixel. Anche se non può competere con la qualità degli smartphone moderni, è sufficiente per compiti di acquisizione immagini di base. Per chiarire eventuali passaggi, assicurati di controllare il video che accompagna questo tutorial (nel video alle 00:00).
20240103_163227858_iOS
Spiegazione dell'hardware
I componenti principali di questo progetto includono il microcontrollore ESP32, il modulo della fotocamera (OV2640) e una scheda micro SD per l'archiviazione. L'ESP32 è un potente microcontrollore con capacità integrate di Wi-Fi e Bluetooth, rendendolo ideale per le applicazioni IoT. Il modulo della fotocamera cattura immagini, che vengono poi elaborate dall'ESP32.
esp32-41-impostazione-3
La scheda micro SD funge da supporto di memorizzazione per le immagini catturate. In questa configurazione, l'ESP32 comunica con il modulo della fotocamera utilizzando pin GPIO specifici, e le immagini vengono salvate in formato JPEG sulla scheda SD. Ciò consente un facile recupero e visualizzazione delle foto in seguito.
Assicurati che la fotocamera sia correttamente orientata quando la inserisci nella scheda ESP32.
Utilizzare una scheda micro SD con una capacità di 32 GB o inferiore per evitare problemi di compatibilità.
Collegare GPIO 0 a GND per la modalità di programmazione.
Fai attenzione all'alimentazione per evitare problemi di abbassamento di tensione.
Tieni la macchina fotografica ferma mentre scatti foto per evitare immagini sfocate.
Istruzioni per il cablaggio
Per cablare il modulo fotocamera ESP32, assicurati innanzitutto che l'ESP32 sia spento. Collega il modulo della scheda micro SD all'ESP32 utilizzando i seguenti pin: collega ilCSpin della scheda SD all'ESP32GPIO 5,MOSIversoGPIO 23,MISOaGPIO 19, eSCKaGPIO 18Successivamente, collegare i pin del modulo della camera come segue:PWDNaGPIO 32,XCLKaGPIO 0,SIODaGPIO 26, eSIOCaGPIO 27. I pin dei dati pixelY2aY9dovrebbe essere collegato aGPIO 5attraversoGPIO 39come definito nel tuo codice.
Assicurati di collegare correttamente i pin di terra e di alimentazione. L'ESP32 può essere alimentato dalla batteria inclusa nel kit. Dopo aver effettuato il cablaggio, assicurati che le connessioni siano sicure prima di accendere il dispositivo. Se segui attentamente le istruzioni, dovresti vedere la camera inizializzarsi correttamente quando carichi il codice.
Esempi di codice e guida passo passo
esp32-41-impostazione-2esp32-41-impostazione-1
Nel codice, iniziamo includendo le librerie necessarie e definendo le configurazioni dei pin della fotocamera. La variabilepictureNumberviene inizializzato per tenere traccia del numero di foto scattate.
int pictureNumber = 0;
void setup() {
WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0); // Disable brownout detector
Serial.begin(115200);
camera_config_t config;
// Configuration settings for the camera
config.ledc_channel = LEDC_CHANNEL_0;
// Additional camera settings...
}
La funzione di setup inizializza la comunicazione seriale e configura le impostazioni della fotocamera. La configurazione include parametri comeledc_channel,pin_d0, exclk_freq_hzper prestazioni ottimali.
Successivamente, gestiamo il processo di acquisizione delle immagini utilizzando un ciclo per scattare più foto. I dati dell'immagine vengono salvati sulla scheda SD con un nome file basato supictureNumber.
for (int shoot = 0; shoot < 5; shoot++) {
camera_fb_t *fb = esp_camera_fb_get(); // Take Picture
String path = "/picture" + String(pictureNumber) + ".jpg"; // File path
File file = fs.open(path.c_str(), FILE_WRITE); // Open file to write
// Write image data to file
file.write(fb->buf, fb->len);
// Update picture number in EEPROM
EEPROM.write(0, pictureNumber);
}
Questo ciclo cattura fino a cinque immagini, dove ciascuna immagine viene salvata con un nome file unico. L'uso della EEPROM consente al programma di ricordare l'ultimo numero dell'immagine, garantendo che ogni nuova immagine abbia un identificatore unico.
Dimostrazione / Cosa Aspettarsi
Quando esegui il codice, l'ESP32 inizializzerà la fotocamera e la scheda SD. Dopo aver premuto il pulsante di reset sull'ESP32, esso scatterà una serie di foto, numerate in sequenza da 0 a 255 in base al valore dell'EEPROM. Dopo aver catturato le immagini, puoi rimuovere la scheda micro SD e visualizzare le foto sul tuo computer.
Le insidie comuni includono garantire che la micro SD sia correttamente formattata e inserita, così come mantenere una posizione stabile della telecamera per evitare immagini sfocate. Se hai problemi con la telecamera che non cattura immagini, ricontrolla i cablaggi e le configurazioni impostate nel codice (nel video a 06:45).
Timestamp video
00:00 Inizio
1:39 Introduzione
5:19 Codice Camera ESP32 spiegato
11:10 Selezionare la scheda ESP32 e la porta COM nell'IDE di Arduino
12:52 Test di fotografia indoor e outdoor
Immagini
esp32-41-setting-3
extension_bopard_camera
20240103_163227858_iOS
esp32-41-setting-1
esp32-41-setting-2
esp32-41-setting-3
extension_bopard_camera
20240103_163227858_iOS
esp32-41-setting-1
esp32-41-setting-2
843-ESP32 Tutorial 42/55- Arduino code for taking photo and saving it