Topics covered in IoT Tutorial

General presentation of oneM2M standard

Machine-to-Machine (M2M) concept is one of the main features of Internet of Things (IoT). It promises to inter-connect billions of devices in near future covering various domains from building, energy, healthcare, industrial, transportation, retail, security to environmental services. However, the M2M market expansion opportunities are not straight forward. In fact, M2M is suffering from a high vertical domain fragmentation, which has increased the R&D cost in each specific domain. Various vertical M2M solutions have been designed independently and separately for different applications, which inevitably impacts or even impedes large-scale M2M deployment. To bridge this gap, several Standards Organization released the oneM2M standard for a common M2M service platform, an end to end M2M service platform with the intermediate service layer that is key component of the horizontal M2M solution. These standards based platform follows a RESTful approach with open interfaces to enable developing services and applications independently of the underlying network, thus easing the deployment of vertical applications and facilitating innovation across industries.

Eclipse OM2M: an open-source oneM2M-compliant IoT platform 

In this tutorial, you will discover the Eclipse OM2M project which is an open source implementation of the oneM2M standard. OM2M follows a RESTful style with open interfaces to enable developing applications and exchanging data independently of the underlying network. It proposes a modular architecture running on top of an OSGi runtime, making it highly extensible via plugins. OM2M plugins enables multiple communication protocols binding, reuse of existing remote devices management mechanisms (e.g. LWM2M), and interworking with existing legacy devices (e.g. ZIGBEE, KNX, EnOcean, Z-Wave, etc.).

Eclipse OM2M: Interaction with OM2M platform (practice)

First, you will learn how to build the OM2M project from source code, configure the platform, and start OM2M server and gateways. After a successful mutual authentication, the OM2M server and gateways become ready to exchange data. Second, the OM2M web interface will be used to seamlessly browse the resource tree of each M2M machine. Third, a simple HTTP client will be used to request the OM2M RESTful API and handle the available primitive procedures. You can for example register new applications, create containers, store data, request information, publish and subscribe to events, discover resources according to filter criteria, manage access rights, and handle groups.

Configuration of an IoT device: NodeMCU (practice)

During this activity a real device will be used. The first step will be to install, configure and validate the development tools needed for this Arduino-based device. A first application using a brightness sensor and a led will validate this step.

Integration of an IoT device into OM2M platform through oneM2M (practice)

The objective of this practice will be to connect a physical device to a oneM2M architecture, to be able to simulate different virtual devices and then to use them in an IoT application. First, we will develop the code to declare a device in oneM2M, to push information from sensors of the device and also to control actuators of the device. In a second time an application will be created to use the device thus connected but also a set of virtual devices at the same time.

Fast prototyping of complex IoT applications (practice)

IoT applications need to interact with sensors and actuators but also with general services available on the Internet: social networks, email, dashboards, etc. In this last practice, we will use Node-RED extension of OM2M to make fast prototyping of complex applications.  A first simple example will allow to interact with oneM2M architecture and a second example will allow to rapidly develop a dashboard for your IoT application.