Hardware · mobil

Die Roofbox: Reichweite auf dem Taxidach

Ein doppelseitiges Dachdisplay mit eigenem Rechner, Mobilfunk, GNSS und Umgebungssensorik. Es fragt seine Werbemittel positionsabhängig an, passt die Helligkeit dem Tageslicht an und wird komplett aus der Ferne gewartet.

2 × 1920 × 540Intel x86-64LTE + GNSSYocto LinuxJava 17 / JavaFXMender OTA
Aufbau

Was in der Dachbox steckt

IHRE WERBUNGgenau dort, wo Ihre Kunden sind ☂ ES REGNET.Wetter-Targeting in Echtzeit NUR IN DIESEM VIERTELH3-Geo-Targeting Display 0 vorne · Display 1 hinten · je 1920 × 540 px über LVDS INNENLEBEN Intel x86-64UZE-OS · UZE Player SIMCom SIM7600LTE + GNSS (A-GPS) DCDC-NUCKfz-Netzteil · Zündung MCP2221 USB → I²C OPT3001Licht 2 × LM75Temp. außen HTU21DTemp. + Feuchte RS-232Klappe Backlight-Controller 1 2 3 4 5 6 7
  • 1
    Zwei Displays, doppelseitigJe 1920 × 540 px, getrennt als Display 0 und 1 ansteuerbar. Jede Seite fragt ihre Werbung separat an und bestätigt sie separat.
  • 2
    Umgebungslicht OPT3001Misst kontinuierlich im 100-ms-Takt und regelt darüber die Hintergrundbeleuchtung. Lesbar bei Sonne, nicht blendend bei Nacht.
  • 3
    LTE & GNSS: SIMCom SIM7600Mobilfunk mit eigener Verbindungsüberwachung. GNSS mit A-GPS liefert Position, Geschwindigkeit und Fix-Qualität. Gemeldet werden auch Signalstärke, Zelle und Netzbetreiber.
  • 4
    Klima: 2 × LM75, HTU21DAußentemperatur an beiden Seiten, Innentemperatur und Luftfeuchte über einen I²C-Bus. Der Bus hängt an einer USB-Brücke vom Typ MCP2221.
  • 5
    Klappen-ErkennungEin serieller Kontakt meldet, ob das Display aufgerichtet oder heruntergeklappt ist. Grundlage für Dunkelschaltung und Alarm.
  • 6
    Kfz-Netzteil mit ZündungslogikDas Netzteil überwacht Bordspannung und Zündung. Fällt die Spannung dauerhaft unter 10,4 V, schaltet die Box das Backlight ab und fährt kontrolliert herunter.
  • 7
    Intel x86-64 RechnerUZE-OS auf Yocto-Basis mit A/B-Partitionen für sichere Over-the-Air-Updates. Darauf läuft der UZE Player auf Java 17 mit JavaFX.
Helligkeitsregelung

Immer lesbar, nie blendend

Ein eigener Backlight-Dienst in C++ mit gRPC-Schnittstelle liest etwa zehnmal pro Sekunde den Lichtsensor aus. Er setzt die Helligkeit des Panels entlang einer Kennlinie: unterhalb von 100 lx nur wenige Prozent, ab 2.500 lx volle Leuchtkraft.

Der Regler daneben zeigt die Kennlinie.

Nacht Sonne
Umgebung: – Backlight: –
0 lx 2.500 lx 100 % IHRE WERBUNG

Wann das Display leuchtet

Im Stadtgebiet

GPS-Position liegt in einem hinterlegten GeoJSON-Polygon (z. B. Hamburg, Bremen, NRW, München). Weitere Polygone lassen sich nachladen.

UND
Display aufgerichtet

Der Klappensensor meldet „oben“.

=
Display an

Sonst bleibt das Backlight aus und der Player zeigt ein schwarzes Bild.

Technologie-Stack Roofbox

Vom Kernel bis zum Werbemittel

Web-Player
Vue 3 · Vite · Pinia mit persistenter Bestätigungs-Queue · Bild, APNG und Video · Playout-Loop mit Backoff von 1 s bis 30 s bei Netzausfall
UZE Player
Java 17 · JavaFX 17 WebView je Display · integrierter lokaler Webserver · Medien-Cache bis 2 GB mit SHA-256-Prüfung · SQLite-Puffer für Telemetrie · Avro und gRPC
Systemdienste
systemd-Units für Player, Modem und Verbindungs-Watchdog, GNSS, Lichtsensor, I²C-Brücke und Backlight-Controller · Neustart bei Absturz
Betriebssystem
UZE-OS auf Yocto (Poky, dunfell) · Linux 5.4 für Intel · GRUB/EFI · Read-only-Root-Dateisystem · X11 · systemd-networkd
Update-Basis
Mender-Client 3.3 mit A/B-Root-Partitionen · Mender Connect für das Remote-Terminal · Artefakte für Rootfs, Player-JAR und Libraries
Hardware
Intel x86-64 · 2 LVDS-Panels · SIMCom SIM7600 (LTE, GNSS) · DCDC-NUC-Netzteil · MCP2221-I²C-Brücke mit OPT3001, LM75 und HTU21D · RS-232 für die Klappe

Telemetrie

Die Sensoren werden im Sekundentakt gelesen. Alle 10 Sekunden geht ein Paket an die Plattform, gzip-komprimiertes JSON an /sensor/collect. Ältere Firmware sendet im Avro-Binärformat. Ohne Netz puffert die Box die Daten in SQLite und sendet sie minütlich in Paketen von bis zu 1.000 Einträgen nach.

PositionBreite, Länge, Geschwindigkeit, Quelle (GPS oder letzte bekannte)
MobilfunkSignal (dBm), MCC/MNC, Zell-IDs, Modem-Temperatur, ICCID, Provider
Licht & DisplayLux, Backlight an/aus, Helligkeit in %
KlimaTemperatur außen (2×), innen, Luftfeuchte
EnergieBordspannung, Zündungsspannung, Abschalt-Timer
ZustandKlappe, Datenvolumen, Internet, Dienste-Health, Version
ReichweiteWLAN-Probe-Zählung im Umfeld des Fahrzeugs
Auf dem Gerät

Der Playout-Zyklus

Anfrage

Jedes Display sendet seine Position, Auflösung und MIME-Typen an /playout/request. Es authentisiert sich mit dem Fingerprint seines Mender-Schlüssels.

Laden & Cachen

Das Werbemittel wird geladen, geprüft und lokal gecacht. Wiederkehrende Motive kommen aus dem Cache und kosten kein Datenvolumen.

Anzeigen

Bild, APNG oder Video läuft für die vorgegebene Dauer, standardmäßig 10 Sekunden.

Bestätigen

Danach folgt /playout/confirm mit Zeitpunkt und Position. Ohne Netz wird die Bestätigung persistent gespeichert und später gesendet.

# Playout-Anfrage eines Displays (vereinfacht)
POST /playout/request
x-device-display: 0
x-device-width:   1920
x-device-height:  540
x-device-mime:    image/png,image/jpeg
x-device-pk-fingerprint: 3f9a…e1

{ "position": { "lat": 53.5511, "lng": 9.9937 } }

# Antwort
{ "playoutId": "…",
  "media": { "url": "https://…/ads/images/…png", "type": "image/png" },
  "durationInSec": 10, "isChargeable": true }

Dieselbe Software, stationär

Die Smartbox nutzt den gleichen Player auf einem Raspberry Pi.