ELECTRONICS

ESP8266 и NodeMCU: распиновка, характеристики и отличия от ESP32

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

ESP8266 — плата, с которой в домашней автоматике всё началось. Дешевле ESP32 и проще, но с Wi-Fi и своим веб-сервером прямо на борту.

Чаще всего её покупают в виде NodeMCU: это готовая плата с USB, стабилизатором и кнопками, куда сам чип впаян модулем. Есть и версия Wemos D1 mini — то же самое, но вдвое меньше.

Главная странность, на которую жалуются все новички: номера на плате не совпадают с номерами в коде. Надпись D5 означает вывод GPIO14, и никакой логики в этом соответствии нет — его просто надо помнить или подсматривать в таблице ниже.

Распиновка

ВыводНазначение
D0 · GPIO16пробуждениеЕдинственный вывод, который умеет будить плату из глубокого сна. Прерывания и ШИМ не поддерживает.
D1 · GPIO5I2C SCLТактовая линия I2C по умолчанию. Один из самых безопасных выводов: при загрузке ничего не выдаёт.
D2 · GPIO4I2C SDAЛиния данных I2C по умолчанию. Тоже безопасен при старте.
D3 · GPIO0загрузкаОпределяет режим загрузки. Притянут к земле при включении — плата ждёт прошивку вместо запуска скетча.
D4 · GPIO2светодиод · загрузкаК нему припаян встроенный светодиод, причём светится он при низком уровне. Тоже участвует в загрузке.
D5 · GPIO14SPI SCKТактовый сигнал SPI. Свободный и надёжный вывод.
D6 · GPIO12SPI MISOЛиния данных «к плате» на шине SPI.
D7 · GPIO13SPI MOSIЛиния данных «от платы» на шине SPI.
D8 · GPIO15SPI SS · загрузкаВыбор устройства SPI. При старте обязан быть притянут к земле, иначе плата не загрузится.
A0 · ADC0единственный АЦПЕдинственный аналоговый вход. На самом чипе он меряет 0–1 В, но на плате NodeMCU стоит делитель, и вход принимает 0–3,3 В.
RX · GPIO3UART RXПриём по последовательному порту, занят при прошивке.
TX · GPIO1UART TXПередача по последовательному порту, занят при прошивке.
3V3Выход стабилизатора, отсюда питают датчики.
VINВход внешнего питания 5 В, минуя USB.
GNDЗемля, на плате их несколько.
RSTСброс. Для глубокого сна его соединяют с D0.

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

Микроконтроллер
ESP8266EX
Ядра
1Tensilica L106
Тактовая частота
80 МГцразгоняется до 160
Напряжение логики
3,3 В
Оперативная память
≈80 КБдоступно скетчу
Флеш-память
4 МБу NodeMCU
Беспроводная связь
Wi-Fi 802.11 b/g/nBluetooth нет
Цифровых выводов
11реально свободных меньше
Аналоговых входов
1десять разрядов, 0–1023
ШИМ
на любом выводепрограммный, частота до 1 кГц
Ток с одного вывода
12 мА
Питание
5 В через USB или VIN

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

ESP32

Вдвое больше ядер, втрое больше выводов, есть Bluetooth и восемнадцать аналоговых входов вместо одного. Разница в цене небольшая, поэтому новый проект логичнее начинать с ESP32.

Arduino UNO

Без сети, но пятивольтовая и с шестью аналоговыми входами. Если Wi-Fi не нужен, UNO удобнее: не надо согласовывать уровни.

Wemos D1 mini

Тот же ESP8266, но плата вдвое меньше и с другой раскладкой выводов. Программируется одинаково, отличается только формой.

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

В коде указан номер с платы

Написать digitalWrite(5, HIGH), глядя на надпись D5, — самая частая ошибка. Сработает GPIO5, то есть вывод, подписанный D1. Пишите D5 — это константа, которую среда сама переведёт в GPIO14.

Аналоговый вход показывает мусор выше вольта

Сам чип меряет до одного вольта. На NodeMCU перед входом стоит делитель, и потому плата принимает 3,3 В — а вот у голого модуля ESP-12 делителя нет, и подача трёх вольт сожжёт вход.

Плата не стартует из-за подключённого датчика

Три вывода — D3, D4 и D8 — определяют режим загрузки. Если на них висит что-то, притягивающее уровень не в ту сторону, плата уходит в режим прошивки или не запускается вовсе. Держите датчики на D1, D2, D5, D6, D7.

Не хватает питания при передаче

В момент включения радио плата потребляет короткие всплески до 300 мА. Дешёвый USB-порт или слабый стабилизатор этого не тянет — плата перезагружается по кругу. Помогает конденсатор на сотни микрофарад по питанию.

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

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

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