embedded

Учебник MicroPython и ESP32 для начинающих

27 уроков · 8 разделов · бесплатно, без регистрации

Этот курс проведёт вас от нуля до собственного умного дома на микроконтроллере ESP32, программируемом на MicroPython. Вы узнаете, чем MicroPython отличается от обычного Python и от Arduino C, как прошить плату, мигать светодиодом, читать кнопки и датчики, управлять яркостью через ШИМ и сервоприводами, считывать аналоговые сигналы через АЦП. Затем мы выйдем в сеть: подключим ESP32 к Wi-Fi, научимся слать HTTP-запросы, поднимем веб-сервер прямо на плате и подключимся к брокеру MQTT — основе любого умного дома. В финале соберём настоящие устройства: умную лампу, метеостанцию с отправкой данных в облако, датчик протечки и управляемое реле, разберём энергосбережение через deep sleep и безопасность IoT. Курс рассчитан на тех, кто знает основы Python и хочет перенести код в физический мир.

Курс «MicroPython и ESP32: умный дом» состоит из 8 разделов и 27 уроков: Знакомство с MicroPython и ESP32, Прошивка, REPL и первая программа, GPIO: цифровой вывод и ввод, Аналоговый мир: ШИМ и АЦП, Время, прерывания и датчики, Выходим в сеть: Wi-Fi и HTTP, MQTT и умный дом и Проекты, энергосбережение и безопасность. Уроки идут по порядку — от основ к более сложным темам, в каждом есть объяснение с примерами, а в конце — вопросы для самопроверки. К урокам привязаны задачи с автоматической проверкой: прочитали тему — сразу закрепили её кодом.

Программа курса

  1. 1 Знакомство с MicroPython и ESP32

    1. Что такое MicroPython и чем он отличается от обычного Python

      MicroPython — это Python 3 для микроконтроллеров. Разбираем, что в нём урезано, что добавлено и почему это удобно для умного дома.

    2. MicroPython против Arduino C: два подхода к одному железу

      Сравниваем MicroPython и Arduino C: компиляция против интерпретации, скорость, удобство, REPL. Когда что выбирать для проектов IoT.

    3. Что такое ESP32: Wi-Fi, Bluetooth, два ядра и GPIO

      Знакомство с ESP32: двухъядерный чип с Wi-Fi и Bluetooth, множество GPIO, АЦП и ШИМ. Почему он стал стандартом для IoT и умного дома.

  2. 2 Прошивка, REPL и первая программа

    1. Прошиваем MicroPython на ESP32 через esptool

      Пошаговая прошивка MicroPython на ESP32: установка esptool, стирание флеша, заливка прошивки .bin, выбор порта и типичные ошибки.

    2. REPL и Thonny: разговариваем с платой вживую

      Что такое REPL в MicroPython, как подключиться к ESP32 через Thonny, выполнять команды вживую и загружать файлы main.py и boot.py.

    3. Первая программа: мигаем встроенным светодиодом

      Классический Blink на MicroPython и ESP32: machine.Pin, режим OUT, value() и time.sleep. Разбираем встроенный светодиод и тайминг.

  3. 3 GPIO: цифровой вывод и ввод

    1. Цифровой выход: управляем внешним светодиодом

      Подключаем внешний светодиод к ESP32 через резистор, считаем токоограничивающий резистор, управляем выводом через machine.Pin.

    2. Цифровой ввод: читаем кнопку и подтягивающий резистор

      Читаем кнопку на ESP32 через machine.Pin в режиме IN, разбираем подтягивающие резисторы PULL_UP и плавающий вход в MicroPython.

    3. Антидребезг: как победить дрожание контактов

      Дребезг контактов кнопки и борьба с ним: программный антидребезг по времени в MicroPython, расчёт задержки, отслеживание фронта сигнала.

  4. 4 Аналоговый мир: ШИМ и АЦП

    1. ШИМ: плавная яркость светодиода

      Широтно-импульсная модуляция (PWM) на ESP32: управление яркостью светодиода через duty_u16, частота и заполнение, расчёт скважности.

    2. Сервопривод: управляем углом через ШИМ

      Управление сервоприводом на ESP32: ШИМ 50 Гц, длительность импульса 1–2 мс, перевод угла в скважность в MicroPython, расчёт duty.

    3. АЦП: читаем потенциометр и аналоговые датчики

      АЦП на ESP32: чтение аналогового сигнала через machine.ADC, разрядность, диапазон 0–4095, перевод отсчётов в напряжение в MicroPython.

  5. 5 Время, прерывания и датчики

    1. Таймеры и прерывания: реагируем мгновенно

      Аппаратные таймеры и прерывания GPIO на ESP32 в MicroPython: machine.Timer, irq по фронту, зачем нужны прерывания вместо опроса.

    2. Датчик DHT: температура и влажность

      Чтение датчика DHT11/DHT22 на ESP32 в MicroPython: модуль dht, измерение температуры и влажности, обработка ошибок чтения, проверка диапазонов.

    3. PIR и ультразвук: движение и расстояние

      Датчик движения PIR и ультразвуковой дальномер HC-SR04 на ESP32: чтение цифрового сигнала PIR и расчёт расстояния по времени эха в MicroPython.

    4. Шины I2C и SPI: OLED-дисплей и датчики

      Шины I2C и SPI на ESP32 в MicroPython: подключение OLED-дисплея, сканирование адресов I2C, разница между протоколами, работа с несколькими устройствами.

  6. 6 Выходим в сеть: Wi-Fi и HTTP

    1. Подключаемся к Wi-Fi: network и station mode

      Подключение ESP32 к Wi-Fi в MicroPython: модуль network, STA_IF, ожидание isconnected, получение IP-адреса, обработка ошибок подключения.

    2. HTTP-запросы через urequests: общаемся с сервером

      HTTP-запросы на ESP32 в MicroPython через urequests: GET и POST, отправка данных на сервер, получение и парсинг JSON-ответа, закрытие соединения.

    3. Свой веб-сервер на ESP32: управление из браузера

      Поднимаем веб-сервер на ESP32 в MicroPython через сокеты: HTML-страница управления, обработка GET-параметров, включение реле из браузера телефона.

  7. 7 MQTT и умный дом

    1. Что такое MQTT и зачем он умному дому

      Основы MQTT: брокер, модель publish/subscribe, топики, отличие от HTTP. Почему MQTT — лёгкий протокол для умного дома и интернета вещей.

    2. MQTT на практике: publish и subscribe из MicroPython

      Практика MQTT на ESP32: библиотека umqtt.simple, подключение к брокеру, публикация показаний датчика и подписка на команды управления в MicroPython.

    3. JSON-конфиги и обзор Home Assistant

      JSON-конфиги для ESP32 в MicroPython: хранение настроек в config.json, парсинг и валидация, обзор интеграции устройств с Home Assistant через MQTT.

  8. 8 Проекты, энергосбережение и безопасность

    1. Проект: умная лампа и управление реле

      Проект умной лампы на ESP32: управление реле через MQTT и веб-страницу, безопасное подключение нагрузки 220 В, сохранение состояния, схема через оптопару.

    2. Проект: метеостанция с отправкой в облако

      Метеостанция на ESP32: датчик DHT22, OLED-дисплей, отправка температуры и влажности в облако через MQTT или HTTP, усреднение и проверка показаний.

    3. Проект: датчик протечки воды

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

    4. Энергосбережение: deep sleep и батарейное питание

      Энергосбережение на ESP32: режим deep sleep, пробуждение по таймеру и пину, расчёт времени работы от батареи, экономия тока в MicroPython.

    5. Безопасность IoT и отладка частых проблем

      Безопасность IoT-устройств на ESP32: пароли, шифрование, изоляция сети, обновления. Отладка частых проблем: питание, дребезг, watchdog, утечки памяти.