This course assumes some prior knowledge of Node-RED.
And in this lecture, I'll give a quick summary of
the features the course expects you to know.
If you're not familiar with any of the features mentioned in the lecture,
your advised to take time to familiarize yourself with them before continuing the course,
as some of the assignment work may require you to make use of them.
The course also uses the IBM Cloud.
A free account is available on the cloud and in week two of the course,
we provide access to promotional codes that provide additional resource on the IBM Cloud,
which enable you to complete the coursework and
all the assignment work without needing to pay for cloud services.
You will need an IBM Cloud account to be able
to complete all of the assignment work on the course.
And the course assumes you have basic working knowledge
of the IBM Cloud and using Node-RED on the IBM cloud.
The Coursera course, a developer's guide to the Internet of
Things teaches all the prerequisite knowledge on Node-RED and the IBM cloud.
Throughout this class, the lectures will use
Node-RED running on the IBM cloud or a Raspberry Pi.
There are a few sections that use additional services available in the cloud environment,
but most of the content can be run on a Raspberry Pi
on your laptop or workstation or from the IBM Cloud.
When running on the IBM Cloud,
you should deploy the IoT Boilerplate which provides a Node-Red runtime,
a noSQL database in addition to the Watson Internet of Things platform.
After deploying the Boilerplate,
you must enable continuous delivery to be able
to edit the configuration files for the Node-RED runtime.
This course assumes you are able to navigate to the Continuous Delivery Toolchain,
open the online editor and then edit required files.
Save the files and push them into the Git repository
to cause an automatic redeployment of the Node-RED application.
After you have Node-RED installed and running on your preferred environment,
you can access the editor using the browser.
Port 1880 is a standard port to access Node-RED,
but you can alter the port as needed in the server configuration.
On the IBM Cloud, the default port for HTTP or
HTTPS is used so no port needs to be specified.
You create flows by adding nodes from the pallet
of available nodes and then connecting them up.
You can find additional nodes available for Node-RED
using the flows page of the Node-RED website.
The link to the site is in the resources section for the course.
You can add additional nodes to the pallet in a number of ways.
From version node 0.15 of Node-RED,
you can add nodes using the web UI but only if
additional system packages are not required before the node can work.
All required dependencies must be satisfied,
and the node documentation, available using the links on
the package page of the Node-RED site, should
provide details of any prerequisite software required.
The other way to install nodes is to use npm on the command line.
You can install globally using npm install -g,
but it's more usual to install to the .node-red directory,
which is in your home directory.
Just run npm install and then provide the package name.
Again, look at the node documentation to see if there are
any additional system packages required before installing the node.
On the IBM Cloud,
you should add the node packages to the package.json
file and then redeploy the application to add additional nodes,
as this ensures the nodes will be available on all instances of the application.
Using npm on the command line or using
the web UI will work for single instance deployments,
but adding to the package.json
file will ensure the additional nodes are always available.
The material in this course assumes you are familiar with the following nodes.
The debug node allows you to see messages flowing out of a node.
You should know how to inspect the default payload property,
navigate through arrays and objects in the debug panel,
and know how to inspect a specific property or
access all properties of the object leaving a node.
The inject node allows you to manually initiate
a flow or be configured to trigger a flow at startup or at regular intervals.
You should know how to configure the node and how to set
the payload of the outgoing message to the correct type and value.
The function node allows you to create
bespoke functionality not available in other nodes.
You should be able to use the function node to run JavaScript code.
You should understand how to use the global and local context objects,
how to use the various logging functions.
You should also understand how to make
additional JavaScript packages available to your code within a function node.
And this uses the function global context property in the settings file.
And then you have to add the package to the package.json file.
The HTTP input and response node allow you to create
a web endpoint that initiates a flow to generate the response.
You should know how the basic operation of these nodes work,
but in week three, we look at more advanced uses of these nodes.
The HTTP request node allows you to call a web endpoint.
You should know how to use this node to make a web call.
But again, in week three,
we cover the use of this node.
The template node provides the ability to provide
templated content containing tokens that should be replaced with live data.
You should know how to create a mustache-style template
with tokens that will be replaced when the node receives an incoming message.
You should also be familiar with how to create optional sections within the template,
which depend on the presence or absence of a property.
The switch node provides capabilities
to direct messages down different branches of a flow.
You should know the basic functionality of the switch node,
but in week two, we're going to look at some of the more complex options available.
The change node allows you to modify the content of a flow or context object.
You should understand the basic operations, but again,
in week two, we're going to look at some of the more advanced options available.
If any of the topics talked about in this video aren't familiar to you,
I'd recommend you do a little additional learning,
either using the developer's guide to IoT course or
your own research to ensure you understand
all the topics covered before progressing on the course.