
В моем арсенале уже несколько месяцев лежал ESP8266 с вайфаем — купил за 300 рублей с мыслью 'сделаю что-нибудь умное'. Но каждый раз, когда я открывал гайды, натыкался на одно и то же: «установите Arduino IDE, настройте библиотеки, скомпилируйте скетч»...
Мой энтузиазм благополучно утекал вместе с часами настройки. А я из тех, кому не нравится устанавливать лишний софт на свой ПК — эти гигабайтные IDE-редакторы, регистрации, танцы с бубном вокруг драйверов... Не мое. Действую по принципу: «Скачал → запустил → работает». Только скачанные файлы, которые работают без установки на ПК и не оставляют следов в системе.
У меня есть опыт программирования на обычном Python, но для себя открыл, что на нем можно общаться и с микроконтроллерами. Раньше я не уделял этому внимания, а теперь понял — с куском железа можно разговаривать на человеческом языке. Это именно тот Python, который многие уже знают, только теперь он работает прямо на микроконтроллере.
И еще — мне нравится понимать, что делаю. Надоело смотреть на «код-абракадабру», который просто копируешь и молишься, чтобы заработало. Хочется читать команды как обычный текст: 'включи светодиод', 'если датчик мокрый — отправь сообщение'.
Попробовал — и понял, почему удобно использовать MicroPython: команды как в обычном Python, видна логика процесса и результат виден сразу.
В статье я покажу подход, который подойдет для самых популярных ESP-модулей. Фокус на моделях с Wi-Fi не случаен — именно беспроводная связь открывает двери в мир интернета вещей. Вы сможете не только мигать светодиодами, но и отправлять данные в интернет, получать уведомления и управлять проектами удалённо. И всё это — без глубоких технических знаний и установки гигабайтов софта:
ESP8266 WEMOS D1 UNO WiFi — удобная плата в форм-факторе Arduino.
NodeMCU v3.0 — самый распространенный вариант для экспериментов.
ESP32-S3-DevKitC-1 — более мощный модуль с расширенными возможностями.
ESP32 38-pins - универсальный вариант.
Хорошая новость: принцип работы со всеми ними одинаковый! Разница только в незначительных деталях:
Ном��ра пинов для подключения (но встроенный светодиод у всех на пине 2).
Название файла прошивки (для ESP8266 и ESP32 разные).
Команда прошивки (одинаковая, меняется только имя файла).
Что у нас должно получиться?
ESP8266/ESP32 Wi-Fi модули с прошитым при помощи легких скачанных файлов MicroPython, которые работают без установки на ПК и потом легко удаляются, если нет необходимости в их использовании.
Реакция контроллера на наши команды — включаем/выключаем светодиод, читаем данные с датчиков.
Воздействие через сеть — используем встроенный Wi-Fi для отправки уведомлений и управления удаленно.
Понимание, как заставить плату делать что угодно — от простого мигания светодиодом до умного дома.
Что нам необходимо для этого увлекательного процесса?
1. Выбираем ESP-модуль. Я рекомендую выбирать модуль с Wi-Fi — это позволит вашим устройствам подключаться к интернету и обмениваться данными без проводов. Цены актуальны на Озон. Лично для себя я выбрал ESP32 38-pins — он универсальный, недорогой и поддерживает HTTPS (что необходимо для работы с Telegram). Модули ESP8266 тоже отлично подойдут для начала — они работают по HTTP, но это не проблема для сервисов вроде ntfy. Да, для Telegram придётся городить шлюз (HTTP -> HTTPS ), но если он вам не нужен — ESP8266 будет отличным выбором.

2. Обязательные компоненты
!ВАЖНО! Кабель с возможностью передачи данных, а не только зарядки — посмотрите у себя, обычно кабель от зарядки для последних моделей телефона подходит:
USB/micro-USB — для ESP8266 (120 руб)
USB/Type-C — для ESP32 (119 руб)
Провода-перемычки DuPont (129 руб) — возьмите комплект, не помешает
3. Программная часть.
Компьютер с Windows 10 — на ней покажу процесс.
-
Портативные программы (всё в одной папке, скачаем позже, когда начнем работать):
esptool.exe — для прошивки
putty.exe — для общения с платой
micropython-прошивка.bin — сама прошивка MicroPython
Важно знать:
Для Windows — могут потребоваться драйвера для установки связи с модулем (скачиваются за пару минут, подробный процесс покажу ниже).
Для Linux — драйверы уже в системе, работают из коробки.
Подключаем модуль к компьютеру — учим их "разговаривать"

Логика процесса.
Представьте, что ваш компьютер и ESP-модуль — люди из разных стран. Компьютер говорит на языке USB, а модуль — на языке UART (последовательный порт). Чтобы они поняли друг друга, нужен "переводчик" — это специальная микросхема (чип) на плате модуля ESP, а драйвер этой специальной микросхемы (чипа) установлен в у вас на компьютере и через COM-порт настраивает связь между Windows и конкретной микросхемой (чипом)-"переводчиком".
Что такое COM-порт и почему он важ��н?
COM-порт — это виртуальный "канал связи", созданный драйвером, у которого есть номера (COM3, COM9 и т.д.). Когда вы подключаете модуль ESP, система в Диспетчере устройств говорит: "Я вижу новое устройство, даю ему через драйвер канал для связи и общения — например, COM10".

Все ваши программы (Putty, esptool) будут обращаться к модулю ESP через этот номер COM-порта. Если драйвер не установлен, то система скажет: «вижу Другое устройство/!!!»

Если, кратко, драйвер обеспечивает общение Windows с конкретной микросхемой - переводчиком модуля ESP, по средствам COM-порта, который, в свою очередь, является "телефонной линией" для их общения.

Попробую объяснить этот процесс с помощью еще одной аналогии.
Представьте, что вы купили умную теплицу (ваш ESP-модуль) и установили её во дворе. В ней есть датчики температуры, влажности, автоматический полив — всё самое современное. Но здесь есть важный нюанс, который мы выполним ниже: нужно установить базовую операционную систему (прошить MicroPython) — как если бы вы настроили мозги теплицы, чтобы она вообще понимала, что такое "полив" или "измерение температуры".
Чтобы управлять этой теплицей из дома, вам нужно:
Обратиться к производителю теплицы (официальный сайт с драйверами) за инструкциями.
Получить панель управления (установить драйвер), которая понимает команды для теплицы.
Проложить кабель связи (настроить COM-порт) между домом и теплицей.
Как это работает?
Вы готовите для теплицы инструкции в виде файла (пишете код в Python - «полить растения», «включить подсветку», «сообщить мне про обстановку» и т.п.).
Панель управления (драйвер) переводит инструкцию в сигналы (драйвер конвертирует данные).
Сигналы идут по кабелю (COM-порт передает данные).
Теплица выполняет команду (ESP-модуль работает).
Если все устраивает, вы загружаете инструкцию (файл) в теплицу, отключаетесь от СОМ порта и она становиться «умной».
Почему это важно? Без панели управления (драйвера) вы не можете протестировать и вставить ей «мозги». Без кабеля связи (COM-порта) команды просто не дойдут. COM-порт нужен только для загрузки «мозгов» — после настройки теплица работает автономно.
Теперь вернемся к технической части. Чтобы наш "дом" (компьютер) мог общаться с "теплицей" (модулем), нужно определить, какой именно "переводчик" нам нужен:
Тип модуля |
Микросхема-"переводчик" |
Нужный драйвер |
Как выглядит в системе |
Большинство ESP8266 (WEMOS D1, китайские NodeMCU) |
CH340 |
CH341SER |
USB-Serial CH340 (COMх) |
Некоторые NodeMCU |
FT232 |
FTDI |
USB Serial Port (COMх) |
Оригинальные платы, многие ESP32 |
CP2102/CP2104 |
CP210x (CH340 — для бюджетных китайских версий) |
CP210x USB to UART (COMх) |
Где найти и скачать драйверы?
Рекомендую официальные источники:
*Если программа работает с железом (драйверы, COM-порты, прошивка) — запускай от имени администратора (Правой кнопкой → "Запуск от имени администратора").
1. Для микросхем CH340/CH341:
Официальный сайт производителя WCH:
Скачиваем в Загрузки zip файл CH341SER.ZIP
Правой кнопкой мыши "Извлечь все..." извлекаем в загрузки
Открываем разархивированную папку CH341SER
Выбираем SETUP.EXE — правой кнопкой мыши Запуск от имени администратора**
Разрешаем установку
В открывшемся окне нажимаем INSTALL
Ждем успешной установки (95% случаях успешна)
Перезагружаете компьютер (важно!)




2. Для микросхем CP210x (Silicon Labs):
Официальный сайт: https://www.silabs.com/software-and-tools/usb-to-uart-bridge-vcp-drivers?tab=downloads

Заходите на сайт
Нажимаем CP210x VCP Windows v6.7.6
Скачиваем zip файл CP210x_VCP_Windows.zip
Распаковываем
В зависимости от вашей системы выбираем CP210xVCPInstaller_x64.exe или CP210xVCPInstaller_x86.exe (Если у вас 64-битная Windows → качайте x64 версию, если у вас 32-битная Windows → качайте x86 версию)
Правой кнопкой мыши Запуск от имени администратора
Разрешаем установку
Следуем правилам установки

Почему CP210x VCP Windows v6.7.6 - VCP (Virtual COM Port) — нужен для создания виртуального COM-порта, самая свежая стабильная версия, универсальный драйвер.
Альтернативно можно взять "CP210x Universal Windows Driver v11.4.0" - он новее, но VCP версия проверена временем и точно будет работать. Если v6.7.6 не сработает, тогда попробуйте Universal Driver v11.4.0 - он более современный.
3. Для микросхем FTDI:
Официальный сайт: https://www.ftdichip.com/FTDrivers.htm → VCP Drivers → версию для Windows.

Нам нужен Windows (Universal). Для 64-битной Windows: 2.12.36.20U (x64) для 32-битной Windows: 2.12.36.20U (x86).
*Windows (Desktop) версия тоже подойдет, но Universal лучше совместима с современными системами.

Скачиваем CDM-v2.12.36.20-Universal-Driver-for-x64-WHQL-Certified.zip
Распаковываем архив в отдел��ную папку
Откройте Диспетчер устройств
Найдите ваше устройство (CP210x или "Неизвестное устройство")
Правой кнопкой мыши → Обновить драйвер → "Выполнить поиск на этом компьютере"
Укажите путь к распакованной папке Нажмите "Далее" — система установит драйвер (здесь .inf файлы — это файлы установки драйвера система сама найдет нужный файл в указанной папке)
Если не проходит, то попробуйте вариант "Выбрать драйвер из списка уже установленных драйверов" → "Установить с диска" → укажите любой .inf файл из папки x64/ x86

КОНТРОЛЬНАЯ ТОЧКА: ПРОВЕРЯЕМ СВЯЗЬ
Прежде чем двигаться дальше, давайте убедимся, что наш "канал связи" работает.
Подключите ваш ESP-модуль к компьютеру USB-кабелем.
Откройте «Диспетчер устройств» (щелкните правой кнопкой по кнопке «Пуск» → выберите «Диспетчер устройств»).
Разверните раздел «Порты (COM и LPT)».
УРА!!!: Видете там запись с вашим устройством, например, «USB-SERIAL CH340 (COMх)» или «Silicon Labs CP210x USB to UART Bridge (COMх)».

!!! Если видно "Другие устройства": Значит, драйвер не встал. Вернитесь на два шага назад и попробуйте установить его снова, обязательно от имени администратора и с перез��грузкой компьютера после установки.

Запомните или запишите номер вашего COM-порта (COM3, COM5 и т.д.) — он нам понадобится буквально через секунду.
НУ ЧТО, ПОЛДЕЛА СДЕЛАНО!
Мы проделали, возможно, самую нудную, но критически важную часть работы. Мы нашли общий язык с железом, и теперь компьютер видит нашу плату как полноценного собеседника.
Что видит мой ПК:

Самое сложное позади. Драйверы установлены, COM-порт определился.
В следующем разделе мы, наконец-то, скачаем все необходимые программы (и все они будут без установок!) и за несколько минут превратим нашу "заготовку" в полноценное, умное устройство, понимающее команды на языке Python.
Скачиваем и готовим портативный арсенал
Если провести аналогию с теплицей, мы только что проложили кабель и установили панель управления. Сама теплица пока пуста и не умеет ничего делать. Самое время вставить ей «мозги» — то есть, прошить MicroPython!
Мы не будем ничего устанавливать. Все наши инструменты — это 'исполняемые файлы', которые работают прямо из папки. Скачал, положил в нужное место — и забыл.
В этом разделе мы скачаем и подготовим три ключевых инструмента:
«Прошивальщик-нейрохирург» (esptool) — чтобы «вставить мозги».
«Терминал» (Putty) — чтобы «давать команды».
«Прошивка» (MicroPython firmware) — те самые «мозги» на MicroPython.
И всё это — без единой установки в систему, по-прежнему следуя нашему правилу «Скачал → Запустил → Работает».
Создаем нашу базу — папку ESPtools
Прежде чем скачивать программы, создадим на Рабочем столе или в другом удобном для вас месте специальную папку, которая станет нашим главным командным центром.
Найдите свободное место на Рабочем столе или в другом удобном для вас месте.
Щелкните правой кнопкой мыши → выберите «Создать» → «Папку».
Дайте ей понятное имя, например, ESPtools.
Например мой путь к папке C:\Users\Pro\Desktop\ ESPtools
Будем соблюдать порядок - все файлы для проекта будут в одном месте, мы будем работать строго из этой папки, не засоряя систему, и не нужно будет искать разбросанные по «Загрузкам» файлы.
Скачиваем инструменты.
«Прошивальщик» — Esptool - проходим по ссылке: https://github.com/espressif/esptool/releases нам нужна предпоследняя версия, потому что обычно они более стабильны, по сравнению с последней (Latest), на октябрь 2025 я выбрал Version 4.10.0. В этой версии нам нужен раздел ASSETS (не путайте с Results of checking the release against common anti-virus SW).

Скачиваем архив esptool-v4.10.0-windows-amd64.zip, распаковываем в загрузках и забираем (копируем, вырезаем) только файл esptool.exe и перемещаем его в папку ESPtools

«Терминал» — Putty - наше окно для общения с модулем, через него мы будем вводить команды на Python и видеть ответы.
Проходим по ссылке: https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html , прокрутите до раздела "Alternative binary files", нам нужно для 64-битной Windows: putty.exe (64-bit) для 32-битной Windows: putty.exe (32-bit). Помещаем в папку ESPtools

«Мозги» — Прошивка MicroPython - операционная система для ESP-модуля, которая научит его понимать команды на Python.
https://micropython.org/download/ находим в MCU: свой модуль: для esp8266 он один, для esp32 выбираем esp32, esp32c2, esp32c3, esp32c6, esp32s2, esp32s3 взависимости от вашего модуля.

Как определить точную модель ESP32?
По надписям на плате или в описании товара, который вы покупаете:
ESP32 DevKitC V4 - обычно синяя или черная плата, надпись "ESP32 DEVKITC", обычно 30 или 36 pin
ESP32-WROOM-32 - черная экранированная сборка в центре платы.
ESP32-S3 - обычно указывается явно "ESP32-S3", часто 38-42 pin.
ESP32-C3 - компактные платы, часто с USB-C, компактные 18-24 pin.
Через esptool (до прошивки) из вашей папки ESPtools:
C:\Users\Pro\Desktop\ ESPtools\ esptool.exe --port COM14(укажите свой порт) chip_id
Примеры выводов:
Chip is ESP32-D0WDQ6 - обычный ESP32
Chip is ESP32-S3 - ESP32-S3
Chip is ESP32-C3 - ESP32-C3
По результату подобрать прошивку
ESP32 → ESP32_GENERIC-*.bin
ESP32-S3 → ESP32_GENERIC_S3-*.bin
ESP32-C3 → ESP32_GENERIC_C3-*.bin
Нажимаем на выбранную модель микроконтроллера увидим картинку с микроконтроллером (сделаю на примере esp8266).

Нажимаем и попадаем на страницу этой модели, ищем Firmware и качаем не (latest), а предпоследнюю версию или чуть ниже, они более стабильны, качаем файл с расширением .bin

Должен скачаться следующий файл: ESP8266_GENERIC-20250809-v1.26.0.bin
Для других моделей, которые рассматриваем в статье:
ESP32 38-pins - ESP32_GENERIC-20250415-v1.25.0.bin
ESP32-S3-DevKitC-1 - ESP32_GENERIC_S3-20250809-v1.26.0.bin
Или выберите прошивку для своей модели.
Переносим этот файл в папку ESPtools.
Что должно получиться?

Если чего-то не хватает — вернитесь и скачайте отсутствующий файл. Не двигаемся дальше, пока наш портативный арсенал не будет полностью укомплектован!
Всё готово! Инструменты на месте, «мозги» в руках. В следующем разделе мы проведём прошивку MicroPython!
Прошиваем MicroPython — «вставляем мозги».
Что нам понадобится перед началом?
- ESP-модуль, подключенный к компьютеру через USB-кабель (для передачи данных).
- Папка ESPtools с тремя файлами.
- Номер COM-порта вашего модуля (например, COM10) - Откройте Диспетчер устройств - раздел «Порты (COM и LPT)» - запишите номер COM-порта.
Очищаем память модуля:
Почему это важно?
На модуле могла остаться прошивка от производителя, тестовые программы или просто "мусор". Чтобы MicroPython лег чисто и работал стабильно — нужно полностью очистить флеш-память.
ВНИМАНИЕ! Эта команда полностью удалит все, что было на модуле ранее. Если на нем уже была какая-то прошивка, она будет стерта.
Как выполнить очистку?
Откройте командную строку в папке ESPtools (нажмите на путь в проводнике - Введите cmd (английская раскладка) и нажмите Enter) появиться терминал

В командной строке прописываем
Для ESP8266:
esptool.exe --chip esp8266 --port COM11(не забываем указать свой port COM) erase_flash
Для ESP32:
esptool.exe --chip esp32 --port COM11(не забываем указать свой port COM) erase_flash
Переводим на человеческий - нейрохирург в чипе на модуле ESP через 11 порт очисти память микроконтроллера - нажимаем Enter.
Пример из командной строки:
C:\Users\Pro\Desktop\ESPtools>esptool.exe --chip esp32 --port COM11(укажите свой порт) erase_flash
Должны увидеть результат

Если не сработало и команда «зависла» в ожидании:
- быстро нажмите и отпустите кнопку RST на модуле процесс должен продолжиться
- можно попробовать без указания чипа (только с портом), так как esptool может автоматически определить чип:
esptool.exe --port COM11(укажите свой порт) erase_flash
Современные версии esptool умеют автоматически переводить модуль в режим прошивки через сигналы RTS/DTR. Но если это не сработает — думаю, что кнопка RST выручит.
Подготовка и прошивка модуля ESP8266/ ESP32
Ключевой момент: название файла прошивки должно точно совпадать с тем, что вы скачали с сайта MicroPython!
Знайте, что неправильная прошивка не сломает модуль, его всегда можно прошить заново, но все же проконтролируй себя перед прошивкой:
- Определили тип модуля (ESP8266/ESP32)
- Скачали правильную прошивку
- Подготовили правильную команду
- Проверили COM-порт
- Готовы нажать RST при необходимости
Откройте папку ESPtools и проверьте название файла прошивки:
Для ESP8266: ESP8266_GENERIC-20250809-v1.26.0.bin
Для ESP32: ESP32_GENERIC-20250415-v1.25.0.bin (или другой, который вы скачали)
Если вы вышли из терминала, то повторите действия - в папке ESPtools (нажмите на путь в проводнике - Введите cmd (английская раскладка) и нажмите Enter) появиться терминал.
В терминале вы должны находиться по пути нахождения вашей папки: C:\Users\Pro\Desktop\ESPtools>
Команда:
Для ESP8266:
esptool.exe --chip esp8266 --port COM14 (укажите свой порт) --baud 460800 write_flash --flash_mode dio --flash_size 4MB 0x0 ESP8266_GENERIC-20250809-v1.26.0.bin (укажите свой файл прошивки)
Для ESP32:
esptool.exe --chip esp32 --port COM11 --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-20250415-v1.25.0.bin
обратите внимание, что для разных чипов разные команды, ниже дана таблица с пояснениями для ознакомления
Скрытый текст
Параметр |
ESP8266 |
ESP32 |
Чип |
--chip esp8266 |
--chip esp32 |
Адрес прошивки |
0x0 |
0x1000 или -z 0x1000 |
Режим флеша |
--flash_mode dio |
часто не требуется, но если прошивка не удается, можно попробовать указать эти параметры явно (например, для ESP32 часто используется --flash_mode qio или dio |
Размер флеша |
--flash_size 4MB |
часто не требуется, опять же, если прошивка не удается, то указываем --flash_size 4MB |
Ключ -z |
Не используется |
-z 0x1000 (автосмещение). Ключ -z автоматически устанавливает правильное смещение и размер прошивки, поэтому он удобен |
Почему такие различия?
ESP8266: Более "простая" архитектура и требует явного указания параметров флеш-памяти, прошивка начинается с самого начала (0x0).
ESP32: Более "умная" архитектура и многие параметры определяются автоматически. Прошивка смещена из-за загрузчика (0x1000) а ключ -z автоматически рассчитывает смещение.
Что значит эта команда на примере esp8266: нейрохирург в мозги (чип) ESP8266 (--chip esp8266) через Порт: COM5(--port COM5) со скоростью: 460800 бит/с(--baud 460800) запиши прошивку (write_flash) в режиме флеша: DIO(--flash_mode dio) с размером памяти: 4MB(--flash_size 4MB), адрес возьми с самого начала(0x0) вот этот файл с мозгами ESP8266_GENERIC-20250809-v1.26.0.bin
Должно получиться?
Для ESP8266:
C:\Users\Pro\Desktop\ESPtools>esptool.exe --chip esp8266 --port COM14(укажите свой порт) --baud 460800 write_flash --flash_mode dio --flash_size 4MB 0x0 ESP8266_GENERIC-20250809-v1.26.0.bin(укажите свой файл прошивки)
нажимаем Enter ждем загрузки

Для ESP32:
C:\Users\Pro\Desktop\ESPtools> esptool.exe --chip esp32 --port COM11(укажите свой порт) --baud 460800 write_flash -z 0x1000 ESP32_GENERIC-20250415-v1.25.0.bin(укажите свой файл прошивки)
БРАВО! Ваш модуль теперь говорит на Python! Вы только что вправили ему "мозги"! Теперь, когда модуль прошит, давайте научимся с ним общаться.
Работа с PuTTY: настраиваем, вводим, управляем
Правильные настройки PuTTY для MicroPython
Критически важные параметры:
Настройка |
Значение |
Объяснение |
Connection type |
Serial |
Работа с последовательным портом |
Serial line |
COM14 (ваш порт!) |
Адрес "телефонной линии" к модулю |
Speed |
115200 |
Скорость общения (бит/сек) |
Data bits |
8 |
Стандартный размер данных |
Stop bits |
1 |
Сигнал конца передачи |
Parity |
None |
Без контроля четности |
Flow control |
None |
Важно: Xon/Xoff НЕ использовать!( Xon/Xoff предназначен для программного управления потоком данных между компьютерами ESP-модули не поддерживают этот протокол должным образом. None означает, что управление потоком отключено — что и нужно для простой последовательной связи) |
Переходим в нашу папку ESPtools, дважды кликнем putty.exe устанавливаем параметры нажимаем Open:


Если увидите пустой экран терминала.

Нажимаем кнопку Reset на модуле ESP или нажать Enter, чтобы увидеть приглашение >>>

Дополнительные настройки в категории Terminal:

Local echo: Force on - видим что печатаем
Local line editing: Force on - правим команды стрелками
Особенность настройки Local echo = Force on
При этой настройке вы будете видеть двойной вывод команд:
>>> print("Hello ESP")
print("Hello ESP")
Hello ESP
>>>
Это нормально! Первая строка - эхо от PuTTY, вторая - результат выполнения.
Если это мешает остаемся на Auto в Local echo и Local line editing, редко, но бывает, что в режиме Auto могут не работать стрелки для редактирования.
>>> print("Hello ESP")
Hello ESP
>>>
Как сохранить настройки, чтобы после выхода из терминала Putty не заполнять их снова:

В графе Saved Session даем имя сессии например ESP8266 нажимаем Save, сохраненные параметры для сессии ESP8266 будут сохранены ниже под Default Settings, при повторном открытии выбираем ESP8266 далее Load – параметры загрузятся сами, далее Open (не забываем кнопку Reset на модуле ESP).
Настройки в Putty для ESP32 сохраняем те же самые и если вы их прошили как указанно выше то увидите:
MicroPython v1.25.0 on 2025-04-15; Generic ESP32 module with ESP32
Type "help()" for more information.
>>> print("Hello ESP32")
Hello ESP32
>>>
Если возникают различные ошибки, ниже указаны способы их решения:
PuTTY не реагирует на команды:
-Проверить Flow control = None
-Нажать Enter для появления >>>
-Проверить раскладку клавиатуры (должна быть английская)
Странные символы при вводе:
-Установить Local line editing = Force on
-Не использовать Ctrl+V - только правая кнопка мыши
Пустой экран после подключения:
-Нажать RST на модуле
-Проверить COM-порт в диспетчере устройств
-Переподключить USB-кабель
Особенности работы с кодом в терминале PuTTY
Перед началом работы с кодом рекомендую перейти в английскую раскладку.
Важное примечание: Русский язык в PuTTY, к сожалению, иногда отказывается корректно отображать русские символы, даже при правильных настройках. Это известная проблема.
Что делать?
Используйте английский язык для команд и вывода в терминал
Русские комментарии оставляйте в коде - они будут читаться при редактировании файлов
При загрузке файлов на модуль можно смело использовать русский текст - он сохранится корректно
Ввод команд и кода
Одиночные команды - просто введите команду и нажмите Enter. Пример:
>>> print("Hello, World!") #- ввели команду нажали Enter
Hello, World! #- результат
Или
Копируем: print("test")
В PuTTY: нажимаем правую кнопку мыши далее Enter
: >>> print("test")
test
Блочный ввод через exec(): копируем блок и правой кнопкой мыши вставляем терминал
exec("""
from machine import Pin
import time
led = Pin(2, Pin.OUT)
while True:
led.on()
time.sleep(1)
led.off()
time.sleep(1)
""")
Код начнет выполняться сразу (светодиод начнет мигать) и чтобы остановить его, нужно нажать Ctrl+C.
Возможные ошибки:
Не вставляется многострочный код:
- Использовать exec() с тройными кавычками (используем тройные кавычки в exec() для того, чтобы охватить многострочный код без необходимости экранирования кавычек внутри кода)
- Вставлять по одной строке
- Проверить синтаксис отступов
От слов к делу! "Hello, ESP!" - Оживляем наш модуль.
Мы проделали большой путь: прошили MicroPython, настроили PuTTY, научились отправлять команды. Давайте научим наш ESP-модуль взаимодействовать с физическим миром.
Давайте оживим наш модуль, заставив его мигать встроенным светодиодом — простой и наглядный способ убедиться, что всё работает правильно.
У большинства модулей ESP есть встроенный светодиод, который можно программно включать и выключать. Однако, в зависимости от модели, он может быть подключен к разным пинам и иметь разную логику управления (например, для включения может потребоваться подать 0 или 1).
Таблица встроенных светодиодов для популярных модулей:
Скрытый текст
Модуль |
Пин светодиода |
Логика |
Примечание |
NodeMCU ESP8266 |
GPIO2 (D4) |
Инверсная 0 = ВКЛ, 1 = ВЫКЛ |
Синий светодиод рядом с USB. |
Wemos D1 ESP8266 |
GPIO2 (D4) |
Инверсная 0 = ВКЛ, 1 = ВЫКЛ |
Синий, на краю платы. Аналогично NodeMCU |
ESP8266 ESP-12 |
GPIO2 |
Инверсная 0 = ВКЛ, 1 = ВЫКЛ |
"Голые" модули без платы разработки |
ESP32 DevKitC V1 |
GPIO2 |
Обычная |
Синий, около кнопки BOOT. Более логичное поведение |
ESP32 DevKitC V4 |
GPIO2 |
Обычная |
Современные версии обычно с обычной логикой |
ESP32 DOIT |
GPIO2 |
Обычная |
Синий, может быть GPIO16 на некоторых версиях |
ESP32-S3 |
GPIO38 |
Обычная |
Зеленый, рядом с USB-C |
ESP32 TTGO |
GPIO16 |
Инверсная 0 = ВКЛ, 1 = ВЫКЛ |
Белый, на обратной стороне |
Важно: На некоторых модулях светодиод может быть подключен к другому пину.
Давайте спросим у самого модуля. Копируем код и вставляем в терминал Putty правой кнопкой мыши:
exec("""
import sys
import machine
# Определяем платформу (ESP8266, ESP32, ESP32-S3 и т.д.)
platform = sys.platform.lower()
# Сопоставляем платформу с конкретной моделью и ее особенностями
if 'esp8266' in platform:
model = "ESP8266"
led_pin = 2 # GPIO2 - стандартный пин светодиода для ESP8266
logic = "inverted" # 0=включено, 1=выключено (инверсная логика)
elif 'esp32-s3' in platform:
model = "ESP32-S3"
led_pin = 38 # GPIO38 - пин светодиода для ESP32-S3
logic = "normal" # 1=включено, 0=выключено (обычная логика)
elif 'esp32' in platform:
model = "ESP32"
led_pin = 2 # GPIO2 - стандартный пин светодиода для ESP32
logic = "normal" # 1=включено, 0=выключено (обычная логика)
else:
model = "Unknown" # Если модель не распознана
led_pin = 2 # Пробуем стандартный пин
logic = "unknown" # Логика неизвестна
# Выводим отчет с полученной информацией
print("=" * 30)
print("ESP Module Info:")
print("=" * 30)
print("Model:", model) # Модель вашего модуля
print("Platform:", sys.platform) # Техническое название платформы
print("CPU Frequency:", machine.freq()) # Частота процессора в Герцах
print("LED Pin: GPIO" + str(led_pin)) # Номер пина для светодиода
print("LED Logic:", logic) # Тип логики управления светодиодом
print("=" * 30)
""")
*Комментарии после символа # не выполняются как код - они просто помогают понять, что делает каждая строка. Это как заметки на полях в книге!

CPU Frequency - частота процессора (чем выше, тем быстрее работает код)
LED Pin - номер контакта для встроенного светодиода
LED Logic - тип логики управления светодиодом (важно для правильного кода!)
Отлично! Теперь мы знаем «имя» и «характер» нашего модуля.
Обратите внимание на полученные данные:
Модель ESP32:
Пин светодиода: GPIO2 (в коде выглядит так machine.Pin(2, machine.Pin.OUT))
Логика: normal (1 = включено, 0 = выключено) или inverted (0 = включено, 1 = выключено)
Эта информация — как инструкция к нашему модулю. Давайте проверим её в деле и помигаем светодиодом! Копируем код и вставляем в терминал Putty правой кнопкой мыши:
exec("""
import machine
import time
led = machine.Pin(2, machine.Pin.OUT)
for i in range(10):
led.on() # ВКЛ - работает на ESP8266 и ESP32!
time.sleep(0.5)
led.off() # ВЫКЛ - работает на ESP8266 и ESP32!
time.sleep(0.5)
print("Blink", i+1)
print("Done!")
""")
Модуль ESP начнет мигать 10 раз, в терминале будет отчет миганий Blink 1 …….10
Но настоящая сила всех указанных в начале статьи модулей ESP - в их возможности подключаться к интернету!
Ищем вход в виртуальный мир – тестируем Wi-Fi подключение. Копируем код и вставляем в терминал Putty правой кнопкой мыши:
exec("""
import network # Встроенный модуль для работы с сетью
import time # Встроенный модуль для работы со временем
# Создаем объект для работы с Wi-Fi
wlan = network.WLAN(network.STA_IF)
wlan.active(True) # Включаем Wi-Fi
print("=" * 40)
print("Wi-Fi SCANNER TEST")
print("=" * 40)
print("Scanning for networks...")
# Сканируем доступные сети
networks = wlan.scan()
print(f"Found {len(networks)} networks:") # Выводим количество найденных сетей
print("-" * 40)
# Показываем найденные сети
for i, network_info in enumerate(networks):
ssid = network_info[0].decode('utf-8') # Название сети
signal_strength = network_info[3] # Сила сигнала
print(f"{i+1:2d}. {ssid:20s} Signal: {signal_strength} dBm")
print("=" * 40)
print("Wi-Fi test completed!")
print("If you see networks above - Wi-Fi is working!")
""")
Что произойдет после запуска:
Модуль просканирует эфир и найдет все Wi-Fi сети вокруг
Вы увидите список сетей с их силой сигнала
Если видите сети - Wi-Fi модуль работает исправно!
Результат:

Сила сигнала:
-30 до -50 dBm - Отличный сигнал
-50 до -60 dBm - Хороший сигнал
-60 до -70 dBm - Средний сигнал
слабее -70 dBm - Слабый сигнал
Я искренне уверен, что эта статья помогла вам и у вас получилось сделать следующее:
Вы научились:
Подготавливать ESP-модуль к работе без установки программ
Прошивать MicroPython - превращать "железку" в умное устройство
Настраивать связь через PuTTY и понимать логику COM-портов
Определять характеристики вашего модуля (модель, пин светодиода, логику)
Создавать первые программы - управлять светодиодом на Python
Тестировать Wi-Fi - проверять беспроводные возможности модуля
Ваш ESP модуль теперь не просто плата, а полноценный программируемый девайс, который:
Понимает команды на языке Python
Может управлять светом, реле, моторами и другими устройствами
Видит Wi-Fi сети вокруг и готов к подключению
Имеет "мозги" для самостоятельной работы по вашим алгорит��ам
О чем бы я хотел ознакомить вас в следующих статьях:
"ESP8266 и уведомления: Отправляем сигналы в Telegram без заморочек с HTTPS"
Научим ESP отправлять сообщения в Telegram
Реализуем мгновенные оповещения о событиях
Создадим свои каналы экстренных уведомлений
"Программирование ESP «с дивана»: WebREPL"
Настроим удаленный доступ к ESP по Wi-Fi
Будем загружать программы и править код через браузер
Забудем про провода - программируем из любой точки дома
"ESP32 + геркон = система мониторинга воды в дренажном колодце за 1300₽, но можно и дешевле"
Создадим систему мониторинга уровня воды с герконом в дренажном колодце
Научим ESP отправлять сигналы о состоянии воды в Телеграмм
Соберем полноценную систему защиты от переполнения колодца за копейки
Увидимся в следующей статье
LAutour
Судя по длиннющей статье ниже - это ирония, или издевательство?
randomsimplenumber
Сделать аналогичного размера статью про запуск Arduino Ide - значительно сложнее.