NodeMCU (ESP8266): Полное Руководство по Распиновке, Прошивке и IoT-Проектам
NodeMCU — популярная платформа для IoT на базе чипа ESP8266. Часто путают: NodeMCU — это прошивка (файл firmware) на языке Lua, а «NodeMCU DevKit» — плата разработки. Платформы несколько: DevKit v1.0 (ESP-12E, широкий), v2.0 (Amica, узкий), v3 (LoLin, широкий, USB micro, линейный стабилизатор). Разберем распиновку, периферию и старт с Arduino IDE.
Кратко об ESP8266 и NodeMCU
ESP8266EX — SoC от Espressif: 32-битный Xtensa LX106 @ 80/160 МГц, Wi-Fi 802.11 b/g/n, 17 GPIO, 1 ADC (10 бит, 0–1 В / 0–3,3 В с делителем), 2 UART, 2 SPI, 1 I2C (программный), 4 МБ Flash (SPI), 64 КБ SRAM, RTOS (FreeRTOS) или Bare Metal. Питание 3,3 В (вход 5 В через Vin или USB). Глубокий сон ~20 мкА.
NodeMCU firmware позволяет писать скрипты на Lua. Но 99% пользователей прошивают ESP8266 через Arduino IDE (C++) — проще, библиотек больше, производительность выше.
Распиновка NodeMCU DevKit v1.0 (ESP-12E, 30 пинов)
Пины GPIO ESP8266 ≠ пины платы (D0–D10, RX, TX). Таблица соответствия:
| Плата (Silk) | ESP8266 GPIO | Функции / Примечания |
|---|---|---|
| D0 | GPIO16 | WAKE (deep sleep), нет PWM/I2C/ADC, нет прерываний |
| D1 | GPIO5 | SCL (I2C), SPI CS, PWM, прерывание |
| D2 | GPIO4 | SDA (I2C), PWM, прерывание |
| D3 | GPIO0 | FLASH (Boot mode), PWM, прерывание, pull-up на плате |
| D4 | GPIO2 | TXD1, LED_BUILTIN (на плате), PWM, pull-up |
| D5 | GPIO14 | SPI SCK, PWM, прерывание |
| D6 | GPIO12 | SPI MISO, PWM, прерывание |
| D7 | GPIO13 | SPI MOSI, PWM, прерывание |
| D8 | GPIO15 | SPI CS, PWM, pull-down на плате, Boot mode |
| RX | GPIO3 | UART0 RX, прерывание |
| TX | GPIO1 | UART0 TX, прерывание |
| SD2 | GPIO9 | Зарезервировано (Flash SPI) — не использовать |
| SD3 | GPIO10 | Зарезервировано (Flash SPI) — не использовать |
| VIN | — | Вход 5–12 В (на стабилизатор AMS1117-3.3) |
| 3V3 | — | Выход 3,3 В (от стабилизатора, ~600 мА макс.) |
| GND | — | Земля |
| RST | RST | Сброс (активный низкий) |
| ADC (A0) | ADC0 | Вход АЦП 0–1 В (внутри делитель 100к/220к → 0–3,3 В) |
Питание и периферия
Питание
- Micro-USB (5 В) → AMS1117-3.3 → 3V3 пин.
- VIN (5–12 В) → тот же стабилизатор.
- 3V3 пин — выход стабилизатора (можно питать внешние датчики до ~300–400 мА реально).
- Не подавайте 5 В на GPIO! ESP8266 не 5V-толерантен (кроме некоторых пинов с оговорками). Используйте делители/конвертеры уровней.
GPIO (17 пинов)
Все GPIO поддерживают прерывания (кроме GPIO16). PWM программный (software PWM) на всех, аппаратный — на некоторых. GPIO6–11 заняты Flash (SPI) — не трогать.
UART
- UART0 (GPIO1 TX, GPIO3 RX) — основной, загрузка, Serial Monitor, baud до 921600 (стабильно 115200).
- UART1 (GPIO2 TX только) — только_TX, для логов/дебага.
I2C (программный)
Нет железа. Библиотека Wire.h использует GPIO4 (SDA) и GPIO5 (SCL) по умолчанию. Любые два GPIO можно переназначить.
SPI
Два интерфейса: SPI (GPIO6–11, занят Flash) и HSPI (GPIO12–15, свободен). Master до 80 МГц, Slave до 20 МГц. Используйте HSPI (D5–D8).
Спец. пины
- GPIO0 (D3) — Boot: LOW при старте = режим прошивки (Flash). На плате pull-up.
- GPIO2 (D4) — Boot: LOW = режим прошивки. На плате pull-up + синий LED.
- GPIO15 (D8) — Boot: HIGH = режим прошивки. На плате pull-down.
- GPIO16 (D0) — WAKE от deep sleep (соединить с RST для пробуждения).
Подключение к Arduino IDE
- Файл → Настройки → Доп. URL:
https://arduino.esp8266.com/stable/package_esp8266com_index.json - Инструменты → Плата → Менеджер плат → «esp8266» → Установить (выбирайте версию 3.x.x).
- Инструменты → Плата → ESP8266 Boards → NodeMCU 1.0 (ESP-12E Module).
- Порт → ваш COM. Скорость загрузки 921600.
- Скетч → Загрузить. Готово.
Альтернативные платы на ESP8266/ESP32
- Wemos D1 Mini / D1 Mini Pro — компактнее, те же GPIO.
- ESP-01 / ESP-01S — 8 пинов, 2 GPIO, нужно внешнее питание 3.3В и программатор.
- ESP32 DevKit — двухъядерный, Bluetooth, больше GPIO, ADC, DAC, тактовый 감지기, выше производительность.
- Arduino Uno / Nano / Mega — нет Wi-Fi, но 5В логика, больше аналогов, реальное время.
- Raspberry Pi Pico (RP2040) / Pico W — дешево, 2 ядра, PIO, Wi-Fi (W).
Применения NodeMCU
- IoT-датчики (темп., влажность, давление, CO2) → MQTT / HTTP / Blynk / Home Assistant.
- Умный дом: реле, диммеры, управление шторами, воротами.
- Автономные логигеры на батарее (Deep Sleep).
- Веб-серверы, OTA-обновления, captive portal.
- Роботы с Wi-Fi управлением, телеметрия.
Заключение
NodeMCU (ESP8266) — входной билет в мир Wi-Fi/IoT за $3–5. Мощный 32-битный MCU, 4 МБ Flash, Arduino-совместимый, богатый экосистемой. Главные нюансы: 3.3В логика, 1 ADC, GPIO0/2/15 — strapping пины, один HW UART. Учтя это — проекты работают стабильно годами. Вопросы по прошивке, схемам, библиотекам — обращайтесь.
Промышленные технологии
- 7 ключевых React-библиотек, которые должен освоить каждый разработчик
- Роботизированные руки Pick & Place: Полное руководство по автоматизации и производительности
- Основное руководство по тестированию трансформаторного масла для надежных энергосистем
- 5 ключевых инсайтов о микроинструментах для точной обработки
- TAA Compliance: 5 ключевых пунктов, которые должен знать каждый поставщик
- 9 ключевых применений машинного обучения, которые вы должны знать
- Революция в ж/д операциях: ключевые инновации оборудования, которые нужно знать
- USB-C: возможности, распиновка и Power Delivery — всё, что нужно знать
- Базовый словарь терминов водоабразивной резки для профессионалов
- Закаточка (кюрлинг): технология создания текстурированных поверхностей