Программирование ESP32 на MicroPython: первые шаги

ESP32 — недорогой микроконтроллер с Wi-Fi и Bluetooth, а MicroPython позволяет программировать его на обычном Python: без компиляции и без долгой загрузки. Пять коротких программ, с которых удобно начать урок или первый проект.

Первые шаги 26 сентября 2026 7 минут

Перед началом на плате должен быть MicroPython — если его нет, смотрите статью «Как прошить MicroPython на ESP32». Примеры ниже запускаются в RobX Studio кнопкой «Запустить» или в любой другой среде для MicroPython.

Консоль REPL

REPL — консоль, в которой плата выполняет команды сразу, строка за строкой. С неё удобно начинать: написали 2 + 2 — плата ответила 4. Так же проверяют выводы и датчики, не сохраняя ни одного файла. Остановить работающую программу и вернуться в консоль — Ctrl+C.

Классический первый пример. На многих платах ESP32 DevKit встроенный светодиод подключён к выводу 2; если у вашей платы иначе, подставьте свой номер или подключите светодиод с резистором.

from machine import Pin import time led = Pin(2, Pin.OUT) while True: led.value(1) time.sleep(0.5) led.value(0) time.sleep(0.5)

Кнопка

Кнопка BOOT на плате подключена к выводу 0 и при нажатии замыкает его на землю. Pin.PULL_UP включает встроенную подтяжку, поэтому отпущенная кнопка читается как 1, нажатая — как 0.

from machine import Pin import time led = Pin(2, Pin.OUT) button = Pin(0, Pin.IN, Pin.PULL_UP) while True: led.value(button.value() == 0) time.sleep(0.02)

Яркость: ШИМ

ШИМ быстро включает и выключает вывод, и доля времени «включено» задаёт яркость светодиода или скорость мотора. В MicroPython для ESP32 скважность задаётся числом от 0 до 1023.

from machine import Pin, PWM import time led = PWM(Pin(2), freq=1000) while True: for duty in range(0, 1024, 16): led.duty(duty) time.sleep(0.01)

Wi-Fi

Ради Wi-Fi ESP32 обычно и выбирают. Подключение к точке доступа — несколько строк модуля network; дальше плата может отправлять показания датчиков в облако или отвечать на запросы из браузера.

import network, time wlan = network.WLAN(network.STA_IF) wlan.active(True) wlan.connect('Имя сети', 'пароль') while not wlan.isconnected(): time.sleep(0.5) print('Подключились:', wlan.ifconfig()[0])

Чтобы работало без компьютера

Программа, запущенная из редактора, работает, пока плата включена. Чтобы она стартовала сама после включения питания, её нужно сохранить на плату файлом main.py — в RobX Studio это кнопка «залить как main.py». Файл boot.py выполняется ещё раньше, и его лучше не трогать без надобности: ошибка в нём мешает плате нормально загрузиться.

Если main.py с бесконечным циклом мешает работать с платой, подключитесь к консоли и нажмите Ctrl+C — программа остановится, и файл можно будет заменить.