Giter VIP home page Giter VIP logo

satellite-tracker's Introduction

Build Status

CASIS Satellite Tracker

In this Code Pattern, we will build a satellite tracker using Node-RED and IBM Watson. A flow will be created for connecting a Watson Assistant Chatbot with a node-red-contrib-satellites node, as well as a web UI and worldmap node.

When the reader has completed this Code Pattern, they will understand how to:

  • Build a complex flow and web UI using simple Node-RED tools.
  • Implement a chatbot with Watson Assistant and embed it on a web page with Node-RED.
  • Get satellite information for the International Space Station (ISS) and use it in a web app.

Flow

  1. User interacts with Web UI to query the chat bot "Where is the ISS?".
  2. Web UI communicates with Node-RED running on IBM Cloud.
  3. Node-RED app running on the cloud processes info and performs HTTP requests.
  4. The Node-RED app communicates with Watson Assistant to extract intents and entities.
  5. Satellites orbiting the earth send position info which is streamed to Node-RED module.

Included components

  • Watson Assistant: Create a chatbot with a program that conducts a conversation via auditory or textual methods.

Featured technologies

  • Node-RED: Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
  • Artificial Intelligence: Artificial intelligence can be applied to disparate solution spaces to deliver disruptive technologies.
  • Node.js: An open-source JavaScript run-time environment for executing server-side JavaScript code.

Steps

Run locally

  1. Clone the repo

  2. Create Watson services with IBM Cloud

  3. Import the Watson Assistant workspace

  4. Get the Watson Assistant credentials

  5. Create a Node-RED Workspace

  6. Get a LocationIQ API key

  7. Install additional nodes and Perform either 7a or 7b

    7a. Build the Node-RED flow manually

    7b. Import the completed flow

1. Clone the repo

Clone the casis-satellite-tracker locally. In a terminal, run:

$ git clone https://github.com/IBM/casis-satellite-tracker

2. Create Watson services with IBM Cloud

Create the Watson Assistant service by providing a name of your choice and clicking Create.

Once created, you'll see either the credentials for username and password or an IAM apikey, either of which you should copy down to be used later. (Click Show to expose them).

3. Import the Watson Assistant workspace

Once you have created your instance of Watson Assistant, click Launch Tool, then click the Workspaces tab. Import the workspace by clicking the upload icon:

Click Choose a file and navigate to data/workspaces/SatTrackWorkspace.json in this repo. Click Import.

Get the Workspace ID by clicking the 3 vertical dots on the Workspaces tab. Save this for later.

4. Get the Watson Assistant credentials

The credentials for IBM Cloud Watson Assistant service can be found by selecting the Service Credentials option for the service. You saved these in step #2.

The WORKSPACE_ID for the Watson Assistant workspace was saved in step #3.

5. Create a Node-RED Workspace

From the the IBM Cloud Catalog navigate to Platform -> Boilerplates and choose Node-RED Starter. Choose a name and click Create.

Once the App has deployed, click on Visit App URL

Follow the instructions to Secure your Node-RED editor and Browse available IBM Cloud nodes. Click Finish and then click Go to your Node-RED flow editor.

6. Get a LocationIQ API key

You will need an API key from LocationIQ for the reverse geocoding function in this app.

  • Visit the LocationIQ website and scroll down to Excited?! Get a developer token!. Input your name and email and follow the instructions to get an API token. Save this for later, when you configure the credentials node.

7. Install additional nodes

You will need to install the following additional nodes:

Click the menu icon in the upper right and then Manage palette.

Click the Install tab and enter the name of the node you wish to install into the search bar, then click install.

7.a Build the Node-RED flow manually

Follow these instructions to Build the Node-RED flow manually.

7.b Import the completed Flow

We will walk through the steps to build the Node-RED flow, but you can import the completed Flow. Copy the flow to your machine's clipboard by navigating to data/Node/.

A flow can be moved to a Mac OS clipboard with:

$ pbcopy < ISS_flow.json

On Windows use:

$ cat ISS_flow.json | clip

On Linux use:

$ cat ISS_flow.json | xclip

Once the ISS_flow.json is on your clipboard, Click the upper-right menu icon and choose Import -> Clipboard. Paste the contents of your clipboard and click Import.

Sample output

Troubleshooting

Links

Learn more

  • Artificial Intelligence Code Patterns: Enjoyed this Code Pattern? Check out our other AI 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.

License

Apache 2.0

satellite-tracker's People

Contributors

scottdangelo avatar rhagarty avatar stevemart avatar markstur avatar kant avatar sanjeevghimire avatar tanmayb123 avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.