Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Komunikační protokoly pro IoT (LinuxDays 2014)

794 views

Published on

Přednáška z konference LinuxDays 2014 (5.10.2014)

Published in: Technology
  • Be the first to comment

Komunikační protokoly pro IoT (LinuxDays 2014)

  1. 1. Komunikační protokoly pro IoT Komunikační protokoly pro IoT Adam Hořčica (@horcicaa) LinuxDays 2014
  2. 2. Obsah • Protokoly – MQTT – CoAP – Snad přijde i kouzelník ukázka • Integrační nástroje – Node Red – openHab
  3. 3. Architektura CoAP MQTT
  4. 4. 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
  5. 5. Pub/Sub PUB SUB SUB SUB Broker PUB: /greatings
  6. 6. 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/#
  7. 7. Předmět (topic) /sensory/budovaA/mistnost123/teplota /sensory/budovaA/mistnost123/+ /sensory/budovaA/# /sensory/budovaA/+/teplota /sensory/+/+/teplota
  8. 8. Quality of Service • Co se stane se zprávou v případě poruchy: QoS ⓿ … nemusí být doručena vůbec QoS ❶ … může být doručena vícekrát QoS ❷ … bude doručena právě jednou
  9. 9. „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
  10. 10. Mosquitto • Broker (mosquitto) • C++, multiplatformní • Klient: – mosquitto_pub – mosquitto_sub • http://mosquitto.org • Demo: iot.eclipse.org:1883
  11. 11. Ukázka Senzor Osvětlení
  12. 12. Ukázka MQTT Broker Senzor MQTT Pub Osvětlení MQTT Sub Node-RED
  13. 13. 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); }
  14. 14. 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); } });
  15. 15. Demo Time
  16. 16. Gatway • MQTT ↔ něco jiného – Jiný MQTT borker – RESTful API (HTTP) – RESTful API (CoAP) – MQTT-SN (Sensor Network)
  17. 17. 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)
  18. 18. Pento projekt https://eclipse.org/ponte/
  19. 19. INTEGRACE
  20. 20. 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
  21. 21. Demo Time
  22. 22. openHAB • Integrační platforma pro home automation • „protocol agnostic“ • V současnosti 75 protokolů • Programátorsky přívětivé • http://www.openhab.org
  23. 23. http://www.openhab.org/features-architecture.html
  24. 24. GUI
  25. 25. Závěr • Protokoly – MQTT – CoAP • NodeRED • openHab
  26. 26. whileZá(vaěurdience.questionAvailable()) { answer(); } goto next; Adam Hořčica mailto: adam@horcica.cz twitter: @horcicaa

×