ELECTRONICS

Wemos D1 mini: распиновка ESP8266, шилды и отличия от NodeMCU

9 цифровых1 аналоговых

Wemos D1 mini — самая маленькая плата на ESP8266 с USB: три с половиной на два с половиной сантиметра, одиннадцать выводов и Wi-Fi. Для датчика в углу комнаты, который раз в минуту отправляет температуру, ничего больше не нужно.

Главная особенность — шилды: платы того же размера, которые надеваются сверху. Реле, дисплей, датчик температуры, аккумулятор — собирается бутерброд без единого провода. Это её отличие от NodeMCU, у которой выводов больше, но нет экосистемы.

Внимание к названию: есть D1 mini на ESP8266 и есть D1 mini на ESP32 в том же корпусе. Раскладка совпадает, чип другой. Здесь — про ESP8266, классическую.

Распиновка

ESP8266EXRSTI2CTXRXD1D2D3D4G5VRSTA0D0D5D6D7D83V3
Наведите на любой вывод платы — расскажем, зачем он. Цвет точки означает роль: ■ питание, ■ земля, ■ цифровой, ■ аналоговый, ■ служебный.
Запустить в симулятореПлата на схеме: питание и подключения. Скетчи для ESP пока не запускаются · как работает симулятор

Все выводы списком

ВыводНазначение
D0 · GPIO16пробуждениеКнопка, светодиод, реле, а также пробуждение платы из глубокого сна.
подробнее

Будит плату из глубокого сна, для этого его соединяют с RST. Без ШИМ, без прерываний, без I2C.

D1 · GPIO5I2C SCLШина I2C: дисплеи OLED и LCD, часы реального времени, датчики давления и ускорения.
подробнее

Тактовая линия I2C. Все шилды с дисплеями и датчиками сидят на ней.

D2 · GPIO4I2C SDAШина I2C: дисплеи OLED и LCD, часы реального времени, датчики давления и ускорения.
подробнее

Линия данных I2C. Вместе с D1 — самые безопасные выводы платы.

D3 · GPIO0загрузкаКнопка, светодиод, датчик — но при включении платы уровень на нём менять нельзя: влияет на загрузку.
подробнее

Подтянут к плюсу резистором 10 кОм, участвует в загрузке. Кнопку сюда ставить можно, датчик с активным низким — нет.

D4 · GPIO2светодиод · загрузкаВстроенный светодиод для первых опытов. Как обычный вывод тоже работает.
подробнее

Встроенный светодиод, светится при низком уровне. Тоже подтянут вверх и участвует в загрузке.

D5 · GPIO14SPI SCKШина SPI: карта памяти, считыватель RFID, радиомодуль nRF24, быстрые дисплеи. Без SPI — обычный вывод.
подробнее

Тактовая линия SPI и просто хороший свободный вывод.

D6 · GPIO12SPI MISOШина SPI: карта памяти, считыватель RFID, радиомодуль nRF24, быстрые дисплеи. Без SPI — обычный вывод.
подробнее

Линия SPI «к плате». Свободен и безопасен.

D7 · GPIO13SPI MOSIШина SPI: карта памяти, считыватель RFID, радиомодуль nRF24, быстрые дисплеи. Без SPI — обычный вывод.
подробнее

Линия SPI «от платы». Свободен и безопасен.

D8 · GPIO15SPI SS · загрузкаШина SPI: карта памяти, считыватель RFID, радиомодуль nRF24, быстрые дисплеи. Без SPI — обычный вывод.
подробнее

Подтянут к земле резистором 10 кОм. При старте обязан быть низким — подтяжка вверх снаружи не даст плате загрузиться.

A0единственный АЦПАналоговый датчик: потенциометр, фоторезистор, влажность почвы, напряжение батареи.
подробнее

Единственный аналоговый вход, 0–3,3 В через делитель на плате, 10 разрядов.

TX · GPIO1UART TXПередача на компьютер: монитор порта и прошивка. На время загрузки скетча ничего не подключать.
подробнее

Передача UART, занят при прошивке и мониторе порта.

RX · GPIO3UART RXПриём с компьютера: монитор порта и прошивка. На время загрузки скетча освободить.
подробнее

Приём UART, занят при прошивке.

RSTПерезапуск платы: кнопка сброса или сигнал от другого устройства.
подробнее

Сброс. Соединить с D0 для пробуждения из глубокого сна.

5VПитание модулей на 5 В: датчиков, дисплеев, реле, сервоприводов.
подробнее

Напряжение с USB; на плате V4.0.0 тот же вывод подписан VBUS. Вход внешнего питания и выход для пятивольтовых модулей.

3V3Питание модулей на 3,3 В: радиомодулей, карт памяти, некоторых датчиков.
подробнее

Выход стабилизатора, до 500 мА на всё вместе с чипом.

GОбщий провод схемы: минус всех модулей, датчиков и внешнего питания.
подробнее

Земля. Она одна — при монтаже на макетку это стоит учесть.

Характеристики

Микроконтроллер
ESP8266EX80 МГц, одно ядро
Флеш-память
4 МБу версии Pro — 16
Напряжение логики
3,3 В
Беспроводная связь
Wi-Fi 802.11 b/g/n
Цифровых выводов
9D0–D8
Аналоговых входов
10–3,3 В
USB
micro-USB, CH340у V4 — USB-C
Ток с одного вывода
12 мА
Питание
5 В через USB или вывод 5V
Размер
34 × 26 мм
Шаг выводов
2,54 ммдва ряда по 8

Какие выводы можно занимать, а какие лучше не трогать

У ESP8266 не все выводы равноправны. Четыре из одиннадцати участвуют в загрузке: при включении контроллер смотрит на их уровень и решает, запускать программу или ждать прошивку. Если повесить на такой вывод кнопку или датчик, который тянет линию не туда, плата просто не стартует — и это выглядит как поломка, хотя дело в схеме.

ВыводМожно ли занимать
D1, D2Свободно. Это же линии I2C — если шина не нужна, используйте как обычные выводы.
D5, D6, D7Свободно. Это линии SPI, но при неиспользуемом SPI они полностью ваши. Лучшие выводы платы.
D0Только выход и без ШИМ. Умеет будить плату из глубокого сна, если соединить с RST.
D3С оговоркой: подтянут к плюсу и участвует в загрузке. Кнопку на землю вешать можно, датчик, тянущий вниз при старте, — нет.
D4С оговоркой: тоже подтянут вверх, и на нём сидит встроенный светодиод.
D8С оговоркой: подтянут к земле и при старте обязан быть низким. Ничего, что тянет его вверх, подключать нельзя.
TX, RXЗаняты: через них идёт прошивка и монитор порта. Освобождаются, только если отказаться от того и другого.
A0Единственный аналоговый вход, 0–3,3 В. Выше — сожжёте, ниже нуля тоже нельзя.

Встроенный светодиод: на каком он выводе

Светодиод распаян на D4, это GPIO2. Логика у него обратная: digitalWrite(D4, LOW) зажигает, HIGH гасит — светодиод включён между питанием и выводом, а не между выводом и землёй.

Отсюда два следствия. Первое: если светодиод мигает наоборот, вы ничего не сломали, так и задумано. Второе: вывод D4 занят светодиодом, но использовать его всё равно можно — просто помните, что каждое переключение будет видно глазами, а при старте он моргнёт сам.

Где какой интерфейс

Номера на плате (D1, D2 и так далее) не совпадают с номерами GPIO, которые ждёт код. Это главная путаница у новичков: в скетче для ESP8266 пишут либо константы D1, D2, либо номера GPIO, и перепутать их легко.

ИнтерфейсВыводы
I2CD1 — тактовая линия SCL (GPIO5), D2 — данные SDA (GPIO4). Стандартные для всех шилдов и дисплеев.
SPID5 — SCK (GPIO14), D6 — MISO (GPIO12), D7 — MOSI (GPIO13), D8 — выбор устройства (GPIO15).
UARTTX — GPIO1, RX — GPIO3. Заняты прошивкой и монитором порта.
ШИМЛюбой цифровой вывод, кроме D0. У ESP8266 модуляция программная, а не аппаратная, поэтому жёсткой привязки к выводам нет.
АЦПТолько A0, разрядность 10 бит. На плате уже стоит делитель, поэтому вход рассчитан на 3,3 В, а не на 1 В, как у голого модуля.
ПрерыванияЛюбой вывод, кроме D0.

Версии платы: почему на вашей написано не D1, а просто 5

Плату выпускает LOLIN (бывший Wemos), и ревизии отличаются заметнее, чем принято думать. Порядок выводов не менялся ни разу — любая схема подойдёт к любой плате, — а вот подписаны они по-разному, и это сбивает с толку сильнее всего.

На платах до третьей ревизии включительно подписи напечатаны на лицевой стороне в привычной нотации: D1, D2, D3 и так далее. На актуальной V4.0.0 подписи перенесли на обратную сторону и сменили на номера GPIO: 5, 4, 0, 2, 16, 14, 12, 13, 15. Рядом с ними подписаны интерфейсы — SCL, SDA, SCK, MISO, MOSI, SS.

Поэтому человек с новой платой видит на ней «5» и «4», а во всех уроках, включая наши примеры, написано D1 и D2. Это одно и то же: D1 — это GPIO5, D2 — GPIO4. В таблице распиновки в начале страницы рядом с каждым выводом стоит его номер GPIO, а в коде работают оба варианта: и digitalWrite(D1, HIGH), и digitalWrite(5, HIGH).

Что сравниваемДо V3 включительно / V4.0.0
Разъёмmicro-USB / Type-C
Чипмодуль ESP-12 под металлическим экраном / голый ESP8266EX и отдельная микросхема флеш-памяти
Подписи выводовна лицевой стороне, D1…D8 / на обратной стороне, номера GPIO
Вывод питания от USB5V / VBUS — то же самое, переименовали
Глубокий сонпаять провод D0 → RST / перемычка SLEEP прямо на плате
Разъём I2Cнет / есть отдельный четырёхконтактный разъём LOLIN I2C

Что распаяно на плате

Сразу за разъёмом USB стоит стабилизатор на 3,3 вольта — на разных партиях это ME6211, RT9013 или аналог, точную маркировку видно на самом корпусе. Именно он ограничивает ток по выводу 3V3 примерно пятьюстами миллиамперами и именно он греется, если повесить на плату мощный модуль.

Рядом — мост USB-UART, через который идёт прошивка: у старых ревизий это CH340G в крупном корпусе, у V4 микросхема та же, но в другом исполнении. Ещё на плате кварц на 26 МГц, кнопка сброса и, у четвёртой ревизии, отдельная микросхема флеш-памяти на 4 МБ — у старых она была спрятана внутри модуля ESP-12.

Клоны встречаются часто и обычно работают, но у них бывает урезана флеш-память: вместо 4 МБ ставят 1 МБ. Проверить можно в среде — при загрузке она печатает реальный размер.

Чем отличается от соседей

ESP8266 и NodeMCU

Тот же чип, та же нумерация D0–D8. NodeMCU крупнее, у неё три земли и выведены служебные выводы, но нет шилдов. Скетчи переносятся один в один.

ESP32-C3 Super Mini

Ещё меньше, с Bluetooth и USB прямо в чипе. Если проект новый и шилды не нужны, C3 современнее и не дороже.

D1 mini Pro

Та же плата с разъёмом для внешней антенны и 16 МБ памяти. Нужна, когда роутер далеко или надо хранить много данных на самой плате.

На чём попадаются

Куплена версия на ESP32

Внешне одинаковые, но скетч для ESP8266 на ESP32 не соберётся. Смотрите на чип: у ESP8266 экран с надписью ESP-12, у ESP32 — ESP32-WROOM. В среде это разные платы.

Шилд реле не даёт прошить плату

Часть шилдов сидит на D1, часть — на D3 или D8, а те участвуют в загрузке. Если после надевания шилда плата не прошивается, снимите его на время загрузки или перепаяйте перемычку на шилде.

Глубокий сон не просыпается

Для пробуждения по таймеру D0 должен быть соединён с RST — на платах до третьей ревизии это делают проводом или перемычкой. На V4.0.0 паять ничего не нужно: на обратной стороне есть готовая перемычка SLEEP, её достаточно замкнуть каплей припоя. И в обоих случаях соединять нужно после прошивки: с замкнутым сбросом загрузка идёт нестабильно.

Одна земля на всех

На плате единственный вывод G. Три датчика — уже три провода в одну точку. Удобнее вывести землю на шину макетки и брать оттуда.

Что к ней подключают

Схемы подключения, библиотеки и рабочие скетчи для датчиков, дисплеев и драйверов — в разделе компонентов. Каждый скетч проверен компиляцией именно под эту плату.

Перейти к компонентам