Nu we in deel 1 de fysieke componenten (bouwstenen en sensoren) hebben bekeken, is de volgende vraag: hoe laten we ze met elkaar praten? Dit deel duikt in het 'zenuwstelsel' van je kamer. Dit is een cruciale architecturale keuze die bepaalt hoe flexibel, schaalbaar en betrouwbaar je kamer zal zijn. We bekijken de opties, van de simpelste stroomkring tot moderne netwerken.
Het Zenuwstelsel: Hoe 'praat' alles met elkaar?
Dit is cruciaal. Hoe weet de deur dat de puzzel aan de andere kant van de kamer is opgelost?
Optie 1: De Puur Analoge Benadering (Simpele Stroomkring)
- Concept: De meest basale vorm van technologie, volledig zonder "hersenen" (geen Arduino, geen Pi, geen software). Dit is een simpele, gesloten stroomkring.
- Werking: Een verborgen knop is via een kabel direct aangesloten op een 12V voeding en een magneetslot. Als de speler op de knop drukt, wordt de stroomkring gesloten en gaat het slot open. Er is geen logica, alleen elektriciteit.
- Voordeel:
- Uiterst simpel: Kan niet makkelijker.
- Zeer betrouwbaar: Geen software die kan crashen. Als de bedrading goed is, werkt het altijd.
- Goedkoop: Vereist alleen een knop, een voeding, een slot en wat draad.
- Nadeel:
- Extreem beperkt: Kan letterlijk maar één ding: ALS A DAN B. Het kan geen status onthouden (de knop moet ingedrukt blijven of je moet een 'latching' relais gebruiken).
- Geen monitoring: De gamemaster heeft geen idee of het slot open of dicht is (tenzij je er een lampje parallel op aansluit in de GM-ruimte).
- Geen complexe logica: Onmogelijk voor "plaats 4 objecten en druk dan op de knop".
- Conclusie: Perfect voor een simpele, op zichzelf staande actie (bijv. een "geheime knop" die een la opent), maar onbruikbaar voor de bredere kamerlogica.
- Concept: De "ouderwetse" methode. In plaats van een netwerk, trek je een fysieke, aparte, eigen kabel van elke sensor naar je centrale controller (bijv. een Arduino of PLC) en een andere kabel terug naar elke actuator (slot, lamp, etc.).
- Werking: Een magneetcontact op een kistje is met een 20 meter lange kabel direct verbonden met 'Pin 5' op een Arduino Mega in de technische ruimte. De Arduino Mega stuurt via 'Pin 6' en een andere 15 meter lange kabel een magneetslot aan.
- Voordeel:
- Kan (in theorie) zeer robuust zijn. Een koperdraad heeft geen last van WiFi-storing.
- Simpel om te begrijpen: er is geen software, geen netwerk, geen IP-adres, alleen een elektrisch signaal.
- Nadeel:
- Kabelmanagement: Dit leidt al snel tot een onbeheersbare "kabelspaghetti" in je muren en plafonds.
- Inflexibiliteit: Wil je een puzzel 5 meter verplaatsen? Dan moet je nieuwe (lange) kabels trekken.
- Schaalbaarheid: Werkt prima voor 1 of 2 puzzels, maar is een nachtmerrie voor 10 puzzels.
- Link met Logica: Deze benadering is de onvermijdelijke partner van de 'Alles-in-één Arduino' (hier gaan we dieper op in in deel 3). De nadelen versterken elkaar.
- Concept (De "Postkantoor" Analogie): Stel je MQTT voor als een digitaal postkantoor (of een groot prikbord) voor al je apparaten. Dit postkantoor heeft één medewerker: de 'Broker'. Dit is de server (bijvoorbeeld die Raspberry Pi). De Broker doet zelf helemaal niets, behalve post sorteren en bezorgen.
- Werking (Uitgevers & Abonnees):
- 1. Uitgevers (Publishers): Dit zijn je sensoren. Bijvoorbeeld een magneetcontact op een kistje. Als het kistje opengaat, schrijft hij een briefje (een 'bericht') en stuurt dat naar het postkantoor met een heel specifiek adres (een 'topic') erop, bijvoorbeeld: kamer1/kistje/status. Op het briefje staat: OPEN.
- 2. Abonnees (Subscribers): Dit zijn je controllers of actuatoren. Bijvoorbeeld de software (Node-RED) die een magneetslot moet openen. Deze software heeft zich vooraf bij het postkantoor geabonneerd op het adres kamer1/kistje/status.
- 3. De actie: Het kistje gaat open. De sensor (Publisher) stuurt zijn briefje OPEN naar de Broker. De Broker (postkantoor) ziet: "Ah, Node-RED is geabonneerd op dit adres!" en stuurt het bericht direct door. Node-RED ontvangt OPEN en start zijn logica om de deur te openen.
- Voordeel (Ontkoppeling): Enorm betrouwbaar. Het kistje (de sensor) heeft geen idee wie dat bericht leest. Het hoeft Node-RED niet te kennen. Misschien luistert de verlichting ook wel mee (om rood te knipperen) én de geluidsspeler. Apparaten hoeven elkaar niet te kennen, alleen de Broker. Dit maakt je systeem ongelooflijk flexibel.
- Concept: Dit is wat de meeste professionele kamers doen. Ze combineren de beste elementen van alle bovenstaande opties, gebaseerd op de "juiste tool voor de juiste klus".
- Werking (Voorbeeld):
- De hoofdlogica van de kamer (puzzel A lost puzzel B op) draait via MQTT en Node-RED (Optie 3) voor flexibiliteit en monitoring.
- De verlichting en rookmachine worden aangestuurd via een PLC of DMX (zie later) voor robuustheid en sfeer.
- Een heel simpele "beloning" (een knop opent een la) wordt misschien wel puur analoog (Optie 1) gebouwd om een 'single point of failure' (één zwak punt dat de hele kamer platlegt) te vermijden.
- Een complexe, op zichzelf staande puzzel (bijv. een laser-doolhof) wordt misschien intern bestuurd door een lokaal Arduino-systeem (een 'mini-monoliet') die alleen maar één MQTT-bericht stuurt (laserdoolhof=OPGELOST) als de speler slaagt.
- Voordeel:
- Het beste van alle werelden: Je gebruikt de flexibiliteit van MQTT voor de hoofdlogica, de betrouwbaarheid van PLC/Analoog voor simpele taken, en de kracht van DMX voor sfeer.
- Nadeel:
- Complexiteit: Je moet meerdere systemen begrijpen en onderhouden.
- Integratie: Je moet zorgen dat alle systemen (bijv. de PLC en Node-RED) goed met elkaar kunnen 'praten' (vaak via MQTT of API's).
- Risicospreiding: Als je MQTT-broker crasht, werkt die ene analoge puzzel misschien nog steeds, maar wat ben je er mee als de rest van de kamer niet meer werkt?
- Je kan dan moeilijk alle onderdelen aan het dashboard koppelen, waardoor de gamemaster niet alle acties kan bijhouden.
Praktijkvoorbeeld: De Flesjespuzzel (Deel 2 - Zenuwstelsel)

In deel 1 hebben we onze 4 NFC-lezers aangesloten op een Arduino met netwerkaansluiting. Hoe 'praat' deze Arduino nu met de rest van de kamer?
- Zenuwstelsel: We kiezen overduidelijk voor Optie 3: De Netwerk (MQTT) Benadering. De Arduino verbindt (via een Ethernetkabel of WiFi) met het lokale netwerk en de centrale MQTT-broker.
- Berichten (Topics): De Arduino is een 'domme' rapporteur (een Publisher). Hij weet de oplossing van de puzzel niet. Hij rapporteert alleen wat hij 'ziet'. Telkens als een flesje wordt geplaatst of verwijderd, stuurt hij een bericht, bijvoorbeeld:
- kamer1/flesjes/plek1 = "RODE_FLES"
- kamer1/flesjes/plek2 = "LEEG"
- kamer1/flesjes/plek3 = "BLAUWE_FLES"
- kamer1/flesjes/plek4 = "LEEG"
- Ontkoppeling: De Arduino weet niet (en hoeft ook niet te weten) wat een magneetslot is of wie deze informatie leest. Hij zendt zijn status simpelweg naar het "postkantoor" (de Broker).
Verklaringen (Deel 2 - herhaling uit deel 1)
- Arduino: Een populair en gebruiksvriendelijk type microcontroller (MCU), ontworpen om één specifieke taak uit te voeren.
- MQTT (Message Queuing Telemetry Transport): Een lichtgewicht protocol (taal) voor apparaten om berichten naar elkaar te sturen via een centrale 'Broker' (het "postkantoor").
- Broker (MQTT): De centrale server (het "postkantoor") in een MQTT-netwerk die berichten ontvangt van 'Uitgevers' (sensors) en doorstuurt naar 'Abonnees' (controllers).
- API (Application Programming Interface): Een set van regels of een 'menukaart' die softwareprogramma's gebruiken om met elkaar te communiceren.
- Node-RED: Een visuele programmeertool waarmee je logica bouwt door 'blokjes' (nodes) met elkaar te verbinden. Zeer populair in combinatie met MQTT.