IoT is nothing without the physical things connected. Here is a simple example how to use Node-RED to connect things to Internet. 
Node-RED makes it easy to connect the physical world into the IoT. Wireless Sensors are one example of things, and applied in this exercise.
|  | 
| Raspberry Pi with JeeLink attached, and JeeNode USB at back. | 
JeeNode is a family of inexpensive AVR MCU boards with integrated 
RFM12 radio module. RFM12 is an inexpensive Sub-1GHz RF transceiver for unlicensed ISM bands (315,433,868,915MHz). JeeNodes are compatible with Arduino development environment and there is RFM12 library available, which makes it very easy to start experimentation.
|  | 
| System diagram | 
Raspberry Pi acts as a gateway receiving messages send by wireless nodes, processing the data and forwarding it to MQTT broker, Twitter, etc. All software development in RPi has been done in Node-RED.
Wireless sensor transmits following JSON messages:
{
  "topic": "egg",
  "payload": "jeenode"
}
The format is compatible with the internal representation of flow data elements in Node-RED. These messages are received by the serial port receiver node. 
| 
  | 
| Serialport handler in Node-RED | 
Handling serial port in Node-RED is very easy. After installing serialport package (npminstall serialport) and restarting the Node-RED service, there appears one new node in the Node-RED editor: serial. Here the serial port receiver has name "RFM12".
|  | 
| Node-RED serial port configuration window. | 
Messages received from serial port appear in 
msg.payload. If the message is JSON formatted, as is the case in this example, it is very easy to parse it to create a new 
msg with corresponding attributes. This function node called here as "JSON" is the only place in this example where Javascript/Node.js code is written manually.
|  | 
| Custom function to parse JSON messages received from serial port. | 
 | 
There may appear messages with different 
topics, thus a switch node is used to select proper processing flow for each 
topic. In this example, only messages with 
topic 'egg' are taken into further processing.
|  | 
| Configuration window for switch rules in Node-RED. | 
Simple as that! Now where are ready to do whatever whit the data received, to send it to MQTT broker or Twitter for example.
 
No comments:
Post a Comment