IBM/manage-control-device-node-red

Name: manage-control-device-node-red

Owner: International Business Machines

Description: Create, connect and simulate devices with Watson Data Platform and Node-Red

Created: 2017-10-10 02:08:38.0

Updated: 2018-04-27 17:52:30.0

Pushed: 2018-04-27 17:52:29.0

Homepage: https://developer.ibm.com/code/patterns/develop-an-iot-app-with-node-red-and-watson/

Size: 1218

Language: JavaScript

GitHub Committers

UserMost Recent Commit# Commits

Other Committers

UserEmailMost Recent Commit# Commits

README

Skill Level: Any Skill Level
N.B: All services used in this repo are Lite plans.

Architecture Diagram

Connecting a motor device as a simulated device

Build an IoT project with a simualted device that sends events for data monitoring on Watson IoT Platform on IBM Cloud.

Overview and goal

This guide steps you through the process of connecting devices to Watson IoT Platform, monitoring and acting on device data.

The outcome of this project will help you:

  1. manage and control simulated devices
  2. control their speed
  3. understand and hands-on the IoT Platform
  4. Save and make use of this data with Cloudant
  5. Explore different ways on how to visualize your data
  6. Explore different ways to build an UI with node-red

We set up a connected simulated motor and use it to send IoT data to Watson IoT Platform.

The app self-registers a device with Watson IoT Platform and automatically sends well-formatted data to the platform.

As part of this guide, you will:

To get started with Watson IoT Platform using a different IoT device, see the Getting started tutorial.

Architecture Diagram

Click here to view the IBM Pattern for this project.

Prerequisites

You will need the following accounts and tools:

Deploy to IBM Cloud

If you want to deploy directly to IBM Cloud, click on Deploy to IBM Cloud button below to create a IBM Cloud DevOps service toolchain and pipeline for deploying basic motor with an IoT device that sends monitoring data to Watson IoT Platform on IBM Cloud, else jump to Steps

Deploy to IBM Cloud

After deploying the application, please continue with Step 4 - See raw data in Watson IoT Platform.

You can also create a Node-Red app manually from IBM Cloud Catalog.

Steps

1) Deploy Watson IoT Platform 2) Deploy the node-red simulate iot app (make sure you rename your app) 3) Store data in Cloudant database 4) See raw data in Watson IoT Platform 5) Visualize live data in Watson IoT Platform

Step 1 - Deploy Watson IoT Platform

Watson IoT Platform provides powerful application access to IoT devices and data to help you rapidly compose analytics applications, visualization dashboards, and mobile IoT apps. The steps that follow will deploy an instance of the Watson IoT Platform service with the name simulate-iot in your IBM Cloud environment. If you already have a service instance running, you can use that instance with the guide and skip this first step. Just make sure that you use the correct service name and IBM Cloud space when you proceed through the guides.

  1. From the command line, set your API endpoint by running the bx api command.
    Replace the API-ENDPOINT value with the API endpoint for your region.

    pi <API-ENDPOINT>
    

    Example: bx api https://api.ng.bluemix.net

    Region API Endpoint
    US South https://api.ng.bluemix.net
    United Kingdom https://api.eu-gb.bluemix.net
  2. Log into your IBM Cloud account.

    ogin -u YOUR_BLUEMIX_USERNAME -o org_name -s space_name
    

    If prompted, select the organization and space where you want to deploy Watson IoT Platform and the sample app. Note example a) org: john.doe@ibm.com b) space = dev

  3. Deploy the Watson IoT Platform service to IBM Cloud.

    reate-service iotf-service iotf-service-free YOUR_IOT_PLATFORM_NAME
    

For YOUR_IOT_PLATFORM_NAME, use simulate-iot.
Example: bx create-service iotf-service iotf-service-free simulate-iot

Step 2 - Deploy the sample simulate IoT web application

The sample app lets you simulate a IBM Cloud connected industrial devices.

You can start and stop the motor and adjust the speed of the motor. Every change to the motor is sent to IBM Cloud in the form of an MQTT message that is displayed in the app. You can monitor the motor behavior by using the default dashboard cards.

This sample is using a motor which is a simulated device and can be replaced with any device to perform the same behavior.

simulate iot app

To deploy this setup from a terminal instead, you can use the following commands:

pi https://api.ng.bluemix.net
ogin -u YOUR_BLUEMIX_USERNAME -o org_name -s space_name
reate-service iotf-service iotf-service-free simulate-iot
pp push YOUR_APP_NAME

To troubleshoot errors, use bx app logs YOUR_APP_NAME --recent command (i.e. bx app logs simulate-iot --recent).

 from flow folder the content of flow.txt into `https://simulate-iot.mybluemix.net/red` after you setup an username/password. Paste it under the Menu tab -> Import -> Clipboard and press Import. Now ready for `https://YOUR_APP_NAME.mybluemix.net/motor`
Step 3 - Cloudant database will be part of this step 2 setup

Live Demo

simulate iot app

How to create an API key and token in Watson IoT Platform

Step 4 - See raw data in Watson IoT Platform
  1. Verify that the device is registered with Watson IoT Platform.

    • Login to your IBM Cloud dashboard at: https://bluemix.net
    • From your list of services, click the simulate-iot-iotf-service Watson IoT Platform} service.
    • Click Launch to open the Watson IoT Platform dashboard in a new browser tab.
      You can bookmark the URL for easy access later.
      Example: https://*iot-org-id*.internetofthings.ibmcloud.com.
    • From the menu, select Devices and verify that your new device is displayed.
  2. View raw data

    • From the menu, select Boards.
    • Select the Device Centric Analytics board.
    • Locate the Devices I Care About card and select your device.
      The device name is displayed in the Device Properties card.
  3. Send sensor data to the platform.
    The device sends data to Watson IoT Platform when sensor readings change. You can simulate this data sending by stopping, starting or changing the speed of the motor.

  4. Verify that the updated device data points that correspond to the published message are displayed in the Device Properties card.
    Message example A:

    
    {
    d":"motor1",
    s":1507477920588,
    y":1.424,
    unning":true,
    pm":1.5,
    peed":"1",
    imestamp":"Sun, 08 Oct 2017 15:52:00 GMT",
    sgCount":1
    
    
    
Step 5 - Visualize live data in Watson IoT Platform

To create a dashboard card to see live motor device data:

  1. On the same Device Centric Analytics board, click Add New Card and then select Line Chart.
  2. For card source data, click Cards.
    A list of card names is displayed.
  3. Select Devices I Care About and then click Next.
  4. Click Connect new data set and enter the following values for the data set parameters:
    • Event: eventData
    • Property: speed
    • Name: Motor Speed
    • Type: Number
    • Unit: rpm
  5. Click Next.
  6. On the card preview page, select L, and then click Next.
  7. On the card information page, change the name of the title to Motor data and then click Submit.
  8. Change the speed of your motor to see live data in your new card.
  9. Optional: Add a second data set to add acceleration data for the motor. speed-chart

For more information about creating boards and cards, see Visualizing real-time data by using boards and cards.

live-demo watch-video

Useful links

Learn more

License

Apache 2.0


This work is supported by the National Institutes of Health's National Center for Advancing Translational Sciences, Grant Number U24TR002306. This work is solely the responsibility of the creators and does not necessarily represent the official views of the National Institutes of Health.