Gli step principali sono quelli di collegare ESP32 cam al PC tramite USB e vedere qual è l’indirizzo IP con il quale si è collegato al router in tal modo da accedere via WEB (LAN) per visualizzare un flusso video e immagini.
Arriviamo subito al sodo con il codice.
Prima di compilare e caricare il codice modificare il nome del router e la password nelle apposite assegnazioni.
Inoltre dovremmo modificare il “Patition Scheme”, dobbiamo andare su Tools, Partition Scheme e poi selezionare “Huge APP”.
Scarica la libreria camerapins.h dal seguente link. Posizionala all’interno della cartella “libraries” nella cartella “Arduino”, quest’ultima si trova tendenzialmente in documenti.
Ora puoi compilare e caricare il seguente codice sulla scheda.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
#include "esp_camera.h" #include <WiFi.h> // // WARNING!!! PSRAM IC required for UXGA resolution and high JPEG quality // Ensure ESP32 Wrover Module or other board with PSRAM is selected // Partial images will be transmitted if image exceeds buffer size // // Select camera model #define CAMERA_MODEL_WROVER_KIT // Has PSRAM #include "camera_pins.h" const char* ssid = "enterName"; //input your wifi name const char* password = "enterPW"; //input your wifi passwords void startCameraServer(); void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); camera_config_t config; config.ledc_channel = LEDC_CHANNEL_0; config.ledc_timer = LEDC_TIMER_0; config.pin_d0 = Y2_GPIO_NUM; config.pin_d1 = Y3_GPIO_NUM; config.pin_d2 = Y4_GPIO_NUM; config.pin_d3 = Y5_GPIO_NUM; config.pin_d4 = Y6_GPIO_NUM; config.pin_d5 = Y7_GPIO_NUM; config.pin_d6 = Y8_GPIO_NUM; config.pin_d7 = Y9_GPIO_NUM; config.pin_xclk = XCLK_GPIO_NUM; config.pin_pclk = PCLK_GPIO_NUM; config.pin_vsync = VSYNC_GPIO_NUM; config.pin_href = HREF_GPIO_NUM; config.pin_sscb_sda = SIOD_GPIO_NUM; config.pin_sscb_scl = SIOC_GPIO_NUM; config.pin_pwdn = PWDN_GPIO_NUM; config.pin_reset = RESET_GPIO_NUM; config.xclk_freq_hz = 20000000; config.pixel_format = PIXFORMAT_JPEG; // if PSRAM IC present, init with UXGA resolution and higher JPEG quality // for larger pre-allocated frame buffer. if(psramFound()){ config.frame_size = FRAMESIZE_UXGA; config.jpeg_quality = 10; config.fb_count = 2; } else { config.frame_size = FRAMESIZE_SVGA; config.jpeg_quality = 12; config.fb_count = 1; } // camera init esp_err_t err = esp_camera_init(&config); if (err != ESP_OK) { Serial.printf("Camera init failed with error 0x%x", err); return; } sensor_t * s = esp_camera_sensor_get(); // drop down frame size for higher initial frame rate s->set_framesize(s, FRAMESIZE_VGA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected"); startCameraServer(); Serial.print("Camera Ready! Use 'http://"); Serial.print(WiFi.localIP()); Serial.println("' to connect"); } void loop() { // put your main code here, to run repeatedly: delay(10000); } |
Ora puoi compilare e caricare il codice sulla scheda e aprire il monitor seriale (impostando il baud rate a 115200). Nel monitor seriale comparirà il link tramite il quale potremo visualizzare lo stream video.
Se vi sono problemi prova a riavviare la scheda tramite l’apposito pulsante.
Apriamo quindi il nostro broswer e inseriamo l’indirizzo IP trovato grazie al monitor seriale. Ecco quello che compare.
Il risultato è il seguente: