Skip to main content

Narrowcasting Systeem met Info-Beamer & MQTTe pagina


🖥️ Project: Narrowcasting Systeem met Info-Beamer & MQTT

Doel van het project

Bouw een eigen narrowcasting systeem dat draait op een Raspberry Pi met Info-Beamer. Het toont dynamische informatie zoals aankondigingen, weer, klok, meldingen — en je bestuurt het live via MQTT. Denk aan een scherm in de gang van een school, werkplaats of lokaal.


🧠 Wat je leert

  • Raspberry Pi configureren voor digital signage

  • Werken met Info-Beamer (gratis versie)

  • Ontwikkelen van Info-Beamer lay-outs met Lua en assets

  • MQTT gebruiken voor live updates van inhoud

  • Data parsing & weergave (JSON, tekst, etc.)


🧰 Benodigdheden

  • Raspberry Pi (bij voorkeur Pi 3 of 4)

  • MicroSD-kaart (8 GB of groter)

  • HDMI-scherm + kabel

  • Toegang tot een MQTT-broker (bijv. Mosquitto, lokaal of via een dienst zoals HiveMQ)

  • Info-Beamer OS (gratis versie): https://info-beamer.com/download


🔧 Stappenplan

1. Raspberry Pi opzetten met Info-Beamer

  • Download de Info-Beamer OS en schrijf deze naar de SD-kaart (via BalenaEtcher of dd).

  • Plaats de SD-kaart in de Pi, sluit aan op scherm, netwerk (wifi/ethernet) en start op.

  • De Pi krijgt een naam zoals pi123456.local, of je kunt het IP opzoeken in je router.

  • Via de browser open je het Info-Beamer beheerportaal op het IP-adres van de Pi.


2. Simpele layout maken

  • Maak een mapstructuur zoals:

    narrowcast/
    ├── node.lua
    ├── font.ttf
    ├── background.jpg
    └── config.json (optioneel)
    
  • In node.lua plaats je de basis-weergavecode (Lua):

gl.setup(1920, 1080)
local font = resource.load_font("font.ttf")

local message = "Welkom bij HIT AI"

function node.render()
    gl.clear(0, 0, 0, 1)
    font:write(50, 100, message, 60, 1, 1, 1, 1)
end

util.data_mapper{
    ["update/message"] = function(payload)
        message = payload
    end
}

3. MQTT toevoegen via bridge script

Info-Beamer zelf heeft geen ingebouwde MQTT-client, dus we maken een klein bridge script in Python (of Node.js) dat MQTT-berichten ontvangt en via TCP doorstuurt naar Info-Beamer (via zijn lokale “UDP TCP socket interface”).

Voorbeeld (Python met paho-mqtt):

import paho.mqtt.client as mqtt
import socket
import json

def on_message(client, userdata, msg):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(('localhost', 4444))  # Info-Beamer luistert hier
    s.send(f'update/message {msg.payload.decode()}'.encode())
    s.close()

client = mqtt.Client()
client.connect("localhost", 1883, 60)
client.subscribe("narrowcast/line1")

client.on_message = on_message
client.loop_forever()

📝 Zorg ervoor dat dit script opstart bij boot (bijv. via systemd).


4. Probeer het uit!

  • Start je Python MQTT bridge.

  • Publiceer een testbericht:

    mosquitto_pub -t narrowcast/line1 -m "Bezoekers welkom!"
    
  • Het bericht verschijnt live op het scherm!


🔄 Uitbreidingen

Idee Hoe
Klok weergeven Gebruik os.date() in Lua en update node.render()
Afbeelding van MQTT-url Download in Python script, herlaad in Info-Beamer
Ticker onderaan Gebruik aparte variabele met scrolling_text.lua
Meerdere lijnen tekst Gebruik util.data_mapper{ ["line2"] = ... }
Weergave van JSON (bijv. van een API) Decode in Python, stuur specifieke velden via socket

🧪 Testscenario’s

  1. Zet het systeem op en toon een vaste tekst.

  2. Verander het bericht via MQTT.

  3. Start de Pi opnieuw — blijft alles werken?

  4. Koppel een sensor (bijv. knop, PIR) en stuur MQTT bij trigger.

  5. Toon dynamische info zoals datum/tijd, weer of lokaal nieuws.


📦 Samenvatting projectbestand

  • Hardware: Raspberry Pi, scherm, netwerk

  • Software: Info-Beamer OS, Lua-layouts, MQTT-bridge script

  • Interfaces: MQTT → Python bridge → Info-Beamer TCP API

  • Doel: Real-time dynamische informatie tonen