📌 Распиновка ESP32 DevKit — полный гайд для новичков#

Купил ESP32 и не понимаешь куда что подключать? Этот гайд для тебя! Разберём каждый пин и покажем примеры подключения.

ESP32 DevKit V1 Pinout


🎯 Быстрый старт: самые важные пины#

Если лень читать всё — вот главное:

ЗадачаПиныПримечание
I2C (дисплеи, датчики)SDA = GPIO21, SCL = GPIO22Стандартные пины
SPI (SD-карты, TFT)MOSI = GPIO23, MISO = GPIO19, CLK = GPIO18, CS = GPIO5Быстрый интерфейс
UART (Serial)TX = GPIO1, RX = GPIO3Занят USB!
Питание 3.3V3.3VДля датчиков
Питание 5VVINВход от USB
ЗемляGNDНесколько пинов

⚡ Питание ESP32#

Как запитать плату?#

СпособПинНапряжениеКогда использовать
USBmicro-USB5VРазработка, отладка
Внешний БПVIN5-12VГотовый проект
Напрямую3.3V3.3VТолько если есть стабилизатор!

⚠️ Важно: Никогда не подавай больше 3.3V на GPIO пины — сгорят!

Выходы питания#

ПинНапряжениеТокДля чего
3.3V3.3Vдо 500mAПитание датчиков, дисплеев
VIN/5V5Vзависит от USBПитание модулей на 5V
GND0VОбщая земля

💡 Совет: Для мощных потребителей (моторы, много светодиодов) используй внешний БП, не грузи стабилизатор ESP32.


🔌 I2C — для дисплеев и датчиков#

Стандартные пины:

  • SDA = GPIO21 (данные)
  • SCL = GPIO22 (тактирование)

Что подключать по I2C:#

УстройствоАдресПример
OLED SSD13060x3CДисплеи 0.96", 1.3"
BME2800x76/0x77Температура, влажность, давление
MPU60500x68Гироскоп, акселерометр
BH17500x23Датчик освещённости

Схема подключения OLED:#

OLED        ESP32
────        ─────
VCC    →    3.3V
GND    →    GND
SDA    →    GPIO21
SCL    →    GPIO22

💡 Фишка I2C: На одну шину можно повесить до 127 устройств (если разные адреса)!


🔄 SPI — для быстрых устройств#

Стандартные пины (VSPI):

  • MOSI = GPIO23 (данные к устройству)
  • MISO = GPIO19 (данные от устройства)
  • CLK/SCK = GPIO18 (тактирование)
  • CS/SS = GPIO5 (выбор устройства)

Что подключать по SPI:#

УстройствоПример
SD-картаЛогирование данных
TFT дисплейЦветные экраны ST7735, ILI9341
LoRa модульДальняя радиосвязь
NRF24L01Беспроводная связь

Альтернативная шина HSPI:#

ПинGPIO
MOSIGPIO13
MISOGPIO12
CLKGPIO14
CSGPIO15

💡 Когда нужен HSPI: Если VSPI занят одним устройством (например, TFT), а нужно подключить ещё SD-карту.


📡 UART — Serial порты#

ESP32 имеет 3 UART порта:

UARTTXRXПримечание
UART0GPIO1GPIO3⚠️ Занят USB! Не используй
UART1GPIO10GPIO9⚠️ Занят Flash!
UART2GPIO17GPIO16✅ Свободен, используй его

Для чего UART:#

  • GPS модули
  • GSM/GPRS модемы
  • Bluetooth модули (HC-05)
  • Связь с другим микроконтроллером

Пример подключения GPS:#

GPS         ESP32
───         ─────
VCC    →    3.3V
GND    →    GND
TX     →    GPIO16 (RX2)
RX     →    GPIO17 (TX2)

📊 ADC — аналоговые входы#

ESP32 имеет 18 каналов ADC с разрешением 12 бит (0-4095).

ADC1 (рекомендуется):#

КаналGPIOПримечание
ADC1_0GPIO36✅ Только вход
ADC1_3GPIO39✅ Только вход
ADC1_4GPIO32
ADC1_5GPIO33
ADC1_6GPIO34✅ Только вход
ADC1_7GPIO35✅ Только вход

ADC2 (с ограничениями):#

⚠️ ADC2 не работает когда включён WiFi! Используй ADC1.

Для чего ADC:#

  • Потенциометры
  • Фоторезисторы
  • Датчики влажности почвы
  • Аналоговые джойстики
  • Мониторинг батареи

Пример — делитель напряжения для батареи:#

Батарея 4.2V → Резистор 100K → GPIO34 → Резистор 100K → GND

Получишь ~2.1V на входе (безопасно для ESP32).


🎛️ DAC — аналоговые выходы#

ESP32 имеет 2 канала DAC (8 бит, 0-255):

КаналGPIO
DAC1GPIO25
DAC2GPIO26

Для чего DAC:#

  • Генерация звука
  • Управление яркостью (без ШИМ)
  • Аналоговые сигналы для других устройств

✋ Touch — сенсорные входы#

ESP32 имеет 10 ёмкостных сенсоров:

TouchGPIO
Touch0GPIO4
Touch2GPIO2
Touch3GPIO15
Touch4GPIO13
Touch5GPIO12
Touch6GPIO14
Touch7GPIO27
Touch8GPIO33
Touch9GPIO32

💡 Применение: Сенсорные кнопки без механики — просто подключи провод или медную площадку к пину.


⚠️ Пины с ограничениями#

Только вход (Input Only):#

GPIOПричина
GPIO34Нет подтяжки
GPIO35Нет подтяжки
GPIO36Нет подтяжки
GPIO39Нет подтяжки

Эти пины нельзя использовать как выход — только читать значения.

Заняты Flash (не трогай!):#

GPIOНазначение
GPIO6Flash CLK
GPIO7Flash D0
GPIO8Flash D1
GPIO9Flash D2
GPIO10Flash D3
GPIO11Flash CMD

⚠️ Никогда не подключай ничего к GPIO6-11! Плата перестанет работать.

Влияют на загрузку:#

GPIOПри загрузке
GPIO0LOW = режим прошивки
GPIO2Должен быть LOW или плавающий
GPIO12HIGH = ошибка Flash
GPIO15HIGH = отключает лог в Serial

💡 Совет: Не подключай кнопки к GPIO0, 2, 12, 15 — могут быть проблемы с загрузкой.


✅ Безопасные GPIO для любых задач#

Эти пины можно использовать без проблем:

GPIOОсобенности
GPIO4Touch0, ADC2
GPIO5Часто используется как CS
GPIO13Touch4, HSPI
GPIO14Touch6, HSPI CLK
GPIO16UART2 RX
GPIO17UART2 TX
GPIO18VSPI CLK
GPIO19VSPI MISO
GPIO21I2C SDA
GPIO22I2C SCL
GPIO23VSPI MOSI
GPIO25DAC1
GPIO26DAC2
GPIO27Touch7
GPIO32Touch9, ADC1
GPIO33Touch8, ADC1

🔧 Примеры подключения#

Пример 1: OLED + Датчик температуры (I2C)#

ESP32          OLED SSD1306      BME280
─────          ────────────      ──────
3.3V      →    VCC          →    VCC
GND       →    GND          →    GND
GPIO21    →    SDA          →    SDA
GPIO22    →    SCL          →    SCL

Оба устройства на одной шине I2C — работают параллельно!

Пример 2: TFT дисплей + SD-карта (SPI)#

ESP32          TFT ST7735        SD-карта
─────          ──────────        ────────
3.3V      →    VCC          →    VCC
GND       →    GND          →    GND
GPIO23    →    SDA/MOSI     →    MOSI
GPIO19    →    —            →    MISO
GPIO18    →    SCK          →    CLK
GPIO5     →    CS           
GPIO15    →    —            →    CS
GPIO2     →    DC
GPIO4     →    RST

Пример 3: Реле + Кнопка + Светодиод#

ESP32
─────
GPIO25    →    Реле (через транзистор!)
GPIO26    →    Светодиод (через резистор 220Ω)
GPIO27    →    Кнопка (к GND, с подтяжкой INPUT_PULLUP)

📚 Шпаргалка#

I2C:#

Wire.begin(21, 22);  // SDA, SCL

SPI:#

SPI.begin(18, 19, 23, 5);  // CLK, MISO, MOSI, CS

UART2:#

Serial2.begin(9600, SERIAL_8N1, 16, 17);  // RX, TX

ADC:#

int value = analogRead(34);  // 0-4095

Touch:#

int touch = touchRead(4);  // Touch0

🛒 Где купить ESP32 DevKit?#

Проверенные платы собраны в разделе:

🔌 Контроллеры ESP32


☕ Поддержать проект#

Если гайд был полезен — буду рад поддержке! Все средства идут на новые эксперименты и компоненты.

[ ❤️ Поддержать автора ]

Вопросы? Пиши в Telegram