>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
HTML

Pocket mediaserver op ESP32-S3 voor onderweg en offline netwerken

Tijdens lange reizen of in de natuur wordt al snel duidelijk dat mobiele connectiviteit op de meest ongelukkige momenten verdwijnt. Je zou de opslag van je telefoon vooraf kunnen vullen met videobestanden en boeken. Een andere aanpak is het opzetten van een autonome server. Maar een Raspberry Pi met een hele set powerbanks en externe schijven hiervoor inzetten is vaak onpraktisch. Het bord wordt warm, het verbruikt agressief batterij en het neemt waardevolle rugzakruimte in beslag.

Ontwikkelaar Jackson Studner koos een elegantere aanpak voor dit probleem. Hij schreef Jcorp Nomad — een volledig autonome mediaserver die draait op de ESP32-S3 microcontroller en past in een behuizing ter grootte van een standaard USB-stick.

Jcorp Nomad Offline Media Server

Wat een microcontroller van ongeveer vijftien dollar kan doen

Nomad creëert zijn eigen lokale Wi-Fi-netwerk. Je verbindt ermee vanaf je smartphone, tablet of laptop, opent een browser en komt terecht in de mediaspeler. Geen app-installatie nodig.

In de USB-stick zit een MicroSD-kaart waarvan het apparaat content serveert. Hier is wat het kan streamen naar verbonden apparaten:

  • Films en tv-series. Video wordt afgespeeld via de Plyr webspeler. Er is ondersteuning voor gestructureerde mappen met seizoenen en correcte geheugenfunctie voor afspeelvoortgang.
  • Muziek. Achtergrondafspeel met afspeellijsten uit submappen en dynamische wachtrij.
  • Boeken en strips. Ondersteunt PDF, EPUB, CBZ en CBR-formaat.
  • Offline Wikipedia. Het onderscheidende kenmerk van de nieuwste Mk4-release — het lezen van ZIM-archieven. Je kunt Wikipedia-dumps, Gutenberg-bibliotheek of TED-talks op de flashdrive laden.

Meerdere personen kunnen tegelijkertijd verbinden en verschillende bestanden bekijken. Natuurlijk hangt dit af van de Wi-Fi-bandbreedte van de microcontroller, maar het is voldoende voor een gezin of kleine groep op een kampeerplaats.

Hoe ze ESP32 kregen om gigabyte-formaat archieven te lezen

Het meest interessante technische detail in Nomad is het werken met ZIM-bestanden. Een volledige Wikipedia-dump met illustraties weegt meer dan 140 gigabyte. Proberen om een ESP32-chip met zijn bescheiden RAM door zo'n datamassa te laten zoeken zou onvermijdelijk leiden tot een systeemcrash.

De auteur loste het probleem op met arbeidsdeling. Het project bevat een hulpprogramma genaamd Nomad Tools voor je computer. Het scant het ZIM-bestand voor op de PC en maakt een compact indexbestand. Het kant-en-klare indexbestand gaat naar de MicroSD. Wanneer je een zoekopdracht invoert in de browser van je smartphone, controleert Nomad snel tegen de lichte index en serveert onmiddellijk het juiste artikel.

In de nieuwste Mk4-update verfijnde de ontwikkelaar het geheugenbeheer:

  • Vaste regelmatige crashes bij het werken met bestanden boven 2 gigabyte.
  • Toegevoegd dynamisch ontladen van gelezen pagina's voor PDF's en strips. Voorheen zou een lang onderwerp of zwaar gescand document snel het RAM vullen, waardoor het bord het loodje legde.
  • Geoptimaliseerde indexering bij opstarten. Nu scant het bord de geheugenkaart alleen opnieuw als bestanden daadwerkelijk zijn gewijzigd, niet elke keer dat het wordt ingeschakeld.

De behuizing die het scherm niet meer plet

Het apparaat is gebouwd rond een specifiek ontwikkelbord — Waveshare ESP32-S3 Dev Board met een 1,47-inch kleuren-LCD-scherm. De repository bevat kant-en-klare STL-bestanden voor het 3D-printen van de behuizing.

Nomad Mk4 exploded case view

Het behuizingsontwerp is herwerkt in Mk4. Voorheen klikten de helften van boven en onder aan elkaar, waardoor het gemakkelijk was om het dunne displayglas tijdens de montage te pletten. De nieuwe versie schuift van voren naar achteren in elkaar. De reset- en flash-knoppen blijven aan de buitenkant, dus je hoeft de behuizing niet te demonteren om de software bij te werken.

Hoe zo'n server zelf te bouwen

De montage is eenvoudig, solderen is niet nodig. Hier is wat je nodig hebt:

  1. Waveshare ESP32-S3 bord met 1,47" display (kost ongeveer $15–18).
  2. MicroSD-kaart van 16 GB tot 128 GB (kaarten tot 2 TB worden ondersteund, formatteer gewoon naar FAT32).
  3. Elke stroombron met USB-uitgang (powerbank, auto-aansluiting of telefoonlader).

De bestandsstructuur op de geheugenkaart is eenvoudig. Je plaatst je mediabestanden gewoon in de bijbehorende mappen:

/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

Flits daarna het bord via Arduino IDE met de binary uit de /firmware/-map, plaats de flashdrive en geef stroom. In de netwerklijst verschijnt Jcorp_Nomad (standaard wachtwoord: password).

Open het adminpaneel in je browser, voer de initiële indexering uit — en je offline mediabibliotheek is klaar.

Is het de moeite waard om te proberen

Jcorp Nomad is een geweldig voorbeeld van iets echt nuttigs in het dagelijks leven maken met een microcontroller voor een prikkie. Het project heeft duidelijke open-source code (CC BY-NC-SA 4.0 licentie), een actieve auteur en een levendige community.

Als je je vaak bevindt waar er geen cellulair signaal is, of gewoon een noodzakelijke standalone referentie met films bij de hand wilt hebben voor het geval van een stroomuitval, dan is dit project zeker de moeite waard om in een paar avonduren te bouwen.

Gerelateerde projecten