В прошлой статье я рассказывал, как подключить топовую 5Мп камеру OV5640 к ESP32. Получилось дорого-богато, но всегда-ли это оправдано? Для какой-нибудь самодельной робототехнической платформы гораздо важнее, чтобы не зависала картинка.
Ну или как в моей самодельной фото-ловушке присматривающей за кошками и отправляющей фото в "телегу" - изображения хорошего качества это бесполезный расход трафика.
Поэтому в этой статье я расскажу про быстрый старт с любой платой ESP32 и самой доступной камерой OV7670
На Али такая камера стоит чуть больше 100 рублей, так что итоговая стоимость (ESP32+OV7670) обойдется даже дешевле чем ESP32 CAM + USB-UART переходник.
"Распиновка" этой камеры похожа на (OV5640/OV2640) - поэтому будущую самодельную "ESP-32 CAM" решил сделать совместимой и с этой камерой.
Расположение контактов на разъеме можно оставить точно такое-же
Что там по доступному софту ?
Из более менее путного валяющегося на гитхабе нашлась интересная разработка от энтузиаста Mudassar Tamboli: esp32-ov7670-websocket-video-camera
ESP32+OV7670 — WebSocket Video Camera | by Mudassar Tamboli | Medium
Его проект на GitHub
А его работа была основана на другой крупной библиотеке от разработчика с ником bitluni's lab
В этом проекте картинка с этой камеры выводилась на мини TFT дисплей.
Этот проект на ГитХаб:
Все остальное, что там лежит - разные вариации кода первого или второго автора....
Единственная проблема - авторы писали код давно, а по сколько к этому времени изменились версии поддержки плат проект "esp32-ov7670-websocket-video-camera" у меня сначала не взлетел (плата уходила в перезагрузку при попытке получить картинку с камеры)
Пару-тройку часов "гугленья" привели на страницу, где было написано, что необходимо в файлик XClk.cpp добавить одну строчку кода:
timer_conf.clk_cfg = LEDC_USE_APB_CLK;
Описание проблемы тут:
Кто там любит писать про низкий порог вхождения с точки зрения знаний и умений для Arduino ? Не ведитесь на этот миф, практически все что лежит в сети потребует "тщательной доработки напильником", а анализ и правка чужого кода потребует от Вас бОльшей квалификации чем написание собственного кода.
Например автор первого исходника (где картинка с камеры выводится на веб-страничку) честно признался, что писал его несколько недель и тут приходит такой "Вася Пупкин" уверенно мигающий светодиодом и думает, что с легкостью перепишет исходник написанный прожженным "программером" под свои хотелки.
Для желающих поиграться с камерой OV7670
Версия платы: 2.0.4
Потребуется также библиотека: WebSockets
Внешняя SPI память автором библиотеки не задействована (у камеры низкое разрешение и вся картинка влезла в "оперативку") - поэтому подойдет любая плата ESP32.
Исходник под свою "распиновку" камеры я тоже выложу - думаю, что для быстрого старта ESP32 и OV7670 информации изложенной в данной статье будет достаточно. (не забудьте отредактировать его чтобы подключиться к "домашней вафле") - и обязательно ознакомьтесь с материалами авторов библиотек - все ссылки в моей статье есть.
p.s: с такими длинными проводами камера работает очень не устойчиво, провода нужны покороче, а лучше все собрать на макете с помощью паяльника чем я в ближайшее время и планирую заняться.
Мой "исходник" тут:
Оглавление канала доступно тут:
Всем удачи!