ESP32:Платы/ESP32-CAM
![]() |
Черновик |
ESP32-CAM[1][2]
ESP32-CAM - это плата для создания прототипов, которая оснащена чипом ESP32-S, камерой OV2640, слотом для карт памяти microSD и несколькими GPIO-портами для подключения периферийных устройств. В данном руководстве мы изучим возможности GPIO-портов на плате ESP32-CAM и рассмотрим методы их использования для соединения других устройств и разработки проектов на базе данной платформы.
Распиновка
![](/ruwiki/images/d/dd/ESP32-CAM-pinout-mischianti.png)
![](/ruwiki/images/7/7e/ESP32-CAM-pinout-new.png)
Схема
![](/ruwiki/images/c/ca/ESP32-CAM-AI-Thinker-schematic-diagram.png)
Входное питание
Плата ESP32-CAM обладает тремя контактами земли (черный цвет) и двумя контактами питания (красный цвет): 3.3В и 5В.
Вы можете подавать питание на ESP32-CAM через контакты 3.3В или 5В. Однако, многие пользователи сообщают о возникающих ошибках при питании ESP32-CAM от 3.3В. Это связано с тем, что минимальное допустимое напряжение для ESP32-CAM составляет 3.6В, а контакт 3.3В не всегда обеспечивает стабильность напряжения, что может привести к ошибкам работы устройства. Поэтому, мы рекомендуем использовать контакт 5В для питания ESP32-CAM, чтобы гарантировать его надлежащую работу и стабильность работы устройства.
Выходное питание
![](/ruwiki/images/6/60/ESP32-CAM-Camera-AI-Think-Module-VCC-Power-Pins.png)
На плате также присутствует контакт Vcc. Этот контакт не следует использовать для питания ESP32-CAM, поскольку он является выходным контактом для питания и может выдавать напряжение 5 В или 3,3 В.
В нашем случае ESP32-CAM выдает напряжение 3,3 В, независимо от того, подается ли питание на него от 5 В или 3,3 В. Рядом с контактом Vcc есть две точки: одна помечена как 3,3 В, а другая - как 5 В.
Если внимательно посмотреть, на точках 3,3 В должена быть установлена перемычка. Если вы хотите получить на выходе контакта Vcc напряжение 5 В, вам нужно разъединить эту связь и припаять соединения к точкам 5В.
Последовательнй порт
GPIO 1 и GPIO 3 представляют собой пины для передачи данных в последовательном режиме (TX и RX соответственно). В связи с отсутствием встроенного программатора в ESP32-CAM, эти пины необходимы для загрузки кода на плату и установления связи с ней.
Наиболее эффективный способ загрузки кода на ESP32-CAM - использование программатора FTDI. После загрузки кода на плату можно использовать GPIO 1 и GPIO 3 для подключения других периферийных устройств, таких как выходные устройства или датчики. Однако при этом не будет возможности открыть монитор порта и следить за процессом работы системы в режиме реального времени.
GPIO 0
GPIO 0 определяет, находится ли ESP32 в режиме прошивки или нет. Этот порт GPIO внутренне подключен к резистору 10 кОм с подтяжкой к питанию.
Когда GPIO 0 подключен к земле (GND), ESP32 переходит в режим прошивки, и вы можете загружать код на плату.
Чтобы вернуть ESP32 в нормальный режим работы, достаточно просто отключить GPIO 0 от земли.
Подключение карты MicroSD
MicroSD | GPIO на плате ESP32 |
---|---|
CLK | GPIO 14 |
CMD | GPIO 15 |
DATA0 | GPIO 2 |
DATA1 / flashlight | GPIO 4 |
DATA2 | GPIO 12 |
DATA3 | GPIO 13 |
void setup() {
pinMode(33, OUTPUT);
}
void loop() {
digitalWrite(33, LOW);
}
Подключение камеры
Соединения между камерой и ESP32-CAM AI-Thinker показаны в следующей таблице.
OV2640 | GPIO на плате ESP32 | Имя переменной в коде |
---|---|---|
D0 | GPIO 5 | Y2_GPIO_NUM |
D1 | GPIO 18 | Y3_GPIO_NUM |
D2 | GPIO 19 | Y4_GPIO_NUM |
D3 | GPIO 21 | Y5_GPIO_NUM |
D4 | GPIO 36 | Y6_GPIO_NUM |
D5 | GPIO 39 | Y7_GPIO_NUM |
D6 | GPIO 34 | Y8_GPIO_NUM |
D7 | GPIO 35 | Y9_GPIO_NUM |
XCLK | GPIO 0 | XCLK_GPIO_NUM |
PCLK | GPIO 22 | PCLK_GPIO_NUM |
VSYNC | GPIO 25 | VSYNC_GPIO_NUM |
HREF | GPIO 23 | HREF_GPIO_NUM |
SDA | GPIO 26 | SIOD_GPIO_NUM |
SCL | GPIO 27 | SIOC_GPIO_NUM |
POWER PIN | GPIO 32 | PWDN_GPIO_NUM |
Итак, определение контактов для ESP32-CAM AI-Thinker в среде Arduino IDE должно быть следующим:
#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
См.также
Внешние ссылки