Making your washing machine talk with a power plant

17,897 views
20,349 views

Published on

Published in: Technology

Making your washing machine talk with a power plant

  1. 1. Making your Washing Machine Talk with a Power Plant @matteocollina
  2. 2. What was the greatest invention of the Industrial Revolution?
  3. 3. Washing Machines http://www.flickr.com/photos/gnarlsmonkey/260809150
  4. 4. • We all need laundry • 10% jobs destroyed • Women were freed from their laundry, and can now have a job • Watch this awesome TED talk by Hans Rosling.
  5. 5. What form of energy would you choose? http://www.flickr.com/photos/jalte/1687116108 http://www.flickr.com/photos/mikeweston/1462086624 http://www.flickr.com/photos/tommy-ironic/3437613067
  6. 6. Would you postpone your laundry to use a different energy source? http://500px.com/photo/47496528
  7. 7. How
  8. 8. Let’s connect all the things!
  9. 9. Pidgeons are not a communication protocol See RFC1149 http://500px.com/photo/32895129
  10. 10. A new communication paradigm ??? Pop-up Dialog This message come from the thing! Cancel OK We code a program that reacts to real-world events
  11. 11. A new communication paradigm ??? Pop-up Dialog This message come from the thing! Cancel We want to receive live data from the things OK
  12. 12. A new communication paradigm Publi sh ??? Pop-up Dialog ish bl This message come from the thing! Cancel Pu OK ! How can we know which user should be notified?
  13. 13. A new communication paradigm Subsc Tap ribe Publish ??? Pop-up Dialog ish bl This message come from the thing! Cancel Pu OK
  14. 14. Problems 1. Application Protocols Developing IoT applications is hard for the developer. Why? 2. Data Formats 3. Device Identification and Privacy
  15. 15. Problems Application Open Protocols Pattern Live Updates Format Transport HTTP REST with custom protocol over Websocket textual with binary support TCP CoAP REST with observe spec binary UDP MQTT Pub/Sub Yes binary TCP
  16. 16. .ORG CoAP • Developed by IBM, in standardization at OASIS • In standardization by the IETF as Constrained Application Protocol (CoAP) Optional confirmable messages • Various levels of QoS 0, 1, 2 • • Offline support • Partial offline support through a proxy • Retained Messages • Multicast support
  17. 17. .ORG Client/Server Architecture CoAP P2P Architecture
  18. 18. Problems Data Formats Encdoding Tipology XML textual Tree-Based, values as strings EXI binary Tree-Based, different data types N3/RDF textual Graph-Based, values as strings JSON textual Object-Oriented, values as strings MsgPack binary Object-Oriented, different data types ProtoBuf binary Object-Oriented, different data types Bysant binary Object-Oriented, different data types BSON binary Object-Oriented, different data types
  19. 19. Problems Device Identification & Privacy • What devices can a user monitor? • What devices can 'listen' to the state of other devices? • Who can access the devices state? • Is the communication secure?
  20. 20. http://eclipse.org/ponte
  21. 21. We want to bring developers to the (real) world. http://500px.com/photo/26425201
  22. 22. API http(s)://<your ponte>/resources/<your thing> ! coap://<your ponte>/r/<your thing> ! mqtt(s)://<your ponte>/<your thing> Use retained messages in MQTT
  23. 23. Internals 1. key-value store for latest data lookup 2. publish-subscribe with wildcards 3. storing and forwarding offline updates
  24. 24. Data Formats • How? Binary • Textual • Semantic Automatic conversion with semantic
  25. 25. One format to rule them all
  26. 26. JSON-LD • Full support for RDF and graph data • Developer friendly • Convertible to XML, MsgPack, Bysant, BSON. • schema.org initiative for the IoT?
  27. 27. ponte’s pillars • • Ascoltatori, the pub/sub library for node backed by every broker out there! npm.im/ ascoltatori • Mosca, the multi-transport MQTT broker for node.js. npm.im/mosca • MQTT.js, the MQTT library for node: npm.im/mqtt • Node-CoAP, the CoAP library for node: npm.im/coap
  28. 28. 6000 4000 5000 CoAP.to.MQTT HTTP.to.MQTT MQTT.to.MQTT Mosquitto 3000 milliseconds 4000 3000 0 1000 2000 1000 0 milliseconds 5000 CoAP.to.CoAP HTTP.to.CoAP MQTT.to.CoAP 2000 6000 One to 10k clients 0 2000 4000 6000 clients 8000 10000 0 2000 4000 6000 clients 8000 10000
  29. 29. 10k clients to One 10000 15000 CoAP.to.MQTT HTTP.to.MQTT MQTT.to.MQTT Mosquitto 0 5000 milliseconds 10000 5000 0 milliseconds 15000 CoAP.to.CoAP HTTP.to.CoAP MQTT.to.CoAP 0 2000 4000 6000 messages 8000 10000 0 2000 4000 6000 messages 8000 10000
  30. 30. Todo List • Develop a multiprocol broker and bridge • Official Eclipse Release • JSON-LD based data format • Device Identification & Privacy
  31. 31. DEMO! http://www.flickr.com/photos/oneaustin/1261907803
  32. 32. http://eclipse.org/ponte
  33. 33. Install it: ! $ npm install ponte bunyan -g Run it: ! $ ponte -v | bunyan
  34. 34. …but why?
  35. 35. IoT development happens in silos http://www.flickr.com/photos/10775233@N00/4370646/
  36. 36. Build a Ponte between them! (Ponte means Bridge in Italian :)) http://500px.com/photo/31083423

×