Nell’articolo di oggi vedremo come utilizzare le funzionalità video di ESP32 con CAM integrata.
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> // Select camera model #define CAMERA_MODEL_WROVER_KIT // Has PSRAM //#define CAMERA_MODEL_ESP_EYE // Has PSRAM //#define CAMERA_MODEL_M5STACK_PSRAM // Has PSRAM //#define CAMERA_MODEL_M5STACK_V2_PSRAM // M5Camera version B Has PSRAM //#define CAMERA_MODEL_M5STACK_WIDE // Has PSRAM //#define CAMERA_MODEL_M5STACK_ESP32CAM // No PSRAM //#define CAMERA_MODEL_M5STACK_UNITCAM // No PSRAM //#define CAMERA_MODEL_AI_THINKER // Has PSRAM //#define CAMERA_MODEL_TTGO_T_JOURNAL // No PSRAM #include "camera_pins.h" const char *ssid_Router = "insertName"; //input your wifi name const char *password_Router = "insertPW"; //input your wifi passwords camera_config_t config; void startCameraServer(); void config_init(); void setup() { Serial.begin(115200); Serial.setDebugOutput(true); Serial.println(); config_init(); config.frame_size = FRAMESIZE_VGA; config.jpeg_quality = 10; // 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(); s->set_vflip(s, 1); //1-Upside down, 0-No operation s->set_hmirror(s, 0); //1-Reverse left and right, 0-No operation s->set_brightness(s, 1); //up the blightness just a bit s->set_saturation(s, -1); //lower the saturation WiFi.begin(ssid_Router, password_Router); while (WiFi.isConnected() != true) { 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() { ; } void config_init() { 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; config.fb_count = 1; } |
Apriamo il monitor seriale e settiamo il baud rate a 115200. Se non compare nulla riavviamo la scheda tramite l’apposito pulsante. Comparirà l’indirizzo IP della ESP32 tramite il quale potremmo visualizzare il flusso video tramite broswer.
Apriamo quindi il nostro broswer e inseriamo l’indirizzo IP trovato grazie al monitor seriale. Ecco quello che compare.
Clicca su start stream ed ecco qui che inizieremo a vedere il nostro flusso video.
Possiamo ora dilettarci a fare tanti test e prova modificando i vari parametri presenti nella barra sinistra, nei prossimi articoli approfondiremo ulteriori aspetti di questa funzionalità della scheda ESP32-CAM.
Iscriviti ai nostri gruppi Telegram
Link utili