Карманный медиасервер на ESP32-S3 для поездок и автономных сетей
В длинных поездках или на природе быстро выясняется одна неприятная штука: мобильная связь исчезает в самый ненужный момент. Можно заранее забить память телефона видеофайлами и книгами. Другой путь — сообразить автономный сервер. Но разворачивать для этого Raspberry Pi с обвязкой из пауэрбанков и внешних дисков часто неудобно. Плата греется, активно жрёт аккумулятор и занимает место в рюкзаке.
Разработчик Джексон Студнер подошёл к вопросу изящнее. Он написал Jcorp Nomad — полностью автономный медиасервер, который работает на микроконтроллере ESP32-S3 и помещается в корпус размером с обычную USB-флешку.

Что умеет микроконтроллер за полтора десятка долларов
Nomad создаёт собственную локальную сеть Wi-Fi. Вы подключаетесь к ней со смартфона, планшета или ноутбука, открываете браузер и попадаете в медиаплеер. Никакого приложения ставить не нужно.
Внутри флешки стоит карточка MicroSD, с которой устройство отдаёт контент. Вот что оно умеет раздавать на подключённые девайсы:
- Фильмы и сериалы. Видео крутится через веб-плеер Plyr. Есть поддержка структурированных папок с сезонами и нормальный запоминатель прогресса просмотра.
- Музыка. Фоновое воспроизведение с плейлистами из подкаталогов и динамической очередью.
- Книги и комиксы. Поддерживаются форматы PDF, EPUB, CBZ и CBR.
- Офлайн-Википедия. Главная фишка свежего релиза Mk4 — чтение ZIM-архивов. Можно загрузить на флешку дампы Википедии, библиотеки Gutenberg или выступлений TED.
Несколько человек могут подключаться одновременно и смотреть разные файлы. Естественно, с оглядкой на пропускную способность Wi-Fi микроконтроллера, но для семьи или небольшой компании в палаточном лагере этого хватает.
Как удалось заставить ESP32 читать гигабайтные архивы
Самая интересная техническая деталь в Nomad — работа с ZIM-файлами. Полный дамп Википедии с иллюстрациями весит больше 140 гигабайт. Попытка заставить чип ESP32 с его скромной оперативной памятью самостоятельно искать что-то в таком массиве данных неизбежно привела бы к падению системы.
Автор решил задачу разделением труда. В связке с проектом идет утилита Nomad Tools для компьютера. Она заранее сканирует ZIM-файл на ПК и создаёт компактный индексный файл. На MicroSD отправляется уже готовый индекс. Когда вы вводите поисковый запрос в браузере смартфона, Nomad быстро сверяется с лёгким индексом и сразу выдаёт нужную статью.
В последнем обновлении Mk4 разработчик доработал работу с памятью:
- Починил регулярные перезагрузки при работе с файлами больше 2 гигабайт.
- Добавил динамическую выгрузку прочитанных страниц для PDF и комиксов. Раньше длинный топик или тяжелый сканированный документ быстро забивал RAM, отправляя плату в утиль.
- Оптимизировал индексацию при старте. Теперь плата пересканирует карту памяти только в том случае, если на ней реально изменились файлы, а не при каждом включении.
Корпус, который больше не давит на экран
Устройство собирается на базе конкретной отладочной платы — Waveshare ESP32-S3 Dev Board с цветным LCD-экраном диагональю 1.47 дюйма. В репозитории лежат готовые STL-файлы для печати корпуса на 3D-принтере.

Конструкцию корпуса в Mk4 переработали. Раньше половинки защёлкивались сверху и снизу, из-за чего при сборке легко было раздавить тонкое стекло дисплея. Новая версия собирается слайдером спереди назад. Кнопки сброса и прошивки остаются снаружи, так что разбирать корпус ради обновления софта не придётся.
Как собрать такой сервер самому
Сборка простая, паяльник не потребуется. Из железа нужны:
- Плата Waveshare ESP32-S3 с экраном 1.47" (стоит около 15–18 долларов).
- Карта MicroSD объёмом от 16 ГБ до 128 ГБ (поддерживаются карты вплоть до 2 ТБ, главное отформатировать в FAT32).
- Любой источник питания с USB-выходом (пауэрбанк, разъем в машине или блок от зарядки).
Файловая структура на карте памяти выглядит наглядно. Вы просто раскладываете медиафайлы по соответствующим папкам:
/Movies
Interstellar.mp4
Interstellar.jpg
/Shows
/The Office
S01E01 - Pilot.mp4
S01E02 - Diversity Day.mp4
The Office.jpg
/Books
The Martian.pdf
/Music
track01.mp3
После этого прошиваете плату через Arduino IDE бинарником из папки /firmware/, вставляете флешку и подаёте питание. В списке сетей появится Jcorp_Nomad (пароль по умолчанию: password).
Заходите в браузере в админку, запускаете первичное индексирование — и автономная медиатека готова.
Стоит ли пробовать
Jcorp Nomad — отличный пример того, как на микроконтроллере за смешные деньги делают вещь, реально полезную в быту. У проекта понятный открытый исходный код (лицензия CC BY-NC-SA 4.0), активный автор и живое комьюнити.
Если вы часто бываете там, где не ловит сотовая связь, или просто хотите иметь под рукой аварийный автономный справочник с фильмами на случай отключения света, этот проект точно стоит собрать за пару вечерних часов.
