Доки по периферии

DHT11, DHT22 — температура и влажность

HC-SR04 — измерение расстояния (сонар)

MQ-135 — датчик CO2

RGB-светодиод

Клавиатура

Джойстик

Telegram-уведомления

Пассивная пищалка

Пульсометр

Экран RG1602A + плата расширения PCF8574
Идеи проектов
- считывать показания датчиков, выводить:
- в телеграм
- на экранчик
- сигнализировать влажность RGB-светодиодом (подышать чтобы повысилась)
- пищать определённым тоном в зависимости от влажности (подышать чтобы повысилась)
- музыкальный инструмент: с помощью сонара измерять расстояние, менять частоту пищалки в зависимости от текущего расстояния
- музыкальный инструмент: подключить блок кнопок и играть ноты пищалкой при нажатии на кнопки
- (сложно!) подключить несколько пищалок и добавить возможность играть аккорды
- просто музыка: с помощью пищалки играть прикольные мелодии
- можно ещё заставить ргб-светодиод менять цвет в соответствии с текущей нотой
- ачивка: устройте джем-сессию на самодельных музыкальных инструментах
- управление джойстиком:
- поворачивать сервомотор вслед за джойстиком
- управлять цветом ргб-светодиода с помощью джойстика
- управлять тоном пищалки с помощью джойстика
- пульсометр: мигать лампочкой, пищать пищалкой в такт пульса
- сложно: вместо дискретных ударов сердца использовать прям всю синусоиду
Быстрый обзор ESP32
ESP8266 — очень старый слабый чип, не умеет в питон ESP32 — чип поновее и помощнее, умеет Wi-Fi+Bluetooth, не умеет прикидываться флешкой ESP32-S2 — самые дешманские отладочные платы (170 рублей), не умеет Bluetooth, умеет прикидываться флешкой ESP32-C3 — самый новый чип, архитектура RISC-V (против Xtensa у всех остальных), поэтому не требует форков компиляторов, умеет прикидываться флешкойУстановка CircuitPython
💡 Если вы нашли в хакспейсе отладочную плату, скорее всего на ней уже стоит CircuitPython, попробуйте проверить: запитайте микроконтроллер и откройте http://circuitpython.local/code/ (все ESP32 броадкастят свои адреса по mDNS).
- Зажимаем кнопку BOOT (она может быть непонятно подписана, тогда ищем RST и зажимаем ДРУГУЮ кнопку)
- Нажимаем и отпускаем RST
- Отпускаем BOOT
Как пользоваться
Вариант 1 — если не умеет прикидываться флешкой
После установки прошивки не появилось флешки CIRCUITPY на компе? Открываем http://circuitpython.local/code/ (это mDNS адрес, его броадкастит микроконтроллер). Жмякаем full code editor. Снизу тыкаем Serial, теперь слева у нас код, а справа вывод консоли. Код пишется в code.py или main.py, контроллер автоматически запускает их при старте.Вариант 2 — если флешка появилась
Открываем Visual Studio Code, ставим расширение CircuitPython, снизу выбираем свою борду (прошивку для которой вы ставили с сайта circuitpython) и серийный порт (методом исключения а также сравнения списка с подключенной платой и без неё). Снизу откроется консоль. Редактор будет подсказывать подсказки как в обычном питоне (только у меня он почему-то ругался на имя файла code.py, поэтому я переименовал его в main.py). Бонус: установка библиотек.Продвинутые штучки
Распиновка
ESP32

ESP32-S2

ESP32-C3

Отличия прошивок CircuitPython
Идём в гитхаб, тыкаем интересующую плату и смотрим файлики (их там обычно мало). Самое главное этоmpconfigboard.h, в нём прописывается, какие пины чипа на какие устройства на плате распаяны. Например, #define MICROPY_HW_LED_STATUS (&pin_GPIO13) означает, что на ноге микроконтроллера GPIO13 прошивка ожидает светодиод, которым будет мигать при каких-то своих событиях (например, подключении к вайфаю).