the iot methodology & an introduction to the intel galileo, edison and smartliving demo -...

27
The IoT Methodology & An introduction to Intel Galileo, Edison & SmartLiving Tom Collins @snillocmot [email protected]

Upload: tom-collins

Post on 21-Apr-2017

3.568 views

Category:

Internet


0 download

TRANSCRIPT

The IoT Methodology &

An introduction to Intel Galileo, Edison & SmartLiving

Tom Collins @snillocmot

[email protected]

intro’

SmartLiving an end-to-end IoT solution for enthusiasts, developers and makers. Connect microcontrollers, smartphones, consumer products or web services, Automate with simple when-then-this rules or an advanced scenario engine

Build compelling HTML5 user interfaces for control and management.

Intel Edison & Galileo, great tool for prototyping IoT, Big push from Intel IoT Roadshow, SBC’s use the same development styles so new controllers should be a breeze to work with

IoT Methodology formed from lessons learnt building SmartLiving and B2B/research initiatives,

Best practices for approaching IoT and attempts to provide abstraction between designers and developers

goal of the iot methodology

To allow everyone to experience the Internet of Things, by seeing and feeling potentials of common use cases, through iterative prototyping and a ‘lean startup’ mentality.

Ultimately to enable individuals, communities and organizations to think, imagine and question ‘What’s next?’ to inspire the next killer app.

This concerns the services and apps created on top of these common use cases,

in order to build a meaningful Internet of Things for Humans.

We can build services for people, by people, of people, in the 21st century, if we make it so “ “

@timoreilly

motivation & ethos

Initiatives motivated solely by profit and politics hinder innovation and lack the creativity, enthusiasm and courage to step into the unknown.

In the spirit of the World Wide Web and Open Source communities across the globe, a new collaborative effort must be taken to make the Internet of Things a reality.

The IoT Methodology aims to provide a loosely structured ecosystem of mutual value for all who participate, driven by sharing, collaboration, community and learning.

An ecosystem made up of tools, design patterns, architecture references and guidelines

to build IoT solutions. It’s an iterative methodology, which is developing iteratively.

perspective

The catalyst for the Internet of Things, are the do-ers, the explorers, the early adopters(You!), those ambitious enough to experiment, tinker and try out new technologies

The ‘lowest common denominator’ to promote IoT in verticals are the makers, makers can lead adoption and bring these new

technologies to their industries and specific markets

What it isn’t an all encompassing master solution,

nor does it favor of any technology, protocol or preference.

What it is

curated repository of best practices, tried and tested tools, protocols and solutions, driven by a community who use them in the real-world for real-world scenarios.

CoCreate

Ideate

Q&A

IoT OSI

Prototype

Deploy

iteration steps

Communicate with end users and stakeholders to

identify pain problem areas, in a non-technical way

Simplify discussions to communicate

requirements with designers, implementers and project managers

Translate soft concepts into hard

requirements, to analyze solutions and

brainstorm options

Requirements map to valid

architecture, infrastructure and

business frameworks

Standardized toolkit assists building

prototypes, which iterate towards minimum viable

products

Continuous Deployment assists closing the

feedback loop, enhances knowledge sharing and

collaboration opportunities

CoCreate

Ideate

Q&A

IoT OSI

Prototype

Deploy

iterations in reality

co-create Purpose

•  Assist kick off session(s) to initiate projects and

aid communication between end users,

stakeholders and implementers

•  User centric problem analysis

•  Conceptual designer’s approach

•  Remove complexities and influences that

technically minded individuals bring to the

equation

•  Narrow the scope of a problem domain to

the most practical and impactful usecases

Current works & influences

cocreatetheiot.com @nstembert

gov.uk/design-principles @benterrett

A manifesto for do-it-yourself internet-of-things creation @driesderoeck Next steps

u  Build a repository of flavored techniques for specific domains and audiences

u  Define concrete deliverables to feed the Ideate step

A workshop to allow stakeholders from all levels and backgrounds to identify and conceptualize IoT solutions for Smart Cities.

co-create in action @DunavNET Novi Sad, Serbia – 13th April 2014

•  Discuss the problem domain using visual props •  Narrow down biggest pain problems •  Contextualize with the physical environment •  Consider influences and outcomes of these

problems •  Identify knowledge areas contributing to solutions •  Triage pressing problem areas •  User Interface mockup creation to allow users to

visualize and understand possible solutions

Summary

Tools for the CoCreate IoT Workshop by Nathalie Stembert

In two and a half hours we developed a full IoT concept together with end-users, designers and

developers.

Normally this takes us half a year and then we wouldn’t even have involved people from the target group yet.

“ “

ideate Purpose

•  Provides a common reference for

brainstorming and discussing IoT ideas,

usecases and projects

•  Quick and easy for the prospects and

practioneers

•  Standardized terminology

•  Designer or developer centric approaches

•  Opens up discussions between varied

stakeholders

Current works & influences

Lillidots @DriesDeRoeck

The IoT Canvas @snillocmot

Business Model/Lean Canvas @ericries & @ashmaurya

Next steps

u  Share the IoT Canvas template

u  Publish IoT Canvas & Guide inspired by Running Lean on how to apply this to IoT projects

u  Analyze how best to extract requirements for validation which feeds into Q&A

u  Build a web app to digitize the process

The IoT Canvas is an adaptation of the Business Model/Lean Canvas, used in brainstorm sessions with various beta-users, it assists to validate and identify MVP requirements for projects.

ideate in action @smartliving_io Gent, Belgium 20th November 2014

•  Problem statement summing up user’s pains •  Identify Things in the physical environment •  Consider sensors, actuators & controllers which

make up Endpoints interacting with Things •  Data models for the Endpoints •  Define Middleware requirements for Endpoints to

connect IoT Services •  Summarize Third-party-web-services that will be

used •  Sketch User Interface widgets •  Define the key actors (Humans) using the system

Summary

IoT Canvas for the ‘Smart Greenhouse’ Makers project

Q&A

•  Closes the gap between idea and implementation

•  Validation - What, where, when, why, how?

•  Feasibility - For metrics, resources, skills, practicality, defined problem

•  Domain Analysis - What else in the problem domain hasn’t been considered?

•  Solution & Topology Design - What other requirements have stakeholders voiced which affect the selection of tools & technologies

Current works & influences

IoT:DB - Repository listing tools, technologies and solutions, that can be searched with project requirements

IoT Analysis Survey @allthingstalk

Next steps

Purpose

u  Guide for the path from ideation to architecture, to target specific verticals

u  Define a deliverable ‘report’ to feed the IOT OSI & IOT ARM

u  Web app survey to allow users to enter requirements

u  IoT:DB MVP - facilitate adding new solutions and searching the repository

•  Project outline - Business value •  Feasibility - Validate scope •  Practical Considerations - Close scope •  Problem Domain Analysis - Solution summary •  Solution & Topology Design - Architecture •  Infrastructure Considerations - Infrastructure

A series of surveys conducted with early user groups to discover the best way of conceptualizing a project and choosing the most appropriate solutions for IOT OSI layers to assist project development.

Summary

@allthingstalk Conducted online – April to August 2014

Results from architecture design preferences for end point devices

Q&A in action

IOT OSI Purpose

•  Breaks down and the simplifies the components of the IoT into an ‘Internet as an operating system’ paradigm

•  Makes it easy to digest the scale of Internet of Things and all of it’s intricate components

•  Define scope areas for domain specialists to focus efforts

•  Simplifies communications with end users, stakeholders and development teams

Current works & influences

IoT:DB - Search for solutions based on architecture requirements

The IoT-Architecture Reference Model @IoT_A

OSI Seven layer model

Next steps u  Map common solutions to the IOT OSI – Intel IoT

Solutions, Eclipse Open IoT Stack, etc

u  Support the creation of new architecture references for specific verticals

u  Test and validate architectures using the Prototype step

END POINTS CONNECTIVITY MIDDLEWARE IOT SERVICES APPS aka things

Endpoints  have  a  number  of  roles  

including  producing  data,  receiving  

commands,  providing  services  for  

management,  discovery,  persistence  and  local  

logic.    

Examples  Temperature  sensor,  LED,  Weather  service,  

Email  no7fica7ons,  RFID  Reader,  etc  

The  wire(less)  level  communica=on  protocols  used  to  

connect  Endpoints  to  the  Middleware.  

 Includes  management  of  network  sessions,  reliability,  security  and  rou=ng  protocols.  

Examples  TCP/IP,  MQTT,  IPv6,  CoAP,  REST,  XBEE,  

ZigBee,  ZWave,  Serial,  custom  radios,  IPoAC,  ..  

Standardized  layer  using  connec=vity  drivers,  to  translate  and  connect  disparate  sources  (or  

des=na=ons).    

Guarantees  delivery,  QoS,  Privacy  and  Auth*  

for  IoT  Services  

Examples  Dowse,  OpenHAB,  

TheThingSystem,  ZIPR,  Ponte,  WebSphere,  RabbitMQ,  Dweet  

Typically  provides  the  ‘Smarts’  for  the  IoT  and  power  where  processing  

on  endpoints  or  middleware  is  not  

sufficient.    

All  systems  require  a  form  of  management  

for  Endpoints,  Middleware,  Auth*,  

IDM,  etc  

Examples  Persistence,  (E.g  

TempoIQ),  automa7on  (E.g  IFTTT),  intelligence,  third  party  integrators  

(ERP  connectors)  

User  facing  front-­‐end  applica=ons  that  facilitate  using  IoT  

services,  in  turn  can  be  used  to  manage  and  automate  endpoints,  

and  generally  orchestrate  an  Internet  

of  Things          

Examples  WidgIoTs,  SmartLiving  Web  &  Mobile  Apps,  

Freeboard  

IOT OSI overview

IOT OSI architecture models

Communication between each layer

deals with:

Authentication Identification Management

Telemetry

APPS

IOT SERVICES

MIDDLEWARE

CONNECTIVITY

END POINTS

The OSI 7

Layer model

It maps, however.. OSI adds unnecessary

complexity

We’re not building protocols

We’re trying to build distributed applications which interact, and

can be developed in a ‘lean’ fashion

Cloud Architecture

model

Distributed Computing

model

IOT OSI in action – IoT canvas mapping

The Smart Greenhouse Project

A Maker project being built with SmartLiving, a consumer centric IoT solution.

The project aims to use IoT to make growing vegetables more efficiently in a sustainable and automated way.

Plants  Window  vents  Door  Glass  panes  Water  catcher  Sprinkler  Watering  can    

Galileo  Plant  sensor  xbee  node  

Message  Broker    Xbee  Gateway  

W:  moisture  <  80  T:  sprinkler  =1  E:sprinler=0    W:  temp  >  x  T:  servo=50  

Gardener  Fellow  gardeners    Smart  city  iniDaDves  Open  source  urban  green  housing  

See  mockups  

Wunderground  Growing  Green  ci=es    

Temp  –  int  Lux  –  int  Moisture  –  int  AQ  –  int  Humidity  int  Sprinkler  -­‐  bool  

“I'd  like  to  make  an  automa=on  project  that  "senses"  the  weather  outside  (rain,  sun  radia=on  and  darkness),  takes  into  account  the  electricity  produced  by  the  solar  panels  and  that  than  automa=zes  certain  household  appliances  or  the  central  hea=ng.    I  would  like  to  have  such  a  system  because  I  want  our  house  to  be  smarter  and  less  energy-­‐consuming  and  thus  more  environmentally  friendly.”  

IOT OSI in action – IoT canvas mapping

END POINTS CONNECTIVITY MIDDLEWARE IOT SERVICES APPS SENSORS

Temp   Lux   Moisture  

ACTUATORS

Sprinkler valve  

Servo  

WEB SERVICES

END POINT CONNECTIONS

Plant sensor node  

END POINT CONNECTIONS

REST  

LOCAL MESH GATEWAY

Galileo Xbee Gateway service  

MESSAGE BROKER

INTERNET CONNECTIVITY

CLOUD BASED COMMAND & CONTROL

Green house

controller  Ethernet  

API  

XBee  XBee  

WiFi  Router  

MANAGEMENT  

TELEMETRY  DB  

RULE  ENGINE  

MOBILE APPLICATIONS

TIME  SERIES  GRAPH  

APPLIANCE  STATUS  

APPLIANCE  CONTROL  

NOTIFICATIONS  

END POINT CONNECTIONS

3RD  PARTY  INTEGRAITON  

END POINTS CONNECTIVITY MIDDLEWARE IOT SERVICES APPS

IOT OSI in action – IoT canvas mapping

Plenty of existing resources here

DEV  TOOLS  

SOLU

TIONS  

Arduino Raspberry Pi

ZWave Devices

Android Makers

App

Web services

Custom micro

controllers

Virtual actuator

Virtual sensors

TCP/IP SERIAL

ZWave ZigBee

433 Mhz XBee

IR

ZWave IPv6

Gateway

Raspberry Pi Makers Gateway

Smartliving pub sub Broker

Management

Telemetry DB

Rule Engine

Automation Scripting

Widget Lib

Polymer Widgets

Rule Wizard iOS App

Widgets Web app

C Lib

Go Lib

Python Lib

Node.js Lib

JS Lib

Java Lib

Arduino Gateway

Android Gateway

PUBSUB Clients

REST Clients

Widget  running  in  a  browser  in  actuator  mode  

Management  only  service  required  for  auth/Iden=fica=on  

Stomp/Websockets  

Grove  shield  with  Relay/Servo  

APPS

IOT SERVICES

MIDDLEWARE

END POINTS

Node.js  lib  CONNECTIVITY

IOT OSI in action

Actuator control Widget

Galileo – Arduino interface

UI interaction commands from a

browser (HTML5 device API)

Sprinkler and ventilation controller

BROKER  

Usecase One – Greenhouse controller

MQTT  

Front  end  user  facing  App  (beta.smartliving.io)  

Management  only  service  required  for  auth/Iden=fica=on  

AMQP  

XBee  API  Mode  

Moisture,  light,  temperature  

MQTT  

Python  Gateway  Script  

IOT OSI in action

Smart Plant node Galileo Gateway Service

HTML5 Web socket

Graph widget Provides readings for

Moisture, temperature and light lux

Wireless XBee to TCP/IP via serial

Real-time data showing sensor values

XBEE  

BROKER  

Usecase Two – Smart Plant Node

APPS

IOT SERVICES

MIDDLEWARE

END POINTS

CONNECTIVITY

Purpose

•  Defines an ethos with Lean startup mentality, prototype for POC, test, measure, iterate

•  Uses standard building blocks to build IoT products fast

•  Allows developers and practitioners to focus on what they’re good at, and using the IoT Toolbox for all other layers

•  Use technologies and tools conducive for Rapid Prototyping (web > native, script > bare metal code)

•  No major concern for auth*, scalability or UX in early iterations (Exploit SaaS or specialists when you’re ready to scale, deal with this after you learn enough from users)

Current works & influences

@SmartLiving _io - Open consumer(Makers, developers, enthusiasts) centric IoT solutions

Every hackerspace, maker community/project, hackthon, ‘lean startup out there

Next steps

u  Validate prototyping techniques via SmartLiving & @iMinds IoT Maker Hackathons and Meetups

u  Start sharing apps and services via github for people to collaborate and extend

u  Standardize project structure for Deploy

prototype in action

1.  Startup Weekend Demo of IoT prototyping

2.  SmartLiving IoT Hackathon #1

3.  SmartLiving IoT Hackathon #2

4.  SmartLiving IoT Hackathon #3

5.  iMinds IoT Hackathon

6.  Ajunlei 1 - IoT Workshops

7.  Mons Big Data Week

prototype - Hackathons, Meetups and Workshops

Gent, Belgium – 5th of December 2014  

Gent, Belgium – 13th of December 2014  

Brussels, Belgium – TBC March 2015  

Netherlands– TBC February 2015  

Hosting events you want to add a spark of IoT too? Presentations, workshops, seminars, hackathons, conferences?

Get in touch [email protected]  

1. Startup Weekend Ghent 2014 A startup has since been founded based in NL based on the project that was built using the SmartLiving IoT Starter Kit. The project also won the “Techiest Startup Award”

2. SmartLiving IoT Hackathon #1 Seven teams of SmartLiving ‘noobies’, built seven successful projects from scratch in just under 10 hours. Project follow ups soon available at projects.smartliving.io for more details

Brussels, Belgium – TBC March 2015  

Gent, Belgium – TBC March 2015  

Mons, Belgium – TBC March 2015  

deploy

Purpose

•  Package up IoT projects to share with the world, defining a standard IoT project structure

•  Cuts deployment time

•  Integrates IoT Unit Testing

•  Collates code for a whole project with all layers of the IOT OSI, along with all configurations

Current works & influences

Inspiration from every PaaS platform that’s supporting web developers to build what they want, fast. Without dedicated DevOps.

Xively

Next steps

1.  Find a dream team to start implementing the architecture and developing a pre-processing scripting language to support projects which feed directly to IoT PaaS, current solutions are still maturing and are driven by commercial needs

•  Makes it easy to share, collaborate and build on top of existing solutions

•  Incentivized

•  Enhances knowledge sharing

IBM Bluemix

deploy coming soon

•  Platform facilitates continuous integration •  Pre-processor (Looks for .iot files), when user

wants to deploy a project it allows them to dynamically add their own resource ID’s at build time

•  For widgets/dashboards/scenarios all fully automated and hosted on the web as with PaaS as we know it

•  Automation and cloud scripts are deployed as Micro-services

•  Microcontroller code/dependencies/startup scripts are auto-generated leaving you to upload to your controller (The dream is OTA updates, anyone for an Electric Imp demo?)

Concept requirements

Houston – mission control for IoT  

Strict version control structure for pusing entire IoT project to a CI platform  

Next steps

1.  Analyze Gilliam and Flynn as possible solutions

2.  Analyze flexibility of IBM Bluemix, it does a lot, practical use cases seem to be lacking however

3.  Analyze flexibility of Xively, it claims to be PaaS, but practical use cases also lack and it’s not all encompassing (Frontend, Automation, intelligence?). They’ve also shut the doors for new users

take away

Just hack it

Don’t worry about what you don’t know, find somebody who does and trade your skills

You’re the horizontal (The Maker which can build anything)

bring IoT to your vertical (The industry domains that you’re experts in)

Intel Where to start?

1.    Wyliodrin  -­‐  Graphical  programming  (Scratch)  which  can  generate  Python  on  node.js  code  (Good  for  noobies  or  lazy  developers)  

2.    Arduino  style  –  Arduino  Intel  IDE,  use  this  exactly  like  a  typical  Arduino  3.    Intel  XDK  IoT  EdiDon  –  Nice  IDE  to  program  using  node.js,  nice  workflow  meaning  no  SSH  required,  also  very  

nice  tools  for  HTML5  Companion  app  developer  and  debugging  4.    Python  –  It’s  running  Linux  (Yocto)  so  Python  via  SSH  is  an  op=on(Doesn’t  seem  well  supported  though)  5.    C/C++  SDK  -­‐  Not  my  cup  of  tea…    

Galileo   Edison   Curie  

Entry level, high resource comparable to Raspberry Pi. Quark

SoC, IMHO not necessarily IoT Ready (Neither are Arduino or RPI)

IoT Ready – Many usecases, small form factor, breaks away from

typical shield requirements. WiFi BLE onboard

WSN enabler – Button sized, Coin cell powered controller, limited

resources