+ All Categories
Home > Technology > Komunikační protokoly pro IoT (LinuxDays 2014)

Komunikační protokoly pro IoT (LinuxDays 2014)

Date post: 21-Jun-2015
Category:
Upload: adam-horcica
View: 230 times
Download: 3 times
Share this document with a friend
Description:
Přednáška z konference LinuxDays 2014 (5.10.2014)
27
Komunikační protokoly pro IoT Adam Hořčica (@horcicaa) LinuxDays 2014 Komunikační protokoly pro IoT
Transcript
Page 1: Komunikační protokoly pro IoT (LinuxDays 2014)

Komunikační protokoly pro IoT

Adam Hořčica (@horcicaa)LinuxDays 2014

Komunikační protokoly proIoT

Page 2: Komunikační protokoly pro IoT (LinuxDays 2014)
Page 3: Komunikační protokoly pro IoT (LinuxDays 2014)

Obsah

• Protokoly– MQTT– CoAP– Snad přijde i kouzelník ukázka

• Integrační nástroje– Node Red– openHab

Page 4: Komunikační protokoly pro IoT (LinuxDays 2014)

Architektura

CoAP MQTT

Page 5: Komunikační protokoly pro IoT (LinuxDays 2014)

MQTT

• Pub-Sub• Broker x Client

– Publikace zprávy s předmětem– Odebírání věch zpráv s daným předmětem– Obsah zprávy je TXT

• Malé datové nároky• Postavené nad TCP/IP

Page 6: Komunikační protokoly pro IoT (LinuxDays 2014)

Pub/Sub

PUB

SUB

SUB

SUB

Broker

PUB: /greatings

Page 7: Komunikační protokoly pro IoT (LinuxDays 2014)

Předmět (topic)

• Publikace/hierarchická/struktura/xyz/123

• Odebírání– Přesný předmět:

/hierarchická/struktura/xyz

– Wildchar:/hierarchická/+/+/xyz/hierarchická/struktura/#/+/struktura/#

Page 8: Komunikační protokoly pro IoT (LinuxDays 2014)

Předmět (topic)

/sensory/budovaA/mistnost123/teplota

/sensory/budovaA/mistnost123/+/sensory/budovaA/#/sensory/budovaA/+/teplota/sensory/+/+/teplota

Page 9: Komunikační protokoly pro IoT (LinuxDays 2014)

Quality of Service

• Co se stane se zprávou v případě poruchy:

QoS ⓿ … nemusí být doručena vůbecQoS ❶ … může být doručena vícekrátQoS ❷ … bude doručena právě jednou

Page 10: Komunikační protokoly pro IoT (LinuxDays 2014)

„Poslední vůle“ (will)

• Co se stane, když mě někdo zabije odpojí• Zpráva, kterou broker při nečekaném odpojení

klienta

• will-topic• will-payload• will-qos• will-retain

Page 11: Komunikační protokoly pro IoT (LinuxDays 2014)

Mosquitto

• Broker (mosquitto)• C++, multiplatformní

• Klient:– mosquitto_pub– mosquitto_sub

• http://mosquitto.org• Demo: iot.eclipse.org:1883

Page 12: Komunikační protokoly pro IoT (LinuxDays 2014)

Ukázka

SenzorOsvětlení

Page 13: Komunikační protokoly pro IoT (LinuxDays 2014)

Ukázka

MQTT Broker

MQTT PubSenzorOsvětleníMQTT Sub

Node-RED

Page 14: Komunikační protokoly pro IoT (LinuxDays 2014)

Arduino Yún - MQTT

// nejprve: $ opkg install mosquitto-client

#include <Process.h>Process mqtt;

void setup () {Bridge.begin();mqtt.begin("mosquitto_pub");mqtt.addParameter("-h"); mqtt.addParameter(MQTT_HOST);mqtt.addParameter("-t");

mqtt.addParameter(MQTT_TOPIC);mqtt.addParameter("-l"); mqtt.runAsynchronously();

}

void loop () {mqtt.println(measure_light());delay(1000);

}

Page 15: Komunikační protokoly pro IoT (LinuxDays 2014)

Node.js

var mqtt = require("mqtt");

var mqttClient = mqtt.createClient(HOST, PORT);mqttClient.subscribe("/light");

mqttClient.on("message", function (topic, msg) {if (msg == "on") {

sendCmd(ON_CMD);}else if (msg == "off"){

sendCmd(OFF_CMD);}

});

Page 16: Komunikační protokoly pro IoT (LinuxDays 2014)

Demo Time

Page 17: Komunikační protokoly pro IoT (LinuxDays 2014)

Gatway

• MQTT ↔ něco jiného– Jiný MQTT borker– RESTful API (HTTP)– RESTful API (CoAP)– MQTT-SN (Sensor Network)

Page 18: Komunikační protokoly pro IoT (LinuxDays 2014)

CoAP

• Protokol pro CoRE• „HTTP nad UDP“• Princi hodně podobný HTTP• Umožňuje REST přístup• Kromě HTTP:

– Auto discovery– Komunikace bez odpovědi (např. stream)

Page 19: Komunikační protokoly pro IoT (LinuxDays 2014)

Pento projekt

https://eclipse.org/ponte/

Page 20: Komunikační protokoly pro IoT (LinuxDays 2014)

INTEGRACE

Page 21: Komunikační protokoly pro IoT (LinuxDays 2014)

Node Red

• Grafický jazyk + runtime• Tok zpráv od vstupu do výstupu

– API, HW, online service• Implementace v node.js

• http://nodered.org/• https://learn.adafruit.com/raspberry-pi-hosting-node-red/what-is-node-red

Page 22: Komunikační protokoly pro IoT (LinuxDays 2014)

Demo Time

Page 23: Komunikační protokoly pro IoT (LinuxDays 2014)

openHAB

• Integrační platforma pro home automation• „protocol agnostic“• V současnosti 75 protokolů• Programátorsky přívětivé • http://www.openhab.org

Page 24: Komunikační protokoly pro IoT (LinuxDays 2014)

http://www.openhab.org/features-architecture.html

Page 25: Komunikační protokoly pro IoT (LinuxDays 2014)

GUI

Page 26: Komunikační protokoly pro IoT (LinuxDays 2014)

Závěr

• Protokoly– MQTT– CoAP

• NodeRED• openHab

Page 27: Komunikační protokoly pro IoT (LinuxDays 2014)

Závěrwhile (audience.questionAvailable()) { answer();}

goto next;

Adam Hořčicamailto: [email protected]: @horcicaa


Recommended