Internet of Things/Node-RED

Uit Lab
Naar navigatie springen Naar zoeken springen

Node-RED

Node-RED [1] is een omgeving om grafisch een Internet of Things/node.js server-configuratie te maken. Dit is in het bijzonder bedoeld Je kunt dit gebruiken voor IoT-toepassingen, maar ook voor meer klassieke websites en web-apps.

Met behulp van de standaard-verzameling nodes kun je al eenvoudige toepassingen maken. Een toepassing bestaan uit één of meer "flows": knopen die via gerichte verbindingen verbonden zijn.

In het bijzonder kun je je toepassing koppelen aan allerlei andere interfaces. Zo kun je bijvoorbeeld MQTT-boodschappen afhandelen, en deze in een database opslaan. In een andere flow kun je een http GET-request afhandelen, met een pagina met deze MQTT-gegevens als respons.

Het installeren van Node-RED in Cloud9 (c9.io)

  1. maak een Node.js workspace aan (via het dashboard: Create new workspace)
  2. installeer volgens de standaard-methode hierin Node-RED (in een "bash" terminal-venster, als shell-commando)
    1. sudo npm install -g node-red
  3. kopieer de bijgaande file naar settings.js
    1. wget https://gist.githubusercontent.com/eelcodijkstra/9c0fb0afba8151060853/raw/50b85e72387ff5b3ab25b7fefd4f198bc073f6d3/settings.js
    2. je kunt dit bestand ook vinden op GitHub: settings.js. Via de Raw button krijg je het "kale"bestand in de browser.
  4. start Node-RED op met het commando:
    1. node-red -s settings.js
  5. je vindt het gebruikersinterface nu via de URL: workspacename-username-c9.io
    1. dit kun je ook vinden via het menu bovenin, links van "Run": Preview -> Preview running application
    2. dit is een publieke URL: je kunt dit via de browser op elke computer gebruiken
    3. (ook anderen kunnen dit gebruiken; met alle voor- en nadelen vandien)
  6. je kunt de server stoppen door middel van ^C (control-C) in hetzelfde terminal-venster.

Uitleg

Cloud9 biedt je een virtuele machine voor elke workspace. In deze virtuele machine kun je een webserver draaien. Al die verschillende virtuele machines moeten een klein aantal IP-adressen delen. Hiervoor bepaalt Cloud9 het IP-adres en het PORT-nummer voor elke virtuele webserver, respectievelijk process.env.IP en process.env.PORT. Deze gegevens moeten ingevuld worden in de node-red instellingen in het bestand settings.js. Dit is al voor je gedaan in het bestand dat je hierboven gekopieerd hebt.

Als je node-red op je eigen computer gebruikt, dan kun je de default-instellingen gebruiken: 127.0.0.1 (localhost), met port: 1880.

Voor gevorderden

Je kunt node-red starten en stoppen via een terminal (shell). Een alternatief is om een eigen "runner" aan te maken. Dan kun je de "Run" knop gebruiken.

Een eenvoudige chat-toepassing