Skip to content

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

Notifications You must be signed in to change notification settings

WilliamMartini/iot-starterkit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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".

About

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.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 35.2%
  • Java 24.1%
  • JavaScript 23.0%
  • Other 8.5%
  • Objective-C 8.0%
  • HTML 1.2%