# 4. Node-RED

Stel we willen iets doen met de informatie wat naar de broker wordt gestuurd, bijvoorbeeld:

  • Automatiseringen instellen
  • Een notificatie sturen
  • Een IoT appraat bedienen die niet werkt met MQTT.

Hiervoor moet je applicatie maken die verbinding kan maken met je MQTT-Broker en waarop je daarna zelf complexe programmatuur moet schrijven om je systeem te laten doen wat je wilt. Dat klinkt je waarschijnlijk in de oren als een hoop werk. Echter is er een applicatie bedacht waarop je zeer complexe automatiseren kan programmeren zonder ook maar een regel code te schrijven. Dit is Node-RED. In Node-RED kan je via code-blocks geavanceerde automatiseren uitvoeren of visualiseren. Gelukkig voor ons zit MQTT ingebouwd en kan Node-RED fungeren als een MQTT-Client. Wanneer je Node-RED wil installeren kan je handleidingen vinden voor diverse systemen op de website van Node-RED.

# Automatiseren met Node-RED

Wanneer je Node-RED opent, zie je een canvas met aan de linkerkant een gereedschapskist en aan de rechterkant een eigenschappenvenster. Je kunt knooppunten (nodes) vanuit de gereedschapskist naar het canvas slepen en verbinden om flows te maken.

Laten we een eenvoudige flow maken die een bericht op een webpagina weergeeft wanneer er op een knop wordt geklikt.

  1. Sleep een "Inject" knooppunt naar het canvas. Dit knooppunt genereert een bericht wanneer je erop klikt.
  2. Sleep een "Debug" knooppunt naar het canvas. Dit knooppunt zal het bericht weergeven.
  3. Verbind de "Inject" knooppunt met de "Debug" knooppunt door een lijn te trekken tussen de twee.
  4. Klik op de "Deploy" knop in de rechterbovenhoek van Node-RED om je flow te activeren.
  5. Ga naar de webinterface van Node-RED en klik op de "Inject" knop. Je ziet het gegenereerde bericht in het "Debug" venster.

# Opdracht 2

Verken Node-RED en de vele Nodes dat je tot je beschikking hebt, waaronder MQTT! Probeer een flow te maken samen met je ESP32. Stuur bijvoorbeeld iedere 10 seconden een bericht naar je display of download de Node-RED Dashboard plugin en bouw je eigen dashboard waarop jouw informatie zichtbaar wordt!