Giter Site home page Giter Site logo

williammartini / iot-starterkit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from sap-archive/cloud-platform-iot-starterkit

0.0 1.0 0.0 13.2 MB

This repository provides information and code for working with SAP HANA Cloud Platform (HCP) IoT Services. It enables users to get an End-to-End IoT solution with either real hardware or simulators up and running fast and start their own extensions and usage based on this.

License: Apache License 2.0

Java 24.12% HTML 1.22% JavaScript 23.01% Python 35.12% CSS 0.02% Arduino 8.53% Objective-C 7.97%

iot-starterkit's Introduction

Starter Kit for the SAP HANA Cloud Platform Internet of Things (IoT) Services

A Starter Kit for working with the SAP HANA Cloud Platform IoT Services

The document and the code snippets will provide a complete end to end example of how to use the IoT Services. You will learn how to enable the Services as well as how to send messages and how to receive push messages. Moreover, the samples for data consumption are provided.

Table of contents

HCP IoT Services Overview

SAP HANA Cloud Platform IoT Services are designed to facilitate and support the implementation of Internet of Things applications. The services provide interfaces for registering devices and their specific data types, sending data to a data base running in SAP HANA Cloud Platform (HCP) in a secure and efficient manner, storing the data in HCP as well as provide easy access to the data stored.

The respective services are distributed across two main components: Remote Device Management Service (RDMS) and Message Management Service (MMS). Moreover, there is a web-based interface called IoT Services Cockpit which provides easy access to the various services.

IoT Service Architecture

MMS provides various APIs that can be used by devices to send data to the SAP HANA Cloud Platform. It processes the data and persists the data in the attached databases. There may be other use cases, though, which require forwarding the data to other Message Brokers or Event Stream Processors.

The Internet of Things Services Cockpit is the main interface for users to interact with the Remote Device Management Service (RDMS). It can be used to register new devices, to define the schema of messages (devices types and message types) they can send and/or receive, as well as to establish the necessary trust relationship devices need to interact with MMS. The Internet of Things Services Cockpit and RDMS are provided as Cloud services and can be used through subscriptions.

IoT Business Applications

IoT Business Applications can be built using either the HANA XS, the Java or HTML5 mechanisms provided by the HCP infrastructure.

Getting started in the Cloud

  1. Get HANA Cloud Platform Developer Account
  2. Enable Internet of Things Services
  3. Create Device Information in Internet of Things Services Cockpit
  4. Deploy the Message Management Service (MMS)

Sending messages from the device

Consuming the messages sent from the device

Pushing messages to the device

Receiving the messages sent to the device

Integrated examples for IoT Devices

In order to get you up and running fast we provide examples that you may use both with or without specific IoT Device hardware.

Working with device simulators

If you want to take a quick start with a device simulation that runs on your desktop you can use two Python programs with a graphical user interface. In order to run the programs on your desktop (Windows and OSX have been tested) you need a Python installation and the urllib3 module installed. Please refer to the these instructions for guidance on how to meet these preconditions.

With the usage of

  • the device simulation that you can start with python iot_starterkit_desktop.py and that produces the User Interface shown below

Device Simulator

  • a program to send messages to the simulated device and switch its LED on or off that you start with python iot_starterkit_push_ui.py and that produces the User Interface shown below

Push UI

you can already experience the functionality of an end-to-end scenario.

Working with real IoT hardware

We provide instructions and code for usage with a Raspberry Pi and a GrovePi shield that lets you attach various input and output peripherals. In the example we use a Slide Potentiometer for the input of values that can be changed by the user as well as an LED and an OLED graphical display for visible output. You should be able to comfortably purchase these components and assemble them without having to solder.

Starterkit running

Please follow these steps to setup and use the Raspberry Pi with the shown peripherals and the example application.

In addition to the Raspberry Pi we have already used the HCP IoT Services on a variety of other hardware.

Security aspects

Security plays a very important role for the deployment of IoT scenarios in productive environments. The Starterkit examples concentrate of the aspect of demonstrating basic IoT Services mechanisms. Inherently, specific usable security mechanisms differ for different programming languages, frameworks or hardware platforms. Thus, before making use of code snippets or integrated examples in productive scenarios please pay additional attention on hardening against potential attacks. We will continously provide further guidance on potential attack vectors and how to harden your solution on the dedicated Security aspects page.

Revision history and related advice

The HCP IoT Services are continously developed further. Please pay attention to the dedicated page Revision history and related advice to ensure you get specific information about potentially necessary modifications to your older usage examples.

What comes next

The initial version of the IoT Starter Kit for HCP IoT Services as first published at SAPPHIRE 2015 intentionally tries to provide a simple and easy to reproduce example. We welcome feedback on the adaptation of the HCP IoT Services and your own usage examples via the SCN page "Try out IoT Service on SAP HANA Cloud Platform".

iot-starterkit's People

Contributors

levinanton avatar rac01 avatar ricoruszewski avatar mameling avatar agraebe avatar andrepreussner avatar jay-sdk avatar jhoenger avatar thomasjanke avatar

Watchers

William Martini 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.