Dogan Ibrahim (Groot-Brittannië)

 

De afgelopen jaren zijn blokgebaseerde visuele programmeertools steeds verder ontwikkeld en neemt het gebruik ervan hand over hand toe. Het idee hier is dat de programmeur een set visuele ‘blokken’ krijgt plus alles wat nodig is, is om deze bouwstenen op een logische manier te koppelen om het gewenste applicatieprogramma te creëren. Node-RED is een open source visuele blokgebaseerde programmeertool die nodes bevat voor het uitvoeren van uiterst complexe taken, waaronder internettoegang, Twitter, e-mail, HTTP, Bluetooth, MQTT en het aansturen van de GPIO-poorten van populaire computers zoals de Raspberry Pi , Arduino, ESP32 enzovoort. Het leuke van Node-RED is dat de programmeur niet hoeft te leren hoe hij of zij complexe programma’s moet schrijven. Een e-mail kan bijvoorbeeld worden verzonden door een paar knooppunten samen te voegen en een paar regels eenvoudige code te schrijven.

Node-RED installeren

Node-RED is al geïnstalleerd op Raspberry Pi en kan vanaf het bureaublad worden gestart (figuur 1) of door de volgende opdracht in te voeren vanaf de opdrachtregel (figuur  2):

 

pi@raspberrypi: ~ $ node-red-start

Figuur 1. Node-RED starten op de Raspberry Pi.
Figuur 2. Node-RED starten vanaf de opdrachtregel.

Node-RED wordt gestart als een service; na de start verschijnt een lijst met geldige opdrachten om het te starten en te stoppen, zoals te zien in figuur 2. Merk hier op dat 192.1681.202 het IP-adres is van de Raspberry Pi van de auteur. U kunt het IP-adres van uw eigen Raspberry Pi gemakkelijk vinden door de opdracht ifconfig in te voeren vanaf de opdrachtregel; zoek dan de regel die begint met wlan0:

Nu moet u uw browser starten en de volgende link op uw PC invoeren om de Node-RED GUI in uw browser te starten:

 

https://<uw IP-adres>:1880

 

Voor Raspberry Pi van de auteur is dit bijvoorbeeld:

 

https://192.168.1.202:1880

 

Figuur 3 toont het Node-RED-opstartscherm. Dit bestaat in principe uit 3 secties: links ziet u een lijst met nodes die standaard beschikbaar zijn wanneer het programma is geïnstalleerd. Gebruikers kunnen echter extra knooppunten uit verschillende internet-bronnen toevoegen. Het middelste gedeelte is het werkgebied waar de te gebruiken knooppunten naar toe worden gesleept en neergezet om te worden gekoppeld tot een flow-programma. Rechts ziet u het info- en debuggebied, dat erg handig kan zijn tijdens het ontwikkelen van programma’s.

Figuur 3. Het Node-RED startmenu.

De eenvoudigste manier om te begrijpen hoe u Node-RED moet gebruiken, is natuurlijk een eenvoudig voorbeeld uit te proberen. In dit voorbeeld is een LED aangesloten op GPIO 2 van de Raspberry Pi via een 220Ω-serieweerstand, zoals getekend in figuur 4.

Figuur 4. Schema van het voorbeeld.

In dit eenvoudige project gaan we de LED aansturen vanuit een Node-RED flow-programma. We gaan stapsgewijs te werk (zie het stroomdiagram in figuur 5):

Figuur 5. Flow-diagram van het voorbeeld.
  • Klik, sleep en plaats een inject node naar het werkgebied. Deze nodes worden gebruikt om berichten (een string, een getal enzovoort) in een flow te ‘injecteren’. In dit voorbeeld injecteren we 1 of 0 om de LED respectievelijk AAN of UIT te zetten.
  • Dubbelklik op de inject node om die te configureren. Stel de Payload in op ‘number’ en voer 1 in. Als u op het vierkante vakje links van deze node klikt, verschijnt ‘1’ weergegeven om de LED in te schakelen.
  • Stel het Topic van de inject node in op ON zodat we de functie van deze node kunnen zien. Klik op Done om het configuratiescherm te sluiten.
  • Klik, sleep en plaats een andere inject node zoals in figuur 5, stel de Payload in op 0 en het Topic op OFF. Als u op deze node klikt, wordt een ‘0’ uitgevoerd om de LED uit te schakelen.
  • Klik, sleep en plaats een rpi gpio out node in het werkgebied. Deze node wordt gebruikt om digitale of PWM-data naar een GPIO-poort van de Raspberry Pi te sturen. Verbind de node zoals getoond in figuur 5.
  • Dubbelklik op de rpi gpio out node om deze te configureren zoals getoond in figuur 6. Stel Pin in op GPIO2, Type op Digital output klik op Initialise pin state en stel de beginstatus in op 0. Geef de node de naam LED. Klik op Done om het configuratiescherm te sluiten.
Figuur 6. Configureren van de RPi gpio-out node.

Hiermee is ons flow-programma afgerond. Klik op Deploy om het programma te compileren en de uitvoerbare code te genereren. Zorg ervoor dat er in deze fase van het ontwerp geen foutmeldingen optreden. Klik op de vierkante knop aan de linkerkant van de ON inject node; de LED moet nu oplichten. Als u op de knop van de andere inject node klikt, wordt de LED uitgeschakeld.

Maar er is meer!

In deze inleiding hebben we aan de hand van een uiterst eenvoudig voorbeeld gezien wat Node-RED is en hoe het kan worden gebruikt. Een van de sterke punten van Node-RED is dat het wordt ondersteund door grote communities en dat er veel nodes zijn ontwikkeld door derden, die dan gratis beschikbaar zijn en in complexe projecten kunnen worden ingezet. De openweathermap node presenteert bijvoorbeeld het weer in uw omgeving (temperatuur, vochtigheid, luchtdruk, windsnelheid, neerslaggegevens enzovoort). En dat overal ter wereld. Een weerbericht-project kan in minder dan een uur worden gebouwd met behulp van deze en een paar extra nodes. Het uitvoeren van zo’n project met behulp van externe sensoren is meestal kostbaar, en ook kan de ontwikkeling veel tijd in beslag nemen. Node-RED ondersteunt op UDP en TCP gebaseerde WiFi-communicatie met een enkele node. Met deze functie kunnen gebruikers draadloze gegevens verzenden en ontvangen van andere WiFi-apparaten zoals mobiele telefoons, tablets, PC’s enzovoort.

Enkele andere knooppunten die voor u interessant kunnen zijn en die gratis vanuit het internet kunnen worden geïnstalleerd, zijn:

 

  • Dashboard
  • Bluetooth
  • Amazon Alexa
  • LCD (I2C en parallel)
  • Wereldkaart
  • A/D-converter
  • Ultrasone sensor

 

Node-RED is niet alleen voor de Raspberry Pi. Het kan ook worden gebruikt (hoewel beperkt) met de Arduino- en ESP32-processoren, of met een combinatie van Raspberry Pi en Arduino, of Raspberry Pi en ESP32.

Een van de belangrijkste Node-RED nodes is de function node. Deze node kan worden geconfigureerd met meerdere uitgangen; gebruikers kunnen programmacode schrijven tijdens de configuratie van dit knooppunt. Nadat we bijvoorbeeld de lokale weergegevens hebben verkregen met behulp van de openweathermap node, willen we daar misschien de lokale temperatuur- en vochtigheidsgegevens uit ophalen. Dat kan eenvoudig worden gerealiseerd door een paar instructies in de function node te schrijven. Geïnteresseerde lezers vinden meer informatie via de weblinks [1] [2] [3] [4] [5] of in het Node-RED-boek van de auteur.

 

(200164-04)

 

----------------------------------------------------------------------------------------------------------------------

Wilt u meer van die fantastische Elektor-artikelen?

 

--> Neem vandaag nog een abonnement op Elektor - u mist nooit meer een artikel, project of handleiding!

----------------------------------------------------------------------------------------------------------------------