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.luaplaats 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
-
Zet het systeem op en toon een vaste tekst.
-
Verander het bericht via MQTT.
-
Start de Pi opnieuw — blijft alles werken?
-
Koppel een sensor (bijv. knop, PIR) en stuur MQTT bij trigger.
-
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
entities.comment_count