Сгенерирована ИИ
Сгенерирована ИИ

В прошлой статье мы превращали безмолвную плату в говорящее на Python устройство. Теперь научим его не просто выполнять команды, а самостоятельно работать по заданным инструкциям (файлами). Мы перейдем к созданию автономных программ, которые будут выполняться на устройстве.

Что изменится в этой статье?

 Раньше: Мы работали через PuTTY, вводя команды вручную, это как писать мелом на доске— стерли и забыли.

Теперь: Попрактикуемся создавать и загружать постоянные инструкции в виде файлов, которые устройство будет выполнять автономно.

Для этого попробуем два инструмента:

 uPyLoader — файловый менеджер и редактор в одном флаконе, как блокнот с закладками: и файлы видно, и поправить можно.

 WebREPL — удаленное управление по Wi-Fi без проводов, как пульт управления по воздуху: управляй устройством, изменяй, корректируй и добавляй инструкции (файлы), вообщем, проводи отладку без подключения кабеля.

Резонный вопрос: «Зачем нужен uPyLoader, если в первой статье был PuTTY

Скрытый текст

Оба инструмента — не конкуренты, а соседи по мастерской, каждый хорош для своего дела и уместны в конкретных случаях.

Кому-то хватит PuTTY для простых задач, тестов, быстрой проверке идей, а кто-то оценит расширенные  возможности uPyLoader, который подходит для более  сложных проектов, у него есть файловый менеджер, работающий с несколькими файлами, имеет в своем арсенале, по мимо терминала, встроенный редактор кода и может подключаться к другим, используемых вами редакторам (Pycharm, VSC и д.р. ), вообщем, выбираем под свои задачи.

Продолжаем в том же духе, никаких тяжелых софтов, наши инструменты не должны быть  сложными, предлагаю работать с «железом» (модулями ESP), а не заниматься настройкой программного обеспечения (пока настроил, уже и забыл как работать). Будем использовать инструменты, которые не заставляют думать о самом инструменте, а позволяют сосредоточится на проектах , а не на освоении ПО. Вообщем, все что нужно для "воскресного электронщика".

uPyLoader - ска��ал .exe → запустил → работаешь. Весь инструмент в одном файле.

WebREPL - открыл браузер → ввел IP → программируешь. Нужен только Wi-Fi и пароль.

Что еще будет в этой статье?

 Мы разберем:

 - Как работать с файлами на устройстве с помощью uPyLoader.

- Как настроить беспроводное управление через WebREPL.

- Как настроить Wi-Fi в двух режимах: точка доступа и клиент.

 Только практические шаги с объяснением, которые вы сможете повторить.

 Что нам нужно?

В статье, моим «подопытным» будет:

ESP32 38-pins — наш будущий «извещатель наполненности колодца».

Первым делом разберёмся с uPyLoader — нашим основным инструментом для работы с файлами.

uPyLoader — файловый менеджер и редактор в одном флаконе

Что мы сделаем в этой части:

 - Скачаем и настроим uPyLoader.

- Научимся подключаться к нашему ESP-модулю.

- Разберёмся, как загружать и редактировать файлы.

- Освоим работу со встроенным редактором кода.

Напомню путь, который мы уже прошли:

Если вы только что прошили MicroPython по первой статье — ваш модуль уже готов к работе. Если нет — вернитесь к прошлой статье и выполните прошивку.

Давайте начнём с самого простого — скачивания uPyLoader. Переходим по ссылке...

https://github.com/BetaRavener/uPyLoader?tab=readme-ov-file

Шаг 1: Скачиваем и запускаем uPyLoader

В разделе Setup переходим в загрузки – находим Download latest release нажимаем – ищем последнюю версию (у меня 0.1.4 сентябрь 2018 г) – в Assets скачиваем файл uPyLoader-win.exe и переносим его в ранее созданную папку ESPtools (из первой статьи). Да, uPyLoader не обновляется с 2018 года, но он остается надежным и простым инструментом, который отлично справляется со своими задачами. Для тех, кто ищет более современные решения, есть альтернативы, но для быстрого старта uPyLoader — отличный выбор.

Скачиваем uPyLoader
Скачиваем uPyLoader

Запускаем uPyLoader.exe (рекомендуется от имени администратора)

 Шаг 2: Первое подключение

 Подключаем ESP-модуль к компьютеру через USB

 - Запускаем uPyLoader

- Выбираем ваш правильный COM-п��рт (тот же, что использовали в PuTTY)

- Ставим скорость 115200

- Нажимаем Connect

Настройки uPyLoader
Настройки uPyLoader

Шаг 3: Критически важный шаг — Инициализация

 При первом подключении видим сообщение о необходимости инициализации:

 Переходим в меню FileInit transfer files

 uPyLoader автоматически загрузит на устройство служебные файлы:

 __upload.py — для загрузки файлов

__download.py — для скачивания

 Почему это важно: Без этих файлов передача данных невозможна!

Шаг 4: Обзор интерфейса — Ваша мастерская в одном окне.

 uPyLoader разделен на четыре основные области:

Левая панель — файлы на вашем компьютере - Local

Правая панель — файлы на ESP-модуле – Remote (MCU)

Терминал — открывается через View → Terminal

Редактор кода — открывается через View → Code Editor

 Шаг 5: Работа с файлами — Проще не бывает.

 Загрузка файлов из ПК на устройство:

 Перетаскиваем файл из левой панели в правую или используем кнопку Transfer.

Выполнение кода:

Выделяем файл .py на устройстве Remote (MCU).

Нажимаем кнопку Execute (смотрим реакцию модуля, а что бы посмотреть как исполнялся код переходим в терминал).

Результат Execute в терминале
Результат Execute в терминале

Или в терминале:

exec(open('filename.py').read())
Исполнение файла через терминал
Исполнение файла через терминал

Просмотр и редактирование:

 Двойной клик по файлу в окне Remote (MCU) открывает встроенный редактор.

Открываем встроенный редактор
Открываем встроенный редактор

Редактируем и сохраняем — файл сразу обновляется на модуле ESP.

Удаление файлов:

Выделяем файл на устройстве Remote (MCU).

Нажимаем Remove.

Варианты работы с файлом.

 Самый удобный способ:

 В uPyLoader откройте ViewCode Editor

В редакторе в поле MCU введите полное имя файла с расширением .py(main.py, test.py):

В нижнее окно скопируйте или напишите код, нажмите Save.

Создание файла в редакторе uPyLoader
Создание файла в редакторе uPyLoader

Переходим в основной интерфейс выделяем файл .py на устройстве Remote (MCU), нажимаем кнопку Execute, в терминале смотрим результат. Если файл не отразился нажмите List files – список обновиться.

Исполнение созданного файла
Исполнение созданного файла

Попробуйте с кодом ниже (создайте файл wifi_test.py – скопируйте в него код и исполните).

import network
import time

# Информация о Wi-Fi
wlan = network.WLAN(network.STA_IF)
print("=== Wi-Fi статус ===")
print("Включен:", wlan.active())
print("Подключен:", wlan.isconnected())

if wlan.isconnected():
    ip = wlan.ifconfig()[0]
    print("IP адрес:", ip)

# Сканирование сетей
print("\n=== Поиск сетей ===")
wlan.active(True)
networks = wlan.scan()

print(f"Найдено сетей: {len(networks)}")
for net in networks:
    name = net[0].decode('utf-8')
    signal = net[3]
    print(f"- {name}: {signal} dBm")

print("\nТест завершен!")

Еще вариант работы с файлом:

Откройте текстовый файл (txt), скопируйте код и вставьте в текстовый файл, переименуйте файл полностью test_wifi.py (обратите внимание на расширение после точки, вместо txt должно быть py), можете получить сообщение, что «После изменения расширения файл может быть не доступным, Хотите изменить расширение?»  нажимаем ДА. Сохраняем в нашей папке. Запускаем через uPyLoader.

Пакетная загрузка файлов:

 Можно загружать несколько файлов одновременно:

 Выделите несколько файлов в левой п��нели (Ctrl + клик).

Нажмите Transfer — все файлы загрузятся на устройство.

Или перетащите группу файлов из левой в правую панель.

Работа с терминалом — Знакомо и удобно.

Работа в терминале uPyLoader
Работа в терминале uPyLoader

Открываем ViewTerminal и получаем все возможности PuTTY, но в более удобном виде:

 Интерфейс терминала

 Терминал разделен на две основные зоны:

Верхняя область — вывод с устройства

Нижняя область — ввод команд

 Особенности работы с русским текстом (смотри картинку выше):

При непосредственном наборе команды в нижней области с использованием русского текста:

 print(“Привет, мой друг!”), то русский текст не отображается.

Если с использованием английских символов:

 print(“Hello? My friend!”), то отображение будет полностью.

Откроем файл для чтения:

 open("test.py").read(), то русский текст отобразиться в кодировке UTF-8.

 Исполним код в файле:

 exec(open("test.py").read()), то русский текст отобразиться как нам нужно.

 Поэтому для отладки используйте английский в терминале, а в файлах можете спокойно использовать русский текст.

Дополнительно по работе с терминалом:

Скрытый текст

Для многостраничного кода используйте режим вставки Ctrl+E → вставьте код → Send(Enter). Скопируйте команду и вставьте в терминал.

print("Ура! uPyLoader работает! Начинаем отсчет……")
for i in range(5):
  print(i)

Посмотреть файлы на устройстве и узнать частоту процессора. Скопируйте команду и вставьте в терминал.

import os
os.listdir()           
import machine
machine.freq()

Еще немного практических команд. Скопируйте команду и вставьте в терминал.

print("Ура! uPyLoader работает!")
from machine import Pin
led = Pin(2, Pin.OUT)
led.value(1)  # Включить светодиод

Небольшая шпаргалка по MicroPython в терминале:

help()

 Информация по встроенным  модулям:

 help('modules')

 Информация по конкретному модулю:

import network
help(network)

 Навигация по локальным папкам:

 FileNavigate — позволяет сменить корневую папку на компьютере. Особенно полезно, когда ваши проекты лежат в разных местах.

 Умный терминал с историей команд:

 Ctrl + ↑/↓ — листать историю предыдущих команд.

Shift + Enter — создать новую строку (удобно для многострочного ввода).

Самое главное это то, что  uPyLoader — наш основной инструмент для работы с файлами по кабелю, но по "воздуху" он тоже может. Теперь перейдем к  управлению устройством по воздуху, без проводов!

 Зачем это нужно?

 -Больше не нужно подключать кабель для каждой правки в коде

-Управляйте устройством из любой точки дома/офиса

-Идеально для отл��дки и мониторинга работающей системы

 Что мы будем использовать?

 -WebREPL — встроенный в MicroPython веб-интерфейс

-Ваш браузер — как терминал и файловый менеджер

-Wi-Fi подключение — никаких кабелей!

WebREPL — ваш беспроводной пульт управления

Что такое WebREPL?

WebREPL — это веб-сервер, встроенный в MicroPython, который позволяет управлять вашим ESP-устройством через браузер по Wi-Fi.

с WebREPL вы можете:

 - Отлаживать загруженный код прямо из браузера.

 - Загружать отредактированные файлы, удалять не нужные файлы на устройство.

 - Управлять GPIO (светодиоды, датчики, реле).

 - Проверять состояние и работоспособность модуля.

 - Выполнять команды Python.

И всё это — с любого устройства в сети Wi-Fi (ноутбука, телефона или сидя у своего стационарного ПК), вообщем без прямого подключения к модулю по проводам.

Как это выглядит и работает технически?

 ESP создает точку доступа Wi-Fi;

Запускает веб-сервер на порту 8266;

Вы подключаетесь к этой точке доступа с любого устройства;

Открываете браузер и получаете полный доступ к Python-консоли платы;

Работаете так же, как через USB-кабель, но без проводов!

В этой статье покажу настройку WebREPL и рассмотрим два способа подключения: через браузер и через uPyLoader.

А что такое REPL?

Скрытый текст

REPL — это интерактивная командная оболочка:

REPL — интерактивная командная оболочка
REPL — интерактивная командная оболочка

Read → Чтение вашей команды

Eval → Выполнение вашей команды на Python

Print → Показ результата

Loop → Возврат к ожиданию новой команды

Аналогия: Представьте умного переводчика, который, ждет вашу фразу → Переводит и выполняет → Показывает ответ → Снова ждет

Практическая часть: Настройка WebREPL

 Что мы сделаем?

Создадим точку доступа на ESP-устройстве.

Настроим автозапуск WebREPL при загрузке.

Создадим конфигурационные файлы.

Проверим подключение через браузер и uPyLoader.

Существует 2 Режима подключения Wi-Fi:

Режим точки доступа (AP_IF) -  ESP создает собственную Wi-Fi сеть и выступает в роли точки доступа. Другие устройства подключаются к нему напрямую

 Режим клиента (STA_IF) - ESP32 подключается к существующей Wi-Fi сети как клиентское устройство (аналогично смартфону или ноутбуку).

Подробно рассмотрим первый вариант - режим точки доступа (AP_IF), как наиболее простой, на мой взгляд, и надежный способ.

Второй вариант (режим клиента STA_IF) приведен ниже в качестве дополнительного материала для самостоятельного изучения.

 Создаем обязательные файлы на модуле (создавайте файлы в uPyLoader через редактор как рассказывал выше):

boot.py - выполняется при каждой загрузке устройства, здесь должна быть базовая настройка (Wi-Fi, WebREPL), без него WebREPL не запустится автоматически. В данном коде предусмотрена автоматическая перезагрузка на случай,  если не получается подключиться с первого раза. После того как загрузите файл нажмите на его исполнение Execute и посмотрите в Терминале его исполнение (бывает так, что загружаешь этот файл на модуль или создаешь через редактор, при этом не исполняешь его, не перезагружаешь устройство, а потом при подключении обрыв связи), вариант – поставьте галочку Issue reset, думаю выручит при забывчивости.

import network
import webrepl
import time
import machine

# Ждем запуска системы
time.sleep(1)

# Настраиваем точку доступа
ap = network.WLAN(network.AP_IF)
ap.active(True)
ap.config(
    essid='ESP32-WebREPL',
    password='12345678',
    authmode=3,  # WPA2
    channel=6,   # Фиксированный канал
    hidden=False,
    pm=0         # Отключаем энергосбережение
)

# Ждем стабилизации Wi-Fi и проверяем
time.sleep(3)

if ap.active():
    # Запускаем WebREPL
    webrepl.start()
    print("WebREPL готов!")
    print("Адрес: ws://192.168.4.1:8266") 
    print("Пароль: 1234")
else:
    print("Ошибка Wi-Fi, перезагрузка...")
    machine.reset()

webrepl_cfg.py - содержит настройки WebREPL (пароль), без него WebREPL может не запуститься или будет без пароля.

PASS = "1234"

После создания файлов на устройстве необходимо перезагрузить ESP (кнопка reset на устройстве) или в терминале:

import machine
machine.reset()

В терминале увидим результат:

Терминал после Reset
Терминал после Reset

ws://192.168.4.1:8266 - это не случайные цифры, а стандартные настройки:

 192.168.4.1 - IP-адрес, который ESP автоматически присваивает себе при создании точки доступа ("домашний адрес" вашего ESP в созданной им сети). Когда ESP создает Wi-Fi сеть, он становится "главным" в этой сети и автоматически берет адрес 192.168.4.1

 8266 - стандартный порт для WebREPL в MicroPython. Как "номер квартиры" в большом доме (IP-адресе)

 ws:// - протокол WebSocket для постоянного соединения и двустороннего обмена данными.

 Проверить свой IP можно командой в терминале:

import network
ap = network.WLAN(network.AP_IF)
print("My IP:", ap.ifconfig()[0])

Это ОБЯЗАТЕЛЬНЫЕ файлы для автоматической работы WebREPL.

 Вся логика работы вашей программы будет находиться в main.py - дополнительный файл для вашей программы, который работает ПАРАЛЛЕЛЬНО с WebREPL.

 Чтобы было понятней:

 boot.py - " Установка дистанционного управления в автомобиль "

webrepl_cfg.py = " Настройка частоты пульта "

main.py = "Сама поездка на автомобиле"

Если не планируете пользоваться дистанционным управлением - можете ездить и без него!

Процесс работы с каждым инструментом:

1. WebREPL: лучше работать в браузере Chrome, но можете попробовать и другие, по крайней мере Yandex сопротивлялся и не хотел.

Процесс подключения:

Откройте Chrome на компьютере/телефоне

Перейдите по адресу: http://micropython.org/webrepl/,   дождитесь чтобы загрузилась страница.

micropython webrepl

Только после этого подключитесь к Wi-Fi сети ESP32 введите пароль 12345678 и дождитесь подключения:

Введите адрес в левом верхнем углу адрес: ws://192.168.4.1:8266  нажмите Connect

Запросит пароль - введите: 1234 далее Enter увидите  интерактивную консоль, WebREPL connected.

Интерактивная консоль WebREPL
Интерактивная консоль WebREPL

Работа с файлами в WebREPL:

Работа с файлами в WebREPL
Работа с файлами в WebREPL

Загрузить файл из ПК  - "Send file" → "Send to device"

 Скачать файл → ввести имя например boot.py"Get from device". Файл загрузиться в загрузки и можете с ним работать. Этот файл из модуля не удаляется.

Скачать файл
Ск��чать файл

В терминале работаете через команды (основные опишу чуть ниже).

Работа в терминале
Работа в терминале

2. uPyLoader: Процесс работы

Подключитесь к Wi-Fi сети ESP32 введите пароль 12345678 и дождитесь подключения, открываем uPyLoader. В Connection выбираем  wifi устанавливаем IP  192.168.4.1 Port 8266 далее нажимаем  Connect появляется окно для пароля – вводим 1234

ОСОБЕННОСТЬ РАБОТЫ  uPyLoader  в режиме wifi такова, что файлы не отображаются в окне Remote(MCU) и работать с ними можно только в Терминале, но они действительно находятся на устройстве и видны через терминал. После перехода в Терминал, uPyLoader покажет какие файлы есть на вашем модуле.

Загруженные файлы в терминале uPyLoader 
Загруженные файлы в терминале uPyLoader 

Есть способ загружать файлы через uPyLoader по Wi-Fi с помощью Transfer из локальной папки (Local) в удаленное устройство (Remote MCU). Несмотря на то, что после перетаскивания или трансфера файл не отображается в правой панели, он физически копируется на модуль и доступен для работы через Терминал, а удаление файла будет происходить через Терминал.

Работа с файлами через терминал:

 Чтение файла print(open('boot.py').read())

Чтение файла
Чтение файла

Просмотр файлов

import os
print(os.listdir())

Удаление файла os.remove('old_file.py')

 Создание файла в терминале

Скрытый текст

Лучше создавать готовые файлы и загружать на устройство, способы ниже только для ознакомления или на крайний случай

# Создаем файл построчно
lines = [
    "# ВСТАВЬТЕ СКОПИРОВАННЫЙ КОД ЗДЕСЬ",
    "from machine import Pin", 
    "import time",
    "",
    "led = Pin(2, Pin.OUT)",
    "led.on()",
    'print("Файл создан успешно!")'
]

with open('my_file.py', 'w') as f:
    for line in lines:
        f.write(line + '\n')

print(" Файл создан!")
import os
print("Файл:", os.listdir())

Готовый шаблон

# ПРОСТО СКОПИРУЙТЕ И ВЫПОЛНИТЕ:
with open('my_file.py', 'w') as f:
    f.write('from machine import Pin\n')
    f.write('import time\n')
    f.write('\n')
    f.write('led = Pin(2, Pin.OUT)\n')
    f.write('led.on()\n')
    f.write('print("Файл создан!")\n')

print(" Файл my_file.py создан!")

С сохранением отступов через \n и пробелы

with open('my_file.py', 'w') as f:
    f.write('for i in range(5):\n')
    f.write('    print(i)\n')
    f.write('    if i == 2:\n')
    f.write('        print("Нашли двойку!")\n')

print(" Файл с отступами создан!")

Для сложных структур

with open('my_file.py', 'w') as f:
    f.write('def my_function():\n')
    f.write('    for i in range(3):\n')
    f.write('        if i % 2 == 0:\n')
    f.write('            print(f"Четное: {i}")\n')
    f.write('        else:\n')
    f.write('            print(f"Нечетное: {i}")\n')
    f.write('    return "Готово!"\n')
    f.write('\n')
    f.write('result = my_function()\n')
    f.write('print(result)\n')

print(" Файл с функциями создан!")

Правила форматирования:

\n - перенос строки

4 пробела - один уровень отступа

8 пробелов - два уровня отступа

Подключение ESP32 к вашей Wi-Fi сети (режим клиента STA)

Для кого этот способ?

Режим клиента (STA_IF) может быть очень удобным, но он требует больше усилий для настройки. Этот метод подходит для опытных пользователей, которые хорошо знакомы с сетевыми настройками.

 Преимущества режима STA

- Работает через ваш роутер - не нужно переключаться между сетями

- Есть интернет на ESP - для обновлений, NTP и т.д.

- Больший радиус действия - через роутер

Недостатки

- Сложнее настроить - нужно знать параметры сети

- Для настройки роутера необходимо к нему подключаться, что чревато, при незнании, сбросом настроек.

 Важное предупреждение

Если у вас не получилось подключиться в режиме STA, не сбрасывайте настройки роутера! Это может привести к:

- Потере доступа в интернет.

- Необходимости перенастраивать все устройства. 

- Проблемам с работой провайдера.

Возможные проблемы и решения

1. Неправильный SSID или пароль:

- Убедитесь, что вы правильно ввели название сети и пароль (учтите регистр)

- Если пароль состоит из цифр, то лучше его писать в бинарном режиме: b"1234567"

2. Роутер не видит ESP:

- Проверьте, поддерживает ли роутер стандарты 2.4 ГГц (ESP не работает с 5 ГГц)

- Убедитесь, что роутер не блокирует новые устройства (проверьте настройки MAC-фильтрации)

3. Не удается подключиться к WebREPL

- Проверьте, что вы используете правильный IP-адрес

- Убедитесь, что роутер не блокирует порт 8266

- Проверьте, что на роутере отключена "изоляция клиентов" (Client Isolation)

4. Слабый сигнал

- Попробуйте переместить ESP ближе к роутеру

Пошаговая инструкция

Сложности, с которыми вы можете столкнуться:

- Разные интерфейсы роутеров

- Необходимость точных данных сети

- Возможные ограничения безопасности

- Проблемы с обнаружением устройства в сети

Шаг 1: Найдите параметры вашей Wi-Fi сети

Название сети (SSID):

- Посмотрите в списке доступных сетей

- Посмотрите список доступных Wi-Fi сетей на телефоне или компьютере

- Запишите точное название (учитывайте регистр и пробелы)

Пароль от Wi-Fi сети:

- Если не помните, то возможно на корпусе роутера

Шаг 2: Настройте роутер (если необходимо)

Войдите в панель управления роутером:

- Откройте браузер на компьютере, подключенном к этой же сети

- Введите IP-адрес роутера в адресной строке (192.168.1.1 или 192.168.0.1)

- Введите логин и пароль администратора (часто admin/admin или посмотрите на роутере)

Настройте параметры безопасности:

- Найдите раздел "Беспроводная сеть" или "Wireless"

- Убедитесь, что сеть 2.4 ГГц активна

- Найдите и отключите опции:

- "Изоляция клиентов" (Client Isolation)

- "Гостевая сеть" (Guest Network), если она активна

- "MAC-фильтрация", если она блокирует новые устройства

- Сохраните изменения и перезагрузите роутер при необходимости

Шаг 3: Подключение ESP

Настройте ESP:

- Убедитесь, что на ESP установлен MicroPython.

- Подключитесь к ESP для начальной настройки.

- Загрузите код для режима STA с правильными параметрами вашей сети (boot.py).

Найдите ESP в сети (после перезагрузки ESP):

Способ A - через роутер:

- Зайдите в панель управления роутера

- Найдите раздел "Подключенные устройства" или "DHCP клиенты"

- Найдите устройство с именем ESP или похожим

Способ B - через сканирование сети:

- Используйте приложения типа Fing или Advanced IP Scanner

- Просканируйте вашу сеть на предмет новых устройств

Способ C - через последовательное подключение:

- Подключитесь к ESP по USB

- Запросите IP-адрес через терминал:

import network
sta = network.WLAN(network.STA_IF)
print("IP адрес:", sta.ifconfig()[0])

Шаг 4: Подключение к WebREPL

Подключитесь к ESP:

- Убедитесь, что ваш компьютер/телефон подключен к той же Wi-Fi сети

- Откройте браузер и перейдите на сайт WebREPL

- Введите полученный IP-адрес ESP32 в формате: ws://192.168.1.xxx:8266

- Используйте стандартный пароль WebREPL

Код для boot.py

import network
import webrepl
import time
WIFI_SSID = "ВАША_СЕТЬ"
WIFI_PASSWORD = "ВАШ_ПАРОЛЬ"
sta = network.WLAN(network.STA_IF)
sta.active(True)
sta.connect(WIFI_SSID, WIFI_PASSWORD)
# Ожидаем подключения
for i in range(10):
    if sta.isconnected():
        ip = sta.ifconfig()[0]
        webrepl.start()
        print(f"WebREPL: ws://{ip}:8266")
        break
    time.sleep(1)

Если ничего не помогает

Вернитесь к режиму точки доступа (AP)! Этот способ работает в 100% случаев и не требует сложных настроек роутера.

Итоги и планы на будущее

 С чем познакомились в этой статье:

 -  uPyLoader —инструмент для работы с файлами по USB.

WebREPL — беспроводное управление устройством по Wi-Fi.

- Режимами работы Wi-Fi — точка доступа (AP) и клиента (STA).

- Созданием и редактированием файлов прямо на устройстве.

 Теперь наше устройство умеет:

 Автоматически запускать WebREPL при включении.

Принимать команды через браузер с любого устройства в сети.

Хранить и выполнять постоянные программы.

Работать полностью автономно без подключения к компьютеру.

 Что дальше? Голос для нашего устройства!

 Сейчас наша ESP32 — это умный, но безмолвный помощник. Она выполняет код, но не может сообщить нам о результатах своей работы.

 В следующей статье мы дадим ей голос!

 Мы реализуем две системы уведомлений:

 Telegram-бот — для ESP32. Мгновенные оповещения на телефон. Возможность отвечать боту и управлять устройством. Надежное шифрование и безопасность.

 ntfy — для ESP8266. Простая настройка. Не требует регистрации и HTTPS. Идеально для быстрых уведомлений.

 Почему именно так?

 ESP32 справится с шифрованием для Telegram.

ESP8266 отлично работает с легковесным ntfy.

 Вы сможете выбрать подходящий ва��иант для своего проекта.

 Что конкретно разберем:

 Создание Telegram-бота через @BotFather.

Написание кода для отправки сообщений.

Настройка ntfy-каналов.

 Практические примеры: уведомления о событиях, мониторинг датчиков.Обработка команд от пользователя.

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


  1. DanielKross
    29.10.2025 13:41

    Спасибо, интересно )


  1. user-book
    29.10.2025 13:41

    что то странное.

    Используйте вайфай/блутуз и нормальное IDE (обновлять можно будет по OTA) или вообще заюзайте их встроенный ESP-NOW если там детериминированные датчики


  1. Yoti
    29.10.2025 13:41

    Зачем переходить к readme файлу, если его изучение не предполагается? Не проще ли сразу открыть https://github.com/BetaRavener/uPyLoader/releases?


  1. RadioPizza
    29.10.2025 13:41

    Сразу видно что статья написана нейросеткой