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.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

    1.
  1. Raspberry Pi opzetten met Info-Beamer
    • Download de Info-Beamer OS en schrijf deze naar de SD-kaart (via BalenaEtcher of dd)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,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.


    1. 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

  • KopiĂ«ren Bewerken
    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).


    1. 4. Probeer het uit!

      • Start je Python MQTT bridge.

      • Publiceer een testbericht:

        bash Kopiëren Bewerken

        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. 🧪 Testscenario’s 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:
      • 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