Урок 2. ESP32 MicroPython. Первая программа.

Что такое MicroPython и его особенности рассмотрели на вводном уроке, а на первом уроке познакомились со средой разработки Thonny Python IDE и установили прошивку на ESP32 и ESP8266. Пришло время научиться писать программы на MicroPython. В качестве первого примера чаще всего показывают мигание встроенным светодиодом на отладочной плате, поэтому и я не буду отклоняться от данной традиции. На этом уроке мы научимся мигать светодиодом на плате ESP32 и ESP8266.


И перед началом уроков давайте договоримся о том, что я не буду все примеры показывать на обоих платах ESP32 и ESP8266, так как код для них в большинстве случаев одинаковый, отличаться могут только пины подключения. Если в коде будут значительные отличия, я сделаю на этом акцент.

Распиновка плат.

Для того чтобы понимать какими контактом на плате будем управлять, рассмотрим распиновку плат ESP32 и ESP8266.

рассмотрим распиновку плат ESP32 и ESP8266

Распиновка ESP32.

На изображении серым цветом обозначены номера GPIO, которые мы будем использовать при написании кода. В большинстве случаев на плате они имеют обозначение с буквой D перед номером пина.

ESP32 DEVKIT V1 с 36 контактами

Более подробно про назначение контактов вы можете прочитать в статье «Распиновка ESP32, какие контакты GPIO можно использовать, а какие нет?».

Распиновка NodeMCU.

С NodeMCU всё немного сложнее, так как контакты D0 - D8 не соответствуют GPIO микроконтроллера, который будем использовать.

Распиновка NodeMCU.

Например, если нам нужно управлять контактом, который на плате называется «D4», он соответствует GPIO2. В коде нам нужно указывать «2», а не 4. Вот такая путаница при работе с данной платой.

«D4», он соответствует GPIO2

Подробное описание и распиновку плат NodeMCU, WeMos D1 Mini и ESP-01 смотрите вот в этой статье.

Программа на MicroPython «мигание светодиодом».

Для того чтобы управлять контактами микроконтроллера, нужно подключить библиотеку «machine». Делается это с помощью команды:

import machine

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

команды будем отправлять через консоль REPL

Затем нужно инициализировать пин как выход. Для ESP32 DEVKIT V1 и NodeMCU встроенный светодиод подключен к GPIO2.

led = machine.Pin(2, machine.Pin.OUT)

Сейчас мы можем отправить команду на включение светодиода.

led.on()

Затем отправим команду на выключение светодиода.

led.off()

Используя стрелки вверх и вниз на клавиатуре можно выбрать одну из ранее введённых команд, тем самым включая и выключая светодиод.

Используя стрелки вверх и вниз на клавиатуре можно выбрать одну из ранее введённых команд

Включить и выключить светодиод можно также выполнив следующие команды.

led.value(1)
led.value(0)

Для включения светодиода отправляем значение 1, для выключения значение 0. Или True – логическая единица, False - логический ноль.

led.value(True)
led.value(False)

Если вызвать данную команду «led.value()» без передачи значения, то в ответ получим логическое состояние контакта 1 или 0 (3,3В или 0).

Если вызвать данную команду «led.value()» без передачи значения

Как мы видим, через консоль управлять светодиодом достаточно просто. Как же сделать мигание светодиода постоянным, как в примере «Blink» в среде Arduino IDE?

Очерёдность исполнения файлов в MicroPython.

Для того чтобы код выполнялся на микроконтроллере, нужно создать файл с кодом. Но тут есть один момент, который нужно учитывать. Если открыть проводник файлов, то увидим, что на микроконтроллере уже есть один файл «boot.py».

Очерёдность исполнения файлов в MicroPython.

Он создаётся автоматически при прошивке микроконтроллера и изменять его нельзя на данном этапе обучения. Данный файл выполняется в первую очередь при подаче питания на ESP32.

Затем микроконтроллер выполняет файл «main.py».

Затем микроконтроллер выполняет файл «main.py». Его то мы и создадим для нашей программы.

Программа MicroPython. Мигаем светодиодом на плате ESP32.

Давайте напишем программу. Для этого подключим необходимые библиотеки: machine и time.

import machine
import time

С библиотекой «machine» мы уже знакомы. Библиотека «time» понадобится для создания задержки времени между включением и выключением светодиода. Далее в коде инициализируем второй пин (GPO2) как выход.

led = machine.Pin(2, machine.Pin.OUT)

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

while True:
  • В цикле включим светодиод.
led.on()
  • Подождём 0,5 секунды или 500 миллисекунд.
time.sleep(0.5)
  • Затем выключим светодиод.
led.off()
  • Подождём ещё 0,5 сек.
time.sleep(0.5)

Так как цикл будет выполняться бесконечное количество раз, пока на микроконтроллер подаётся питание, то включение и выключение светодиода будет повторяться. Сейчас осталось сохранить код на ESP32 с названием «main.py».

Сейчас осталось сохранить код на ESP32 с названием «main.py».

Как видим, светодиод мигает и, если мы отключим питание и снова подключим микроконтроллер к источнику питания, светодиод продолжит мигать с заданным интервалом времени.

Как видим, светодиод мигает и, если мы отключим питание и снова подключим микроконтроллер к источнику питания

В следующем уроке рассмотрим переменные и основные математические действия.


Понравился Урок 2. ESP32 MicroPython. Первая программа? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Программа MicroPython. Мигаем светодиодом на плате ESP32 Программа MicroPython. Мигаем светодиодом на плате ESP32.py1 Kb 654 Скачать

Комментарии

Ваше Имя*


Разработка проектов