ESP32 and Termux
ESP32 и Termux: как прошить Micropython на ESP32 прямо с телефона
- Подготовка: ESP32-WROOM-32, OTG-кабель, USB-кабель, Termux.
- TCPUART – мост между Android и ESP32, который создаёт локальный TCP-сервер на порту 8080.
- Подключение:
socatв Termux связывает виртуальный порт/dev/esp32с TCP-сервером. - Режим загрузки: удерживаем BOOT, нажимаем EN → ESP32 в download-режиме.
- Сброс памяти:
esptool erase_flash– чистим флеш. - Прошивка:
esptool write_flash– Micropython 1.26.1. - REPL в Termux:
mpremote connect port:$HOME/esp32 repl– готовый контроллер можно запускать прямо в телефоне.
Итог: ESP32 с Micropython без ПК, только с телефона.
Комментарии (33)
- Обсуждение вращается вокруг использования Android-устройств как полноценной рабочей среды разработки, включая вопросы с доступом к аппаратному обеспечению, использовании Termux и других инструментов, и сравнение с настольными Linux-системами.
- Участники обсуждают различные аспекты: отсутствие нормального доступа к железу, проблемы с библиотекой Bazel и ее влиянии на сборку, возможность использования NDK и создания нативных бинарников, а также альтернативы вроде UserLAnd и Linux Deploy.
- Также поднимаются темы вроде запуска Home Assistant внутри Termux, использования Raspberry Pi как моста для ESP32, и влияние отсутствия реального Linux ядра в Android на различные аспекты.
- Наконец, обсуждается влияние отсутствия реального контроля над графическим стеком и как это влияет на разработку и использование Termux как основной рабочей среды.
MicroPythonOS – An Android-like OS for microcontrollers
MicroPythonOS — это операционная система, полностью написанная на MicroPython. Она работает как на микроконтроллерах вроде ESP32, так и на обычных компьютерах, предлагая легковесную, но функциональную среду. Система имеет современный интерфейс с поддержкой сенсорного экрана, жестов и встроенный магазин приложений. Она поддерживает Over-The-Air обновления, что позволяет удалённо обновлять устройства. Среди возможностей — работа с камерами, IMU-датчиками и периферией, что делает её идеальной для IoT, образовательных проектов и прототипирования. Проект открыт и размещён на GitHub.
Комментарии (51)
- Обсуждение выявило, что проект MicroPythonOS вызывает вопросы: название может вводить в заблуждение, а упоминания R. Kelly и сравнение с Android вызывают справедливую критику.
- Участники обсуждали, что MicroPythonOS больше похож на набор инструментов, чем на полноценную ОС, и что он может быть полезен для прототипирования, но не для производственного использования.
- Были высказаны опасения по поводу того, что проект может быть переоценен, и что его ценность может быть преувеличена.
- Также обсуждались вопросы, связанные с лицензированием, приватностью и этикетом, а также с тем, что проект может быть использован для обхода авторских прав.
- В конце концов, было решено, что проект может быть полезен для обучения и прототипирования, но не для производственного использования.
The “impossibly small” Microdot web framework
Microdot: крошечный веб-фреймворк для всего
Мигель Гринберг, автор Flask Mega-Tutorial, представил Microdot — мини-фреймворк, работающий и на CPython, и на MicroPython: от IoT до облаков.
Зачем?
Зимой 2018-го в Ирландии Мигель столкнулся с «умным» отоплением, которое погрешало на ±3 °C. Он отключил термостаты, поставил на каждый этаж плату с MicroPython и датчиком (±0,5 °C) и сам включал/выключал нагрев.
Чтобы с дивана видеть температуру и статус, ему нужен был веб-сервер, но Flask и Bottle на MicroPython не лезли. Поэтому он написал Microdot — «Flask в миниатюре».
Фишки
- одна папка, ~1500 строк, нулевые зависимости
- маршруты, шаблоны, cookies, WebSocket, SSE, CORS, SSL, Basic/Digest-аутентификация, тест-клиент
- копирует API Flask:
@app.route,request.args,jsonify,abort,before_request - работает на ESP32, Raspberry Pi Pico, обычных серверах
- ставится
pip install microdot(CPython) илиmip install microdot(MicroPython) - опциональные плагины: microdot-session, microdot-cors, microdot-websocket, microdot-jinja, microdot-asyncio
Код
from microdot import Microdot
app = Microdot()
@app.route('/')
async def index(req):
return {'temp': 22.5, 'heating': False}
app.run(port=80, debug=True)
Размер
ESP32: 70 КБ свободной ОЗУ остаётся после загрузки MicroPython + Microdot + приложение.
CPython: ~1 МБ venv.
Кому
- хобби-IoT: датчики, реле, роботы
- встраиваемые системы: промышленные контроллеры, автономные датчики
- прототипы: быстро поднять REST, потом перейти на Flask/FastAPI
- обучение: Flask-разработчики учатся за пять минут
Где
GitHub: github.com/miguelgrinberg/microdot
Документация: microdot.readthedocs.io
PyPI: pip install microdot
Комментарии (50)
- Microdot — это 765-строковый Python-фреймворк, который работает и на CPython, и на MicroPython; предназначен для веб-серверов на IoT-устройствах (ESP32 и др.).
- Автор @miguelgrinberg подтвердил, что расширения (шаблоны, сессии) опциональны и почти не требуют зависимостей; версия 2 внесла ломающие изменения.
- Комментаторы спорят о слове «impossibly small»: кто-то считает 765 строк нормальным минимумом, кто-то — перебором; сравнивают с Bottle, Rails 0.x и FW/1.
- Пользователи делятся опытом: SSE + htmx для живых GPIO-индикаторов, бенчмарки RPS, проекты термостатов и садовых сенсоров.
- Упоминаются альтернативы (TurboLua, BirSaat) и вопрос: «почему бы не написать это на C?»