on a connecté le studio !

57
#IoT BreizhCamp 2015 #BzhCmp On a connecté le studio ! Qian JIN - @bonbonking Sameh BEN FREDJ - @SamehBenF

Upload: sameh-ben-fredj

Post on 07-Jan-2017

227 views

Category:

Devices & Hardware


2 download

TRANSCRIPT

Page 1: On a connecté le studio !

BreizhCamp 2015 #BzhCmp

#IoT

BreizhCamp 2015 #BzhCmp

On a connecté le studio !

Qian JIN - @bonbonkingSameh BEN FREDJ - @SamehBenF

Page 2: On a connecté le studio !

Speakers

Sameh Ben Fredj IoT Consultant & Data passionate

[email protected] @SamehBenF

Qian JinAndroid Developer & Pythonista

[email protected] @bonbonking

Page 3: On a connecté le studio !

Xebia Studio

Page 4: On a connecté le studio !

Xebia Studio

Page 5: On a connecté le studio !

Ground Floor

Xebia Studio

1st Floor

Mezzanine

Page 6: On a connecté le studio !

Xebia Studio

XL Room

LannisterRoom

StarkRoom

TargaryenRoom

MeetingRoom

Toilet

TVXbox

Hallway & Leisure Space

PinballMachine

Page 7: On a connecté le studio !

Yes! A pinball machine!

Page 8: On a connecté le studio !

A Day in Studio

Page 9: On a connecté le studio !

A Day in Studio

! Temperature varies! Surge of noise level! Meeting room (a.k.a lunch room) occupied! Lights/TV left on! Coffee capsule shortage! Mobile device gone missing

Page 10: On a connecté le studio !

What about connecting the Studio?

Page 11: On a connecté le studio !

IoT: What is it?

Page 12: On a connecté le studio !

IoT: How big?

Page 13: On a connecté le studio !

IoT: How much?

Source : EMC, IDC, 2013

Page 14: On a connecté le studio !

IoT: Why Should I care?

Page 15: On a connecté le studio !

IoT@Work

Page 16: On a connecté le studio !

IoT@Work: Why ?

! Smart Office○ Energy management○ Activity tracking○ Consumption tracking○ Space management

! Smart Employee○ Data sharing○ Health monitoring○ Time management

Page 17: On a connecté le studio !

IoT@Work: How ?

Page 18: On a connecté le studio !

Get Hands Dirty

Page 19: On a connecté le studio !

Tech Stack

! Electronics: TI LaunchPad CC3200 + Energia + Grove sensors

! Communication: MQTT clients + CloudMQTT

! Frontend: Bower + Gulp + Github Pages + DataViz libraries

! Backend○ Node.js + Heroku○ Elasticsearch + Bonsai.io

Page 20: On a connecté le studio !

MQTT Broker

(Cloud-MQTT)

Architecture Overview

CC3200Sensors

(Meeting room)

DataElasticSearch

(Bonsai Cluster)

BackendREST Service

(Heroku Instance)

FrontEndWeb Dashboard(Github Pages)

Publish

Subscribe

Deliver

Store Data

Search & Aggregation

HTTP Request

s

CC3200Sensors

(Mezzanine)

Publish

Page 21: On a connecté le studio !

Electronics

Page 22: On a connecté le studio !

Hardware

Nano Computer Micro Controller

Page 23: On a connecté le studio !

Hardware

! TI LaunchPad CC3200 + Platform Energia

Page 24: On a connecté le studio !

Sensors

! Grove Sensors from Seeed Studio○ Temperature & Humidity sensor○ Motion sensor○ Sound sensor

! Others○ FC-51 Infra Red Distance Sensor○ Light sensor

Page 25: On a connecté le studio !

Sensors

Grove Temperature & Humidity Sensor

Grove Motion Sensor

Grove Sound Sensor

Page 26: On a connecté le studio !

Sensors

Page 27: On a connecté le studio !

Example: data lecture#include <WiFi.h> #include <PubSubClient.h> #include <DHT.h>

// PIN POSITIONS #define TEMP_HUMI_PIN 24 #define SOUND_SENSOR 6 #define LIGHT_SENSOR 2

#define ROOM_ID 1

DHT dht(TEMP_HUMI_PIN, DHT22); WiFiClient wifiClient; PubSubClient client(server, 16301, callback, wifiClient);

char temp_buffer[256]; char humidity_buffer[256];

void setup() { // Setting up ...

dht.begin(); } void loop() { }

Page 28: On a connecté le studio !

Example: data lecture

void loop() { // read values from sensors & pubish to mqtt

_temperature = dht.readTemperature(); _humidity = dht.readHumidity();

sprintf(temp_buffer, "{\"value\": %d,\"room_id\": %d}", _temperature, ROOM_ID); sprintf(humidity_buffer, "{\"value\": %d,\"room_id\": %d}", _humidity, ROOM_ID);

if (client.publish("temp", temp_buffer) && client.publish("humidity", humidity_buffer){

log("Data published succeeded!"); } else {

log("Data publish failed"); }

delay(5000); }

void log() {}

Page 29: On a connecté le studio !

Hack the Coffee Machine

Page 30: On a connecté le studio !

Hack the coffee machine

Page 31: On a connecté le studio !

Hack the coffee machine

FC-51 Infra Red Distance Sensor

Page 32: On a connecté le studio !

Hack the coffee machine

Page 33: On a connecté le studio !

CommunicationProtocol

Page 34: On a connecté le studio !

Why MQTT?

MQTT vs XMPP vs AMQP

Page 35: On a connecté le studio !

MQTT

! Invented in 1999 by IBM and Eurotech

! Version 3.1.1 is now an OASIS Standard (Since November 2014)

Page 36: On a connecté le studio !

Backend

Page 37: On a connecté le studio !

Backend

! Node.js app on Heroku○ Connect to CloudMQTT via Websocket○ REST service to frontend○ Index/Query Elasticsearch data

! Data in ElasticSearch○ JSON over HTTP○ Data aggregation made easy

Page 38: On a connecté le studio !

Elasticsearch Aggregation

"aggregations" : { "<aggregation_name>" : { "<aggregation_type>" : { <aggregation_body> } [,"aggregations" : { [<sub_aggregation>]+ } ]? } [,"<aggregation_name_2>" : { ... } ]* }

Page 39: On a connecté le studio !

Frontend

Page 40: On a connecté le studio !

Frontend

! Data Visualization! Data Pulling: Auto Refresh every 5min! Deployed on Github pages! Tools we love

Page 41: On a connecté le studio !

Dashboard

Page 42: On a connecté le studio !

Dashboard live: http://bit.ly/1e1sCER

Page 43: On a connecté le studio !

Troubles

Page 44: On a connecté le studio !

Troubles

! Newbies in electronics! Unstable Wi-Fi condition! Lack of monitoring mechanism! Curiosity visitors! Time! Time! Time!

Page 45: On a connecté le studio !

Coworkers’Reaction

Page 46: On a connecté le studio !

Before

Page 47: On a connecté le studio !

After

Page 48: On a connecté le studio !

1st tweet

Page 49: On a connecté le studio !

Next Steps

Page 50: On a connecté le studio !

Physical Indications

! Meeting room occupation sign

! Button obsession○ Check-in button○ Croissant button

! Hack the LED screen

Page 51: On a connecté le studio !

Connected X

! Connected Chairs! Connected Fridge! Connected storage for mobile device○ RFID + Monitor Screen○ Inventory Made Easy

Page 52: On a connecté le studio !

iBeacons

! Presence tracking! Information pushing

Page 53: On a connecté le studio !

Data mining

! Data analysis and correlation! Prediction

Page 54: On a connecté le studio !

Acknowledgment

Page 55: On a connecté le studio !

Acknowledgment

! Qian Jin (hardware + back)! Sameh Ben Fredj (hardware)! Benjamin Lacroix (front)! Thomas Guerin (back)! Julien Buret (hardware)! Xebians who actively give suggestions ;)

Page 56: On a connecté le studio !

Working session

Page 57: On a connecté le studio !

Thank you!Q&A