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.Beamer. Het toont dynamische informatie zoals aankondigingen, weer, klok, meldingen — en je bestuurt het live via MQTT.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,Mosquitto, lokaal of via een dienst zoals HiveMQ) -
Info-Beamer OS (gratis versie): https://info-beamer.com/download
đź”§ Stappenplan
- Raspberry Pi opzetten met Info-Beamer
-
Download de Info-Beamer OS en schrijf deze naar de SD-kaart (via BalenaEtcher of
dd)dd).
1.
Plaats de SD-kaart in de Pi, sluit aan op scherm, netwerk (wifi/ethernet) en start op.
De Pi krijgt een naam zoals pi123456., of je kunt het IP opzoeken in je router.local,local
Via de browser open je het Info-Beamer beheerportaal op het IP-adres van de Pi.
2. Simpele layout maken
-
Maak een mapstructuur zoals:
arduino
Kopiëren
Bewerken
narrowcast/
├── node.lua
├── font.ttf
├── background.jpg
└── config.json (optioneel)
In node.lua plaats je de basis-weergavecode (Lua):
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)mqtt
python
Kopiëren
Bewerken
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:
bash Kopiëren Bewerkenmosquitto_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
-
🧪 Testscenario’sZet 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:Software: Info-Beamer OS, Lua-layouts, MQTT-bridge script -
Interfaces:Interfaces: MQTT → Python bridge → Info-Beamer TCP API -
Doel:Doel: Real-time dynamische informatie tonen