Модули 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

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
Извлекаем в загрузки
Выбираем SETUP.EXE
В открывшемся окне нажимаем 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

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

*Windows (Desktop) версия тоже подойдет, но 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-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

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

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

Прошивка 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

Нажимаем и попадаем на страницу этой модели, ищем Firmware и качаем не (latest), а предпоследнюю версию или чуть ниже, они более стабильны, качаем файл с расширением .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

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

 Для 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 настройки

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

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

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

Сила сигнала:

 

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

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

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