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

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

🎯 Быстрый старт: самые важные пины#
Если лень читать всё — вот главное:
| Задача | Пины | Примечание |
|---|---|---|
| I2C (дисплеи, датчики) | SDA = GPIO21, SCL = GPIO22 | Стандартные пины |
| SPI (SD-карты, TFT) | MOSI = GPIO23, MISO = GPIO19, CLK = GPIO18, CS = GPIO5 | Быстрый интерфейс |
| UART (Serial) | TX = GPIO1, RX = GPIO3 | Занят USB! |
| Питание 3.3V | 3.3V | Для датчиков |
| Питание 5V | VIN | Вход от USB |
| Земля | GND | Несколько пинов |
⚡ Питание ESP32#
Как запитать плату?#
| Способ | Пин | Напряжение | Когда использовать |
|---|---|---|---|
| USB | micro-USB | 5V | Разработка, отладка |
| Внешний БП | VIN | 5-12V | Готовый проект |
| Напрямую | 3.3V | 3.3V | Только если есть стабилизатор! |
⚠️ Важно: Никогда не подавай больше 3.3V на GPIO пины — сгорят!
Выходы питания#
| Пин | Напряжение | Ток | Для чего |
|---|---|---|---|
| 3.3V | 3.3V | до 500mA | Питание датчиков, дисплеев |
| VIN/5V | 5V | зависит от USB | Питание модулей на 5V |
| GND | 0V | — | Общая земля |
💡 Совет: Для мощных потребителей (моторы, много светодиодов) используй внешний БП, не грузи стабилизатор ESP32.
🔌 I2C — для дисплеев и датчиков#
Стандартные пины:
- SDA = GPIO21 (данные)
- SCL = GPIO22 (тактирование)
Что подключать по I2C:#
| Устройство | Адрес | Пример |
|---|---|---|
| OLED SSD1306 | 0x3C | Дисплеи 0.96", 1.3" |
| BME280 | 0x76/0x77 | Температура, влажность, давление |
| MPU6050 | 0x68 | Гироскоп, акселерометр |
| BH1750 | 0x23 | Датчик освещённости |
Схема подключения 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 |
|---|---|
| MOSI | GPIO13 |
| MISO | GPIO12 |
| CLK | GPIO14 |
| CS | GPIO15 |
💡 Когда нужен HSPI: Если VSPI занят одним устройством (например, TFT), а нужно подключить ещё SD-карту.
📡 UART — Serial порты#
ESP32 имеет 3 UART порта:
| UART | TX | RX | Примечание |
|---|---|---|---|
| UART0 | GPIO1 | GPIO3 | ⚠️ Занят USB! Не используй |
| UART1 | GPIO10 | GPIO9 | ⚠️ Занят Flash! |
| UART2 | GPIO17 | GPIO16 | ✅ Свободен, используй его |
Для чего 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_0 | GPIO36 | ✅ Только вход |
| ADC1_3 | GPIO39 | ✅ Только вход |
| ADC1_4 | GPIO32 | ✅ |
| ADC1_5 | GPIO33 | ✅ |
| ADC1_6 | GPIO34 | ✅ Только вход |
| ADC1_7 | GPIO35 | ✅ Только вход |
ADC2 (с ограничениями):#
⚠️ ADC2 не работает когда включён WiFi! Используй ADC1.
Для чего ADC:#
- Потенциометры
- Фоторезисторы
- Датчики влажности почвы
- Аналоговые джойстики
- Мониторинг батареи
Пример — делитель напряжения для батареи:#
Батарея 4.2V → Резистор 100K → GPIO34 → Резистор 100K → GND
Получишь ~2.1V на входе (безопасно для ESP32).
🎛️ DAC — аналоговые выходы#
ESP32 имеет 2 канала DAC (8 бит, 0-255):
| Канал | GPIO |
|---|---|
| DAC1 | GPIO25 |
| DAC2 | GPIO26 |
Для чего DAC:#
- Генерация звука
- Управление яркостью (без ШИМ)
- Аналоговые сигналы для других устройств
✋ Touch — сенсорные входы#
ESP32 имеет 10 ёмкостных сенсоров:
| Touch | GPIO |
|---|---|
| Touch0 | GPIO4 |
| Touch2 | GPIO2 |
| Touch3 | GPIO15 |
| Touch4 | GPIO13 |
| Touch5 | GPIO12 |
| Touch6 | GPIO14 |
| Touch7 | GPIO27 |
| Touch8 | GPIO33 |
| Touch9 | GPIO32 |
💡 Применение: Сенсорные кнопки без механики — просто подключи провод или медную площадку к пину.
⚠️ Пины с ограничениями#
Только вход (Input Only):#
| GPIO | Причина |
|---|---|
| GPIO34 | Нет подтяжки |
| GPIO35 | Нет подтяжки |
| GPIO36 | Нет подтяжки |
| GPIO39 | Нет подтяжки |
Эти пины нельзя использовать как выход — только читать значения.
Заняты Flash (не трогай!):#
| GPIO | Назначение |
|---|---|
| GPIO6 | Flash CLK |
| GPIO7 | Flash D0 |
| GPIO8 | Flash D1 |
| GPIO9 | Flash D2 |
| GPIO10 | Flash D3 |
| GPIO11 | Flash CMD |
⚠️ Никогда не подключай ничего к GPIO6-11! Плата перестанет работать.
Влияют на загрузку:#
| GPIO | При загрузке |
|---|---|
| GPIO0 | LOW = режим прошивки |
| GPIO2 | Должен быть LOW или плавающий |
| GPIO12 | HIGH = ошибка Flash |
| GPIO15 | HIGH = отключает лог в Serial |
💡 Совет: Не подключай кнопки к GPIO0, 2, 12, 15 — могут быть проблемы с загрузкой.
✅ Безопасные GPIO для любых задач#
Эти пины можно использовать без проблем:
| GPIO | Особенности |
|---|---|
| GPIO4 | Touch0, ADC2 |
| GPIO5 | Часто используется как CS |
| GPIO13 | Touch4, HSPI |
| GPIO14 | Touch6, HSPI CLK |
| GPIO16 | UART2 RX |
| GPIO17 | UART2 TX |
| GPIO18 | VSPI CLK |
| GPIO19 | VSPI MISO |
| GPIO21 | I2C SDA |
| GPIO22 | I2C SCL |
| GPIO23 | VSPI MOSI |
| GPIO25 | DAC1 |
| GPIO26 | DAC2 |
| GPIO27 | Touch7 |
| GPIO32 | Touch9, ADC1 |
| GPIO33 | Touch8, 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?#
Проверенные платы собраны в разделе:
☕ Поддержать проект#
Если гайд был полезен — буду рад поддержке! Все средства идут на новые эксперименты и компоненты.
[ ❤️ Поддержать автора ]Вопросы? Пиши в Telegram