Nachrichtenticker mit Raspberry Pi

Raspberry Pi 2B

Vergessene Termine in der Familie trotz Kalender auf dem Handy, mal kurz eine Nachricht an die Familie ohne WhatsApp, morgens schnell über das lokale Wetter informiert – diese ganzen Wünsche brachten mich auf die Idee, einen Nachrichten-Ticker für unser Esszimmer zu bauen. Bereits fertig zu kaufende LED-Laufschriften schieden aus, da sie sehr viel kosten und verhältnismäßig unflexibel einzusetzen sind.

Meine Wahl fiel auf den Raspberry Pi, der als Server dienen sollte, um Informationen aus verschiedenen Quellen zu sammeln und diese auf einem LED-Display anzeigen sollte.

Hardware

Folgende Bauteile habe ich für das Projekt verwendet:

  • Raspberry Pi
  • passender USB WLAN Adapter
  • MAX7219 8×8 LED-Matrix (8 Stück)
  • Pololu Logic Level Shifter, 4-Channel, Bidirectional
  • 5V 4A Netzteil
  • DC Barrel Jack Adapter

Zusammen blieb ich damit unter 100Euro. Dazu kam noch eine (vom Baumarkt geschenkte, weil aus Verschnitt ausgesuchte) kleine MDF Platte als Gehäuseboden, etwas Karton für den Außenteil des Gehäuses und Decopatch-Papier zum Bekleben.

Der Nachrichtenticker vor dem Bekleben
Der Nachrichtenticker vor dem Bekleben

Der Aufbau gestaltete sich sehr einfach – die LED-Matrizen werden in Kette hintereinandergeschaltet und über den Level-Shifter mit den SPI-Anschlüssen des Raspberry Pi verbunden. Der Level-Shifter ist zwar nicht zwingend notwendig, die Signalstabilität war aber bei mir deutlich besser, da der Raspberry Pi mit 3,3V auf den Anschlüssen arbeitet, die Matrizen allerdings mit 5V. Das heißt, es kann zu Instabilitäten kommen, wenn die 3,3V vom Raspberry Pi nicht als High-Signal von den LED Matrizen interpretiert werden.

Schließlich wird noch die 5V-Spannungsversorgung an den Raspberry Pi und an die LED-Matrizen gelegt.

Wie der Aufbau prinzipiell funktioniert, sollte schnell klar sein. Falls nicht, finden sich im Internet sehr viele Einführungen zu dem Thema, unter anderem in einem Blog bei raspi.tv.

Ich möchte im Folgenden auch nicht auf das grundsätzliche Einschalten von SPI am Raspberry Pi eingehen; auch dies findet sich an beliebig vielen Stellen im Internet.

Der Nachrichtenticker in voller Pracht
… und in voller Pracht

Software

Grundsätzlich wollte ich bei der Software auf einen Client-Server-Ansatz bauen: Einen kleinen TCP Socket Server, der von verschiedenen Anwendungen mit Nachrichten gefüttert werden kann, und diese auf dem Display darstellt.

Nachrichten sollten dabei nach dem Abschalten des Raspberry Pi erhalten bleiben und eine einstellbare Lebensdauer (von/bis) haben, nach der sie dann automatisch gelöscht werden.

Da der Raspberry Pi nur begrenzte Ressourcen hat, wollte ich den Server möglichst maschinennah entwickeln und habe mich daher für C++ entschieden. Der Server erledigt alle wichtigen Aufgaben, vom Annehmen und Verwalten der Nachrichten und deren Darstellung.

Für den Anschluss der LED Matrizen habe ich eine Bibliothek entwickelt, die auf einer existierenden Python-Bibliothek basiert, und welche ich auf github zur Verfügung stelle.

Der gesamte Aufbau der Server-Architektur ist in folgender Abbildung dargestellt:

Software Architektur DisplayServer

Der Server wird vom Raspberry Pi als Service gestartet, wobei das Vorgehen dazu hier zu finden ist.

Nachdem der Server lief, habe ich verschiedene Java-Programme geschrieben, die zeitgesteuert (cron-Job) aufgerufen werden. Dazu gehören Programme, die folgende Informationen holen und an den Server verschicken:

  • Termine des heutigen und des morgigen Tages von einem Familien-Kalender bei Google,
  • die Wettervorhersage für meine Region von einem der üblichen Wetterkanäle im Internet,
  • die aktuelle Temperatur und Luftfeuchte meiner Gegend aus dem Internet,
  • einen Spruch des Tages.

Es gibt auch ein Java-Programm, mit dem der Server zum Ab- bzw. Anschalten des Displays veranlasst wird, was nachts oder auch tagsüber zum Stromsparen sehr hilfreich ist.

Zusätzlich hat mir ein Freund noch eine Android-App zum Übertragen von temporär gültigen Nachrichten Raspberry Pi geschrieben. Mit dieser App kann jeder Android-Handy-Besitzer unserer Familie eine Nachricht für andere auf dem Ticker hinterlassen.

Wer die C++-Sourcen und die Skripte für den Autostart des Servers von mir verwenden möchte, kann mir gern eine private E-Mail schicken. Das gleiche gilt für die Java-Programme und die Android-App.

Wie immer freue ich mich jederzeit über Anregungen oder Anfragen zu diesem Projekt.

2 Gedanken zu „Nachrichtenticker mit Raspberry Pi“

  1. Schönen guten Tag Herr Haugk.

    Ihr „Nachrichtenticker mit Raspberry Pi“ ist genau das was ich für unsere Infotafel im Sportverein immer gesucht habe.
    Leider kenne ich mich mit dem Raspberry Pi nicht wirklich aus.
    Daher meine Frage:
    Wäre es möglich eine solchen Raspberry Pi ( vorkonfiguriert) bzw die Software (Programme, Scripte usw mit Instalationsanleitung) von Ihnen zu erwerben?

    Mit besten Grüßen

    Patrick Kolata

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert