This repository will not be updated. The repository will be kept available in read-only mode.
Skill Level: Any Skill Level
N.B: All services used in this repo are Lite plans.
Build an IoT project with a simualted device that sends events for data monitoring on Watson IoT Platform on IBM Cloud.
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:
- manage and control simulated devices
- control their speed
- understand and hands-on the IoT Platform
- Save and make use of this data with Cloudant
- Explore different ways on how to visualize your data
- 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:
- Create and deploy a Watson IoT Platform organization by using Cloud Foundry CLI.
- Build and deploy the simulate-iot sample.
- Connect the simulated motor device to Watson IoT Platform.
- Monitor and visualize device data by using the Watson IoT Platform dashboards.
To get started with Watson IoT Platform using a different IoT device, see the Getting started tutorial.
Click here to view the IBM Pattern for this project.
You will need the following accounts and tools:
- IBM Cloud account
- Bluemix CLI
- Optional: Git If you choose to use Git to download the code samples you must also have a github.com account. You can also download the code as a compressed file without a github.com account.
- Deploy Watson IoT Platform
- Deploy the node-red simulate iot app (make sure you rename your app)
- Store data in Cloudant database
- See raw data in Watson IoT Platform
- Visualize live data in 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.
Create a Node-Red boilerplate from IBM Cloud Catalog that will include Node-RED editor, Cloudant database and Watson IoT Platform service. Follow the steps and make sure to import the scripts into your Node-RED editor.
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.
- In a browser, access the app.
Open the following URL:https://YOUR_APP_NAME.mybluemix.net
Example:https://simulate-iot.mybluemix.net/
.
Make sure that the following instructions have been addressed in Step 1
:
- Copy 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 pressImport
. - Now ready for
https://YOUR_APP_NAME.mybluemix.net/motor
-
Make sure to change
https://simulate-iot.mybluemix.net/
to<YOUR_APP_NAME>.mybluemix.net/
inUI Displaysubmit
node. -
UI is accessible at
<YOUR_APP_NAME>.mybluemix.net/motor
or<YOUR_APP_NAME>.mybluemix.net/belt
-
For more information about registering devices, see Connecting devices.
- Continue with Step 4 - See raw data in Watson IoT Platform.
-
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://<ORG_ID>.internetofthings.ibmcloud.com
. - From the menu, select Devices and verify that your new device is displayed.
-
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.
-
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. -
Verify that the updated device data points that correspond to the published message are displayed in the Device Properties card.
Message example A:
{
"d":{
"id":"motor1",
"ts":1507477920588,
"ay":1.424,
"running":true,
"rpm":1.5,
"speed":"1",
"timestamp":"Sun, 08 Oct 2017 15:52:00 GMT",
"msgCount":1
}
}
To create a dashboard card to see live motor device data:
- On the same Device Centric Analytics board, click Add New Card and then select Line Chart.
- For card source data, click Cards.
A list of card names is displayed. - Select Devices I Care About and then click Next.
- 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
- Click Next.
- On the card preview page, select L, and then click Next.
- On the card information page, change the name of the title to
Motor data
and then click Submit. - Change the speed of your motor to see live data in your new card.
- Optional: Add a second data set to add acceleration data for the motor.
For more information about creating boards and cards, see Visualizing real-time data by using boards and cards.
- IBM Cloud
- IBM Cloud Documentation
- IBM Cloud Developers Community
- IBM Watson Internet of Things
- IBM Watson IoT Platform
- IBM Watson IoT Platform Developers Community
- Artificial Intelligence Code Patterns: Enjoyed this Code Pattern? Check out our other AI Code Patterns.
- Data Analytics Code Patterns: Enjoyed this Code Pattern? Check out our other Data Analytics Code Patterns
- AI and Data Code Pattern Playlist: Bookmark our playlist with all of our Code Pattern videos
- With Watson: Want to take your Watson app to the next level? Looking to utilize Watson Brand assets? Join the With Watson program to leverage exclusive brand, marketing, and tech resources to amplify and accelerate your Watson embedded commercial solution.
- Watson Studios: Master the art of data science with IBM's Watson Studios
- PowerAI: Get started or get scaling, faster, with a software distribution for machine learning running on the Enterprise Platform for AI: IBM Power Systems
- Spark on IBM Cloud: Need a Spark cluster? Create up to 30 Spark executors on IBM Cloud with our Spark service
- Kubernetes on IBM Cloud: Deliver your apps with the combined the power of Kubernetes and Docker on IBM Cloud
This code pattern is licensed under the Apache Software License, Version 2. Separate third party code objects invoked within this code pattern are licensed by their respective providers pursuant to their own separate licenses. Contributions are subject to the Developer Certificate of Origin, Version 1.1 (DCO) and the Apache Software License, Version 2.