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.

IoTivity for Automotive IoT Interoperability

15,334 views

Published on

Philippe Coval explains how IoTivity can be used to as a framework for connected smart cars and infrastructure to vehicle communication systems.

Published in: Software
  • Be the first to comment

  • Be the first to like this

IoTivity for Automotive IoT Interoperability

  1. 1. Samsung Open Source Group 1Samsung Open Source Group Philippe Coval Samsung Open Source Group / SRUK philippe.coval@osg.samsung.com For Automotive IoT Interoperability Conference Libre Software and Hardware / Workshops Université de Rennes, France <2017-02-08>
  2. 2. Samsung Open Source Group 2Samsung Open Source Group Bonjour tout le monde ! ● Philippe Coval – Software engineer of Samsung OSG (EU team) – Member of IoTivity, Tizen, Yocto, Automotive (GENIVI+AGL) projects – I am taking care about OS/hardware support, build & usages – Ask me for help: ● https://wiki.tizen.org/wiki/User:Pcoval
  3. 3. Samsung Open Source Group 3Samsung Open Source Group Agenda ● What is Open connectivity ? ● What is IoTivity ? ● What is OCF automotive? ● A Vehicle to Infrastructure IoT demonstration ● Q&A or/and extras ?
  4. 4. Samsung Open Source Group 4Samsung Open Source Group “Simplicity is the ultimate sophistication.” ~Leonardo da Vinci
  5. 5. Samsung Open Source Group 5Samsung Open Source Group Open Connectivity Foundation ● “Providing the software Linking the Internet of Things” ● Creating a specification, based on open standards: – Resource based, RESTful architecture (Stateless. client/server...) – IETF, CoAP protocol (HTTP on UDP), CBOR (JSON in binary)... ● Sponsoring reference implementation: IoTivity – under Apache 2.0 license ● Rules: Part of standard only if – Specified and Implemented
  6. 6. Samsung Open Source Group 6Samsung Open Source Group OCF Automotive profile's mission ● Provide OCF technology for connected cars, by proposing – A common definition of vehicle resources – A common way to interact with those (inside or outside vehicle) – Based on or bridging to existing standards ● Cooperative effort with existing FLOSS Automotive projects – Tizen, GENIVI, AGL, W3C, RVI ...
  7. 7. Samsung Open Source Group 7Samsung Open Source Group IoTivity is a complete framework ● Hardware: CPU, MCU, Desktop, Mobile, SBC, Tizen devices ● OS: Many including GNU/Linux, Tizen, Yocto, Android or baremetal... ● C API: Data transmission (flash footprint ~128KiB-) – Resource Model / Serialization (CBOR) – Connectivity Abstraction: CoAP, Local IP Network, BT, BLE... – Discovery (UDP, Multicast), Security (DTLS/TLS) ● C++ API: Object Oriented (C++11) ● More Bindings: JavaScript (iotivity-node) ● + High level services – Data/Device Management, Hosting, Encapsulation, Cloud interface
  8. 8. Samsung Open Source Group 8Samsung Open Source Group IoTivity is resources oriented ● Resource is identified by an URI – Composed of properties ● Declared by a ResourceType – Operations: CRUD+N ● Create, Read, Update, Delete+ Notify ● Use existing known resource models – From oneIoTa.org repository – Ie: sensors, geolocation... ● Or create new ones (new names) – Share for interoperability ● http://www.oneiota.org/revisions/1863 ● oic.r.sensor.illuminance.json ● /* … */ "definitions": {   "oic.r.sensor.illuminance": {     "properties": {       "illuminance": {         "type": "number",         "readOnly": true,         "description":     "Sensed luminous flux in lux." }  }  } /* … */ 
  9. 9. Samsung Open Source Group 9Samsung Open Source Group Flow: Create, Read, Update, Delete, Notify IoTivity Server IoTivity Client(s) Local IP Network Registration of resource Handling new requests Set/Get/ing properties values Initialization as server Initialization as client Handling new clients Discovery of resource POST/PUT GET UDP Multicast + CoAP Notify updated resource Observe resource change & Handling propertiesOBSERVE
  10. 10. Samsung Open Source Group 10 OCDoResource(...OC_REST_PUT …) onPut(... OCClientResponse ...) Example: Client updates server's resource OCInit(..., OC_SERVER); OCCreateResource( …, onOCEntity); { OCProcess(); } onOCEntity(entityHandlerRequest) { switch entityHandlerRequest->method { case 'POST: // Create value case 'PUT' : // Update new resource // handling the change case 'GET' : // READ current value ... OCDoResponse(&response); }} OCInit(..., OC_CLIENT); OCDoResource(...,OC_REST_DISCOVER, ...) onDiscover(... OCClientResponse ...) IoTivity Server IoTivity Client(s) IP NetworkIP Network ● Client sets resource's value ● Server is handling it – and responding
  11. 11. Samsung Open Source Group 11 “Any sufficiently advanced technology is indistinguishable from magic.” ~ Arthur C. Clarke
  12. 12. Samsung Open Source Group 12Samsung Open Source Group How to track defectives street lights? ● 1: Measure if outside's lighting is too dark – Using Embedded sensor in car (demo: I²C sensor) – Turn car's front light on automatically ● 2: Get position from satellites (GPS, Galileo) – From: car, mobile or any (demo: simulated) ● 3: Send notice to Internet (Cloud) – Using mobile data – 4: Forward information to city services (pull or push) ● 5: Agent is assigned – 6: to fix defective light ● 7: he can also check “open data” base from his mobile ● ... 11 2 3 5 6 4 7
  13. 13. Samsung Open Source Group 13Samsung Open Source Group From devices to cloud (AutoLinux FOSDEM) https://vimeo.com/202478132#iotivity-artik-20170204rzr
  14. 14. Samsung Open Source Group 14Samsung Open Source Group /GeoLocationResURI { latitude: 52.165, longitude: -2.21, } A Vehicle to Infrastructure notification service function handle(illuminance) {   if (gThreshold > illuminance) {     var data= { illuminance: illuminance,                 latitude: gGeo.latitude, longitude: gGeo.longitude };     sender.send(data); // { ARTIK's client.post(url...); } } } client.on("resourcefound", function(resource) {   if ("/IlluminanceResURI" === resource.resourcePath) {     resource.on("update", handle);   } else if ("/GeolocationResURI" === resource.resourcePath){     resource.on("update",       function(resource) { gGeo = resource.properties; }); } }; 1 2 /IlluminanceResURI { illuminance: 42 } https://api.artik.cloud/ { illuminance: 42, latitude: 52.165, longitude: -2.21 } 3 1
  15. 15. Samsung Open Source Group 15Samsung Open Source Group Summary ● Open Connectivity establishes a specification – for interconnecting things, products, services – RESTful architecture based on existing standards (IETF, CoAP, Cbor) ● IoTivity implements it in C under Apache-2.0 license – Can run on micro controllers (baremetal) – Most Operating systems: GNU/Linux, Tizen, Yocto (GENIVI, LFAGL etc) – Other languages C++, JS are supported ● Automotive is one of OCF domains under development – Project is open to be extended with new technologies or services
  16. 16. Samsung Open Source Group 16 Q&A or/and Extras ?
  17. 17. Samsung Open Source Group 17Samsung Open Source Group IoTivity on LF AGL + Minnow max (OSHW) https://vimeo.com/156307187#iotivity-agl-demo-platform-20160222rzr
  18. 18. Samsung Open Source Group 18Samsung Open Source Group Use GeoLocation resource in Tizen apps https://vimeo.com/164000646#tizen-genivi-20160424rzr
  19. 19. Samsung Open Source Group 19Samsung Open Source Group References ● Entry points: – http://wiki.iotivity.org/automotive – https://openconnectivity.org/industries/automotive ● Going further: – https://openconnectivity.org/resources/iotivity – https://openconnectivity.org/resources/oneiota-data-model-tool – https://news.samsung.com/global/samsung-contributes-to-open-iot-showcase-at-ces-2017 ● Keep in touch online: – https://wiki.iotivity.org/community – https://wiki.tizen.org/wiki/Meeting – https://blogs.s-osg.org/author/pcoval/
  20. 20. Samsung Open Source Group 20Samsung Open Source Group Merci / Trugarez Thanks / 고맙습니다 Samsung OSG, SRUK, SEF, SSI, Open Connectivity Foundation and members, LinuxFoundation, FLOSS Communities: Tizen, Yocto, EFL, LF AGL, GENIVI, eLinux, Local: LabFabFr, CampOSV, UR1 IETR Rennes, IMT Atlantique, IoTBzh. Resources: xkcd.com, FlatIcons (CC BY 3.0: Freepik,Scott de Jonge, Gregor Cresnar) Tools: Libreoffice, openshot, + YOU ! Contact: https://wiki.tizen.org/wiki/User:Pcoval

×