Description of Project

We use Apache Edgent to real-time analytics on the continuous streams of data coming from Environmental expansion board (X-Nucleo-IKS01A2) connected on STM32F401 Nucleo-64.Finally,send events from an Edgent application to the Watson IoT platform.

What is Edge Analytics?

Edge analytics is the collection, processing, and analysis of data at the edge of a network either at or close to a sensor, a network switch or some other connected device.

When you analyze on the edge, you can:

  • Reduce the amount of data that you transmit to your analytics server
  • Reduce the amount of data that you store

What is Apache Edgent?

Apache Edgent is a programming model and micro-kernel style runtime that can be embedded in gateways and small footprint edge devices enabling local, real-time, analytics on the continuous streams of data coming from equipment, vehicles, systems, appliances, devices and sensors of all kinds (for example, Raspberry Pis or smart phones). Working in conjunction with centralized analytic systems, Apache Edgent provides efficient and timely analytics across the whole IoT ecosystem: from the center to the edge.

Main Steps and Functionalities

Watson IoT platform:

  • Create an instance of the Watson IoT platform service.
  • Register your device on the service and save the service connection details in a file. We refer to this as the device configuration file.

Connect To Sensor:

  • Configure STM32 to connect and use Expansion Board.
  • Using STM32CubeMX and Mbed Software

Collect Data:

  • Serial port - capture raw data in COM port
  • Create Apache Edgent Sensor class

Edgent application:

  • Create Edgent application
  • Reading data from sensors and performing analytics on the data

Send events:

  • Send events stream to the IoT platform
  • Use the IotpDevice class to send the events to the platform.

Visualizing and monitoring application:

  • Adding the console web app
  • Use the the DevelopmentProvider class

Architecture and Technology

Apache Edgent
  • Version 1.2.0-incubating
  • supported on Java 8 SE
STM32
  • STM32F401 microcontrollers
  • X-NUCLEO-IKS01A2 expansion board
  • STM32CubeMX initialization code generator
RXTX
  • x64 Binaries
  • Version RXTX-2-2-20081207
Eclipse IDE
  • Version Neon

Hardware

Screenshots

EdgentCategoryConsol EdgentCategoryConsol EdgentCategoryConsol EdgentCategoryWatsonEvent EdgentCategoryWatsonState EdgentCategoryCode EdgentAggregationConsol EdgentAggregationConsol EdgentAggregationWatsonEvent EdgentAggregationWatsonState

Result of Research

Video Demo

Team Members

The team members are: Mostafa Ramezani, Soma Shekarchi.

Links to our LinkedIn accounts:

Slideshow links

Source code