License

Copyright © 2014 Michael Schloh von Bennewitz Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the document entitled “fdl-1.3.txt”

Interfacing With
Mobile IoT Nodes

Building network embedded IoT devices with JavaScript

Presented by: Michael Schloh von Bennewitz
Download at: dev.europalab.com/iotintmob/

In this hour…


  • Market expansion and growth
  • Hardware and software overview
  • Embedded and mobile complement
  • IoT messaging and communication
  • A word from developers at Intel
  • Example JavaScript developer tools

Market growth


  • IDC: $8.9 trillion market in 2020
  • Gartner: 26 billion IoTs by 2020
  • ABI Research: 30 billion IoTs by 2020
  • Technology providers growing deal size

Market growth

IoT growth graph

Web history


  • Web 1.0
  • Web 2.0
  • Social web
  • Mobile web
  • Ubiquitous web

IoT platforms


  • Arduino shields
  • Galileo, Edison
  • Raspberry, Cubie
  • OS layer, Yocto
  • Application layer

IoT platforms

Smart utility metre

IoT platforms

Smart Nest thermostat

IoT platforms

Geolocation beacon

IoT platforms

Autonomous personal drone

IoT platforms

Smart wristwatch

IoT platforms

Intel Galileo SoC

IoT platforms

Intel Edison SoC

IoT platforms

Thats just wrong

Mobile complement


  • Defining a IoT
  • Redefining mobile
  • Case study Yocto/Galileo
  • Case study Tizen/Phone UX

IoT messaging


  • Star mesh topologies
  • WiDi, NFC, and IPv6
  • MQTT, nesting, QoS
  • Skynet framework
  • SIP, XMPP?

JavaScript dev tools


  • NodeJS
  • JQuery
  • Google V8
  • Intel XDK






Welcome special guests






Right arrow

Live demonstrations

Live demonstrations and experiments

Really dumb NodeJS code sample


// Load HTTP module
var httpmod = require('http');

// Create HTTP server
httpmod.createServer(function (req, res) {

// Content header
res.writeHead(200, {'content-type': 'text/plain'});

// Write message and signal communication is complete
res.end("Hello, Tizen World!\n");
}).listen(8088);

// This presentation is very boring
console.log('Server running on 8088');

Run this NodeJS code on your smartphone!

MQTT JavaScript code sample 1



// Simple publish client

var mqtt = require('mqtt'), locli = mqtt.createClient();
locli.publish('messages', 'Mqtt');
locli.publish('messages', 'is pretty cool');
locli.publish('messages', 'remember that!', {retain: true});
locli.end();

Publishing messages via MQTT to the broker

MQTT JavaScript code sample 2



// Simple subscribe client

var mqtt = require('mqtt') , locli = mqtt.createClient();
locli.subscribe('messages');
locli.publish('messages', 'Hello from me!');
locli.on('message', function(topic, message) {
  console.log(message);
});

// disable automatic reconnect
locli.options.reconnectPeriod = 0;

Subscribing to topics via MQTT from the broker

Human controlling the IoT or…

nodes controlling the human?

Interfacing with
mobile IoT nodes

Michael Schloh von Bennewitz

MQTT (http://www.mqtt.org/)
Skynet (http://www.skynet.im/)
NodeJS (http://www.nodejs.org/)
Galileo (http://maker.intel.com/
Thanks to Intel for sponsorship