• Новый номер телефона WhatsApp и Telegram: +7 993 910‑76‑27
  • 0
    КОРЗИНА
    0 ТОВАРА
     Контроллер ESP32-CAM с камерой OV2640 для Arduino ардуино
     Контроллер ESP32-CAM с камерой OV2640 для Arduino ардуино
     Контроллер ESP32-CAM с камерой OV2640 для Arduino ардуино
     Контроллер ESP32-CAM с камерой OV2640 для Arduino ардуино
     Контроллер ESP32-CAM с камерой OV2640 для Arduino ардуино

    Контроллер ESP32-CAM с камерой OV2640

    Подробнее...
    Модификация
    Скоро в продаже Артикул: # 1309
    938 ₽
    Возможен безналичный расчёт для юридических лиц при оформлении заказа
    Сообщить о поставке на e-mail:
    {{ status }}
    • Доставка товаров по России, Белоруссии, Казахстану
    • Возможен безналичный расчёт для юридических лиц при оформлении заказа
    Количество:
    Перейти в корзину и оформить заказ.
    Telegram
    WhatsApp
    Обсудить вопросы приобретения, не технические!
    *Доступно общение только текстовыми сообщениями, звонки и аудио сообщения не обслуживаются
    Онлайн
    Описание товара
    Подробное описание товара

    Общие сведения

    Контроллер ESP32-CAM с камерой OV2640 — это современный микроконтроллер камерой, с помощью которого можно создавать устройства машинного зрения, умный дом и роботов.

    Характеристики

    • Процессор: 32-х битный, частота 160-240 МГц;
    • Объём RAM: 520 КБ
    • Объём Flash-памяти: 448 КБ
    • Питание: 2.2 - 3.6В;
    • Внешняя Flash-память: 4 МБ;
    • Поддержка Wi-Fi: 802.11 b/g/n/d/e/i/k/r (802.11n до 150 Мбит/с);
    • Поддержка Bluetooth: 4.2 BR/EDR и Low Energy
    • 8 Выводов GPIO;
    • Встроенный светодиод подсветки;
    • Интерфейсы: UART, SPI, I2C, PWM;
    • Поддержка microSD карт до 4 Гб;
    • Энергопотребление:
      • При включённом светодиоде 310 мА
      • При передаче Wi-Fi 160-260 мА
      • Режим "мягкого" сна до 6.7 мА

    Скорость вывода фото в секунду

    Размер QQVGA QVGA VGA SVGA
    JPEG 6 7 7 8
    BMP 9 9 - -
    GRAYSCALE 9 8 - -

    Более подробную информацию вы найдёте в DataSheet'е.

    Пример Arduino IDE

    Пример вывода потока камеры в браузер для Arduino IDE.

    После загрузки скетча в адресную строку браузера необходимо ввести адрес, который покажет монитор последовательного порта Arduino IDE (shift+ctrl+m).

    Для работы с платой необходимо установить поддержку плат ESP32. Ссылка на подробное описание как это сделать.

    В меню Инструменты -> Плата: необходимо выбрать "AI Thinker ESP32-CAM".

    Если на плате "AI Thinker ESP32-CAM" модуль не заработает, то измените плату на "Node32s".

    Для загрузки скетчей необходимо подключить плату к UART-USB преобразователю или к плате Arduino в режиме загрузчика по следующей схеме:

    ESP32-CAM UART
    UOT RX
    UOR TX
    IO0 GND
    5V 5V
    GND GND


    Перед загрузкой скетча необходимо замкнут вывод IO0 с GND и нажать RESET

    После загрузки скетча необходимо разомкнуть вывод IO0 от GND и нажать RESET

    #include "esp_camera.h"
    #include <WiFi.h>
    #include "esp_timer.h"
    #include "img_converters.h"
    #include "Arduino.h"
    #include "fb_gfx.h"
    #include "soc/soc.h" //disable brownout problems
    #include "soc/rtc_cntl_reg.h"  //disable brownout problems
    #include "esp_http_server.h"
    
    const char* ssid = "имя Вашей точки доступа WiFi";
    const char* password = "пароль Вашей точки доступа WiFi";
    
    #define PART_BOUNDARY "123456789000000000000987654321"
    
    #define PWDN_GPIO_NUM     32
    #define RESET_GPIO_NUM    -1
    #define XCLK_GPIO_NUM      0
    #define SIOD_GPIO_NUM     26
    #define SIOC_GPIO_NUM     27
    
    #define Y9_GPIO_NUM       35
    #define Y8_GPIO_NUM       34
    #define Y7_GPIO_NUM       39
    #define Y6_GPIO_NUM       36
    #define Y5_GPIO_NUM       21
    #define Y4_GPIO_NUM       19
    #define Y3_GPIO_NUM       18
    #define Y2_GPIO_NUM        5
    #define VSYNC_GPIO_NUM    25
    #define HREF_GPIO_NUM     23
    #define PCLK_GPIO_NUM     22
    
    static const char* _STREAM_CONTENT_TYPE = "multipart/x-mixed-replace;boundary=" PART_BOUNDARY;
    static const char* _STREAM_BOUNDARY = "\r\n--" PART_BOUNDARY "\r\n";
    static const char* _STREAM_PART = "Content-Type: image/jpeg\r\nContent-Length: %u\r\n\r\n";
    
    httpd_handle_t stream_httpd = NULL;
    
    static esp_err_t stream_handler(httpd_req_t* req)
    {
        camera_fb_t* fb = NULL;
        esp_err_t res = ESP_OK;
        size_t _jpg_buf_len = 0;
        uint8_t* _jpg_buf = NULL;
        char* part_buf[64];
    
        res = httpd_resp_set_type(req, _STREAM_CONTENT_TYPE);
        if (res != ESP_OK) {
            return res;
        }
    
        while(true){
            fb = esp_camera_fb_get();
            if (!fb) {
                Serial.println("Camera capture failed");
                res = ESP_FAIL;
            }
            else {
                if (fb->width > 400) {
                    if (fb->format != PIXFORMAT_JPEG) {
    
                        bool jpeg_converted = frame2jpg(fb, 80, &_jpg_buf, &_jpg_buf_len);
                        esp_camera_fb_return(fb);
                        fb = NULL;
                        if (!jpeg_converted) {
                            Serial.println("JPEG compression failed");
                            res = ESP_FAIL;
                        }
                    }
                    else {
                        _jpg_buf_len = fb->len;
                        _jpg_buf = fb->buf;
                    }
                }
            }
    
            if (res == ESP_OK) {
                size_t hlen = snprintf((char *)part_buf, 64, _STREAM_PART, _jpg_buf_len);
                res = httpd_resp_send_chunk(req, (const char *)part_buf, hlen);
            }
    
            if (res == ESP_OK) {
                res = httpd_resp_send_chunk(req, (const char *)_jpg_buf, _jpg_buf_len);
            }
    
            if (res == ESP_OK) {
                res = httpd_resp_send_chunk(req, _STREAM_BOUNDARY, strlen(_STREAM_BOUNDARY));
            }
    
            if (fb) {
                esp_camera_fb_return(fb);
                fb = NULL;
                _jpg_buf = NULL;
            }
            else if (_jpg_buf) {
                free(_jpg_buf);
                _jpg_buf = NULL;
            }
    
            if (res != ESP_OK){
                break;
            }
        }
        return res;
    }
    
    void startCameraServer()
    {
        httpd_config_t config = HTTPD_DEFAULT_CONFIG();
        config.server_port = 80;
    
        httpd_uri_t index_uri = {
            .uri       = "/",
            .method    = HTTP_GET,
            .handler   = stream_handler,
            .user_ctx  = NULL
        };
    
        if (httpd_start(&stream_httpd, &config) == ESP_OK) {
            httpd_register_uri_handler(stream_httpd, &index_uri);
        }
    }
    
    void setup()
    {
        WRITE_PERI_REG(RTC_CNTL_BROWN_OUT_REG, 0);
    
        Serial.begin(115200);
        Serial.setDebugOutput(false);
    
        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 (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;
        }
    
        // Инициализация камеры
        esp_err_t err = esp_camera_init(&config);
        if (err != ESP_OK) {
            Serial.printf("Camera init failed with error 0x%x", err);
            return;
        }
        // подключение к Wi-Fi
        WiFi.begin(ssid, password);
        while (WiFi.status() != WL_CONNECTED) {
            delay(500);
            Serial.print(".");
        }
        Serial.println("");
        Serial.println("WiFi connected");
    
        Serial.print("Camera Stream Ready! Go to: http://");
        Serial.print(WiFi.localIP());
    
        // Инициализация сервера стрима
        startCameraServer();
    }
    
    void loop()
    {
        delay(1);
    }
    

    Комплектация

    • 1х плата ESP-32-CAM;

    Ссылки

    Товары
    Первой необходимости и другие вещи, которые могут пригодиться!
    В наличии
    164
    В наличии
    Преобразователь интерфейсов Piranha USB-UART (FT230 / USB Micro): Конвертер сигналов на чипе FT230 для прошивки и отладки контроллеров без собственного USB Подробнее
    490
    Скоро в продаже
    Преобразователь интерфейсов USB-UART (CP2102 / USB Type-A): Конвертер сигналов на чипе CP2102 для прошивки и отладки контроллеров без собственного USB Подробнее
    247
    В наличии
    Контроллер WeMos ESP8266 D1/R1: Платформа на модуле ESP8266 c Wi-Fi для разработки электронных устройств Подробнее
    390
    Скоро в продаже
    945
    В наличии осталось 7 шт.
    940
    В наличии осталось 2 шт.
    Raspberry Pi 5 (4 ГБ): Платформа с процессором Broadcom BCM2712 на 4 ядра по 2,4 ГГц, 4 ГБ RAM и модулями Wi-Fi / Bluetooth Подробнее
    12900
    В наличии
    Metro Leonardo: Подробнее
    440
    В наличии
    Arduino Nano ATmega328PB (USB CH340 / С ногами): Платформа c микроконтроллером ATmega328PB на ядре AVR с чипом USB CH340 для разработки электронных устройств на языке C++ Подробнее
    690
    Скоро в продаже
    Arduino Uno R3 (USB ATmega16U2): Платформа c микроконтроллером ATmega328P на ядре AVR с чипом USB ATmega16U2 для разработки электронных устройств на языке C++ Подробнее
    890
    В наличии
    95
    Скоро в продаже
    Arduino Mega 2560 R3 (USB ATmega16U2): Платформа c микроконтроллером ATmega2560 на ядре AVR с чипом USB ATmega16U2 для разработки электронных устройств на языке C++ Подробнее
    2490
    В наличии
    Piranha Ultra R3: Улучшенный аналог Arduino Uno R3 c микроконтроллером ATmega1284P на ядре AVR для разработки электронных устройств на языке C++ Подробнее
    2190
    Скоро в продаже
    Arduino RF-Nano (С ногами): Платформа c микроконтроллером ATmega328P на ядре AVR и модулем связи nRF24L01 с частотой 2,4 ГГц Подробнее
    693
    Или перейти в корзину и оформить заказ.
    Гарантии и возврат Используя сайт Вы соглашаетесь с условями
    Есть вопрос?