>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
HTML

Kieszonkowy serwer mediów na ESP32-S3 na podróże i sieci offline

Podczas długich podróży lub na łonie natury szybko ujawnia się irytujący problem: łączność mobilna znika w najgorszym możliwym momencie. Można wcześniej załadować pamięć telefonu plikami wideo i książkami. Innym podejściem jest skonfigurowanie autonomicznego serwera. Jednak wdrożenie Raspberry Pi z całą gamą power banków i zewnętrznych dysków często okazuje się niepraktyczne. Płytka się nagrzewa, intensywnie zużywa baterię i zajmuje cenne miejsce w plecaku.

Developer Jackson Studner podszedł do tego problemu w bardziej elegancki sposób. Stworzył Jcorp Nomad — w pełni autonomiczny serwer mediów działający na mikrokontrolerze ESP32-S3, mieszczący się w obudowie wielkości standardowego pendrive'a.

Jcorp Nomad Offline Media Server

Co może mikrokontroler wyceniony na około piętnaście dolarów

Nomad tworzy własną lokalną sieć Wi-Fi. Łączysz się z nią ze smartfona, tabletu lub laptopa, otwierasz przeglądarkę i trafiasz do odtwarzacza multimedialnego. Nie wymaga instalacji żadnej aplikacji.

Wewnątrz pendrive'a znajduje się karta MicroSD, z której urządzenie udostępnia treści. Oto co może strumieniować na podłączone urządzenia:

  • Filmy i seriale. Wideo odtwarzane przez odtwarzacz internetowy Plyr. Obsługuje uporządkowane foldery z sezonami i pamięta postęp odtwarzania.
  • Muzyka. Odtwarzanie w tle z playlistami z podkatalogów i dynamicznym kolejkowaniem.
  • Książki i komiksy. Obsługuje formaty PDF, EPUB, CBZ i CBR.
  • Offline'owa Wikipedia. Wyróżniająca funkcja najnowszej wersji Mk4 — czytanie archiwów ZIM. Możesz załadować zrzuty Wikipedii, bibliotekę Gutemberga lub rozmowy TED na pendrive'a.

Kilka osób może połączyć się jednocześnie i oglądać różne pliki. Oczywiście zależy to od przepustowości Wi-Fi mikrokontrolera, ale wystarczy dla rodziny lub małej grupy na biwaku.

Jak zmusić ESP32 do czytania gigabajtowych archiwów

Najciekawszym szczegółem technicznym Nomada jest praca z plikami ZIM. Pełny zrzut Wikipedii z ilustracjami waży ponad 140 gigabajtów. Próba zmuszenia układu ESP32 z jego skromną pamięcią RAM do przeszukiwania takiej masy danych samodzielnie nieuchronnie prowadziłaby do awarii systemu.

Autor rozwiązał problem dzięki podziałowi obowiązków. Projekt zawiera narzędzie o nazwie Nomad Tools dla twojego komputera. Wstępnie skanuje plik ZIM na PC i tworzy kompaktowy plik indeksowy. Gotowy indeks trafia na kartę MicroSD. Gdy wprowadzasz zapytanie wyszukiwania w przeglądarce smartfona, Nomad błyskawicznie sprawdza lekki indeks i natychmiast wyświetla właściwy artykuł.

W najnowszej aktualizacji Mk4 developer dopracował zarządzanie pamięcią:

  • Naprawiono regularne awarie podczas pracy z plikami powyżej 2 gigabajtów.
  • Dodano dynamiczne zwalnianie przeczytanych stron dla plików PDF i komiksów. Wcześniej długi temat lub ciężki zeskanowany dokument szybko zapełniał pamięć RAM, wysyłając płytkę na wieczny spoczynek.
  • Zoptymalizowano indeksowanie przy starcie. Teraz płytka ponownie skanuje kartę pamięci tylko wtedy, gdy pliki faktycznie się zmieniły, a nie przy każdym włączeniu.

Obudowa, która już nie miażdży ekranu

Urządzenie zbudowano wokół konkretnej płytki deweloperskiej — Waveshare ESP32-S3 Dev Board z kolorowym wyświetlaczem LCD 1,47 cala. Repozytorium zawiera gotowe pliki STL do wydruku obudowy w 3D.

Nomad Mk4 exploded case view

Projekt obudowy został przebudowany w Mk4. Wcześniej połówki składały się od góry i dołu, co łatwo prowadziło do zgniecenia cienkiego szkła wyświetlacza podczas montażu. Nowa wersja składa się od przodu do tyłu. Przyciski reset i flash pozostają na zewnątrz, więc nie trzeba rozkładać obudowy, aby zaktualizować oprogramowanie.

Jak zbudować taki serwer samodzielnie

Montaż jest prosty, nie wymaga lutowania. Oto czego potrzebujesz:

  1. Płytka Waveshare ESP32-S3 z wyświetlaczem 1,47" (koszt około 15–18 USD).
  2. Karta MicroSD od 16 GB do 128 GB (obsługiwane są karty do 2 TB, wystarczy sformatować na FAT32).
  3. Dowolne źródło zasilania z wyjściem USB (power bank, gniazdko samochodowe lub ładowarka do telefonu).

Struktura plików na karcie pamięci jest prosta. Wystarczy umieścić pliki multimedialne w odpowiednich folderach:

/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

Po tym wgraj oprogramowanie na płytkę przez Arduino IDE z folderu /firmware/, włóż pendrive i włącz zasilanie. Na liście sieci pojawi się Jcorp_Nomad (domyślne hasło: password).

Otwórz panel administracyjny w przeglądarce, uruchom początkowe indeksowanie — i twoja offline'owa biblioteka multimedialna jest gotowa.

Czy warto spróbować

Jcorp Nomad to świetny przykład stworzenia czegoś naprawdę przydatnego w codziennym życiu za grosze przy użyciu mikrokontrolera. Projekt ma przejrzysty kod open source (licencja CC BY-NC-SA 4.0), aktywnego autora i żywą społeczność.

Jeśli często przebywasz tam, gdzie nie ma zasięgu komórkowego, lub po prostu chcesz mieć pod ręką awaryjne samodzielne źródło informacji z filmami na wypadek awarii zasilania, ten projekt zdecydowanie warto zbudować w ciągu kilku wieczorów.

Powiązane projekty