Professional Documents
Culture Documents
Dr. Nik
P.M Dr Fahmi
UTeM, FKE
26/2/2020
1
Learning Outcome
• How to install and run node-red
• My first node
• How to import node
• How to install new “palette”
• Writing my first function
• Dashboard
• MQTT
• Email & Telegram
2
How to install node-red
3
node-red INSTALLATION Next install node-red
Refer: https://nodered.org/docs/getting-started/windows
4
How to run node-red
Type ‘node-red’
5
Go to web-browser and type the IP –address of the node-red server
6
How to stop node-red server
7
My first node
Epoch time
8
Importing node
Click9 Import
Importing node
10
How to install new “palette”
11
Try opening the Watson link in your phone too 12
Writing my first function
Now choose the function node, and write a function to generate random number:
var zufall;
zufall=Math.floor(Math.random()*100+1);
msg.payload=zufall;
return msg;
Add a chart
14
Dashboard
Add new group. Give name “MSD” Add new tab. Give any name.
15
Dashboard
16
Dashboard
Click here to
show dashboard
List of “Tabs”
17
MQTT = Message Queuing Telemetry Transport
PUBLIC
MQTT = Message Queuing Telemetry Transport
https://github.com/mqtt/mqtt.github.io/wiki/public_brokers
However, using public MQTT servers means your data can be viewed by the public.
Alternatively, you can use your PC as MQTT server .
Go to this website for installation:
https://mosquitto.org/download/
PRIVATE
18
MQTT = Message Queuing Telemetry Transport (continued)
19
Using Smartphone as IoT-
Sensor Module
20
Sensor Data logger
• Remotely activate start of data collection
• Live data monitoring (at slower rate)
• Start data logging (at higher rate, no live monitoring)
• Stop
• or Specify duration (in mins) and stop automatically
• Data is stored in .csv
• Retrieve the .csv data by email
21
How to split JSON into individual values (source FB)
a = JSON.parse(msg.payload);
var t = { payload: parseFloat(a.temp)};
t.topic = "Temp";
var rh = { payload: parseInt(a.rh) };
rh.topic = "Humidity";
var co2 = { payload: parseInt(a.co2) };
co2.topic = "CO2";
var r = { payload: parseInt(a.r1) };
r.topic = "relay";
return [co2,t,rh,r];