Модули ESP8266/ESP32  сгенерировано ИИ
Модули ESP8266/ESP32 сгенерировано ИИ

В моем арсенале уже несколько месяцев лежал 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 будет отличным выбором.

Таблица с моделями ESP8266/ESP32 Wi-Fi
Таблица с моделями ESP8266/ESP32 Wi-Fi

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% случаях успешна)

  • Перезагружаете компьютер (важно!)

Официальный сайт производителя WCH
Официальный сайт производителя WCH
Извлекаем в загрузки
Извлекаем в загрузки
Выбираем SETUP.EXE
Выбираем SETUP.EXE
В открывшемся окне нажимаем INSTALL
В открывшемся окне нажимаем INSTALL

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.

Официальный сайт: https://www.ftdichip
Официальный сайт: https://www.ftdichip

Нам нужен Windows (Universal).  Для 64-битной Windows: 2.12.36.20U (x64) для 32-битной Windows: 2.12.36.20U (x86).

*Windows (Desktop) версия тоже подойдет, но Universal лучше совместима с современными системами.

Windows (Universal)
Windows (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
Esptool

Скачиваем архив 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

Putty
Putty

«Мозги» — Прошивка MicroPython - операционная система для ESP-модуля, которая научит его понимать команды на Python.

https://micropython.org/download/  находим в MCU: свой модуль: для esp8266 он один, для esp32  выбираем esp32, esp32c2, esp32c3, esp32c6, esp32s2, esp32s3 взависимости от вашего модуля.

Прошивка MicroPython
Прошивка MicroPython

Как определить точную модель 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).

esp8266
esp8266

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

качаем файл с расширением .bin
качаем файл с расширением .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) появиться терминал

Откройте командную строку в папке ESPtools
Откройте командную строку в папке ESPtools

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

 Для 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:

putty настройки
putty настройки
putty настройки
putty настройки

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

пустой экран терминала
пустой экран терминала

Нажимаем кнопку 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

Обычная
1 = ВКЛ, 0 = ВЫКЛ

Синий, около кнопки BOOT. Более логичное поведение

ESP32 DevKitC V4

GPIO2

Обычная
1 = ВКЛ, 0 = ВЫКЛ

Современные версии обычно с обычной логикой

ESP32 DOIT

GPIO2

Обычная
1 = ВКЛ, 0 = ВЫКЛ

Синий, может быть GPIO16 на некоторых версиях

ESP32-S3

GPIO38

Обычная
1 = ВКЛ, 0 = ВЫКЛ

Зеленый, рядом с 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 модуль работает исправно!

 Результат:

 сети - 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 отправлять сигналы о состоянии воды в Телеграмм

Соберем полноценную систему защиты от переполнения колодца за копейки

 Увидимся в следующей статье

Комментарии (5)


  1. LAutour
    25.10.2025 10:39

     я из тех, кому не нравится устанавливать лишний софт на свой ПК — эти гигабайтные IDE-редакторы, регистрации, танцы с бубном вокруг драйверов... Не мое. Действую по принципу: «Скачал → запустил → работает». Только скачанные файлы, которые работают без установки на ПК и не оставляют следов в системе.

    Судя по длиннющей статье ниже - это ирония, или издевательство?


    1. randomsimplenumber
      25.10.2025 10:39

      Сделать аналогичного размера статью про запуск Arduino Ide - значительно сложнее.


  1. Robastik
    25.10.2025 10:39

    Место в раю обеспечено


  1. kotov666
    25.10.2025 10:39

    Спасибо за душ, помылся, воды хватило.


  1. Z55
    25.10.2025 10:39

    Статья могла быть хорошей, но не нашёл в ней информацию о том, как включить компьютер, а про монитор вообще ни слова. Дизлайк.