А зачем собирать ESP32-CAM из отдельных модулей если в Китае можно купить готовую плату с камерой на борту?
Причины побудившие меня взяться за эту задачу следующие:
1. Большое количество брака
Первые 2 платы ESP32-CAM пришли нерабочие - при попытке активировать камеру уходили в перезагрузку и судя по информации из сети Интернет с этой проблемой сталкиваются многие.
2. Отсутствие USB - UART преобразователя
Отсутствие USB - UART преобразователя на борту является плюсом если вы делаете конструкции на продажу (так как это снижает цену готового изделия). Если вы пишите код сами - то в самоделку приходится напаивать дополнительную обвязку для подключения внешнего USB-UART преобразователя и прошивать плату через него, (а это требуется делать часто и для отладки СВОЕГО кода), не очень удобно.
3. Не устраивает готовая схемотехника
На плате есть сверхъяркий светодиод для вспышки:
Он использует один из контактов предназначенный для работы со встроенным на плату картридером. Соответственно при использовании карты памяти он будет слегка (или не слегка) светиться. Также на плате есть встроенный светодиод (с обратной стороны платы и толку от него на самом деле не много), который занимает GPIO33, но сам это порт ввода/вывода на гребенку не разведен.
4. Качество изображения миниатюрных камер OV2640
Вариантов OV2640 существует много, но те, что имеются у меня - практически все дают различные артефакты на изображениях.
Исходя из этих соображений я решил протестировать 5Мп камеру OV5640 установленную на модуль с обвязкой:
и проверить получится ли её запустить совместно с платформой 
ESP32-WROVER-B
Чип ESP32-WROVER-B это в принципе тот же самый ESP32-WROOM-32, но дополнительно содержит на борту память PSRAM, которая используется для буфера картинки с камеры.
Модуль не дешевый, но покупал я его еще до всем известных событий - и тогда цена была еще не такая "кусачая".
Waveshare не дешёвый магазин, за то на все, что производит эта фирма можно найти подробную документацию:
Обвязки там не много, соответственно для готовых конструкции можно "копипастнуть" выложенную в открытый доступ схемотехнику и попробовать спаять все самостоятельно.
Это отладочные платы - их цель быстренько выяснить, а стоит ли брать в руки паяльник в принципе. В частности на этой плате есть функция автофокусировки (в камеру встроен электромагнит) и 2 светодиода вспышки, но стандартная библиотека от Espressif для Arduino вряд-ли, что-то про них знает. Придется грызть документацию, а если что-то не получится то и травить плату смысла нет. (тогда можно будет поискать другую версию камеры OV5640).
Реализация и тестирование
На отладочной плате ESP32_devkitC на которой установлен ESP32-WROVER-B разведено много портов ввода/вывода:
- но обольщаться не стоит, многие из них ESP32 использует под свои нужды. Поэтому тупо "на втыкать" 16 перемычек куда угодно и слега "подпилить" библиотеку не выйдет.
Поковырявшись в документации получилась примерно такая схема подключения: (описание моё - могут быть ошибки!!!). После подключения камеры свободных GPIO остается не много, а из тех что остаются многие имеют ограничения на использование, которые описаны на этой схеме:
При подключении дополнительной периферии необходимо руководствоваться данной информацией.
Сборка прототипа:
Для сборки прототипа потребуется 16 перемычек для макетной платы (мама - мама, dual female)
Установка ПО и пробный запуск
- версия Arduino IDE 2.3.2
 - версия поддержки плат 3.0.5
 
На самодельном "пауке из проводов" запустился стандартный пример "CameraWebServer.ino" Самодельная камера получилась совместима с CAMERA_MODEL_WROVER_KIT (даже интересно чью китайскую плату я "среверсинжинирил" и как она вообще выглядит....)
В первом приближении все заработало без особых танцев с бубном.
Причем библиотека сама определила, что подключена именно OV5640, а не OV2640 без каких-либо дополнительных настроек в скетче:
В домашней сети у меня правда есть одна проблема - WEB-морда встроенная в этот пример работает только с мобильных устройств - с компьютера сама она открывается - но трансляция идет с ошибками (через несколько секунд видео виснет). Если вы сталкивались с такой проблемой и знаете как её порешать - пишите в комментариях.
Впрочем для потокового видео ESP-шка все-таки слабовата, но фотографии на 5Мп OV5640 можно делать уже хорошие.
Первый блин не комом, осталось разобраться с управлением автофокусом и светодиодами, ну и подумать как можно сделать саму конструкцию для повторения подешевле....
Продолжение следует....
Оглавление канала доступно тут:
Всем удачи!