Перед началом на плате должен быть 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 — программа остановится, и файл можно будет заменить.