O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Komunikační protokoly pro IoT (LinuxDays 2014)

834 visualizações

Publicada em

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

Publicada em: Tecnologia
  • Seja o primeiro a comentar

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

×