When IBM STSM Dan Debrunner covers the screen of his Android phone with his hand, the camera LED becomes a flashlight—and it dims when he uncovers it. This action is possible thanks to two Bluemix services: Watson IoT Platform and Streaming Analytics.
Debrunner created a system where an IoT device sends events into the cloud, changing its behavior based on the results of a data analytics job running against the events. To get there, Debrunner uses an open source Java micro-kernel by Apache Edgent. It’s associated with a mobile app running on the Android that reads the value of the phone’s light sensor.
Seeing the light – how it works
If the light sensor’s value drops below a certain threshold, Apache Edgent sends an event via MQTT/SSL to an instance of the Watson IoT Platform service. (Watson IoT Platform recognizes the Android and accepts messages when set up as a specific device within its defined types.) Watson IoT Platform publishes events from the Android for its subscribers—one of which is Streaming Analytics.
When it receives the Android events, Streaming Analytics sends a command to the Watson IoT Platform with the identifier ‘light’. Apache Edgent on the Android subscribes to commands with the ‘light’ identifier from the Watson IoT Platform via Streaming Analytics. This command uses the Android camera’s API to turn on the LED.
Debrunner intends the joke: his is part of the ‘lightning talk’ series at the World of Watson conference.
While this demo gets you started, it only skims the surface of the powerful Apache Edgent and Streaming Analytics pairing. Edgent shines with thousands of devices at the edge of a network, balancing what it sends to MQTT with local feedback on the device itself. Edgent reduces costs related to the volume of data transmission and maintains local safeguards if emergencies occur on edge devices when network feedback is blocked. Streaming Analytics processes many data sources with complex analytic requirements for generating results, insights, and actions.
Share this post: