Upgrade to Pro — share decks privately, control downloads, hide ads and more …



Phil "RzR" Coval

April 04, 2017

More Decks by Phil "RzR" Coval

Other Decks in Technology


  1. Samsung Open Source Group 1
    connected with
    Open Source Innovation Spring 2016
    Philippe Coval
    Samsung Open Source Group / SRUK
    [email protected]

    View Slide

  2. Samsung Open Source Group 2
    Until 2020

    View Slide

  3. Samsung Open Source Group 3
    IoT ? You said ?

    “I” like Interoperability
    – Do we want all devices exposed to the Internet ?
    – Local connectivity between devices
    – Today, gateway is a reasonable answer

    “O” like Openness
    – Open standards, protocol, implementations

    “T” like Trustworthy
    – Security is Sine qua non condition for IoT

    View Slide

  4. Samsung Open Source Group 4
    “T” like platform

    Integrates many existing components :
    – Mainline Linux kernel with SMACK security module
    – libc, X11/Wayland, GStreamer, EFL, WebKit/Blink

    Split into profiles for specific features
    – Mobile, Wearable, IVI...

    Shipped into consumer electronic products
    – 2011 … 2012 ... 2013 … 2014 … 2015 … 2016 ...

    View Slide

  5. Samsung Open Source Group 5
    “I” like framework

    Seamless device to device connectivity for IoT
    – Core: Discovery, Secure Transmission, Data/Device
    – Plus profile services : SmartHome, Automotive, Health...

    C/C++ library (Apache 2.0)
    – RESTfull design : CoAP and CBOR

    Backed by Open Connectivity Foundation
    – Establishes standard, certification
    – With Industry support (Samsung, Intel, Cisco, GE, +170)

    View Slide

  6. Samsung Open Source Group 6
    “O” like Openness

    Tizen and IoTivity are
    – FLOSS LinuxFoundation collaborative projects

    IoTivity / OCF
    – Not tied to Tizen or Linux or any vendor

    Cross platform : Linux, Yocto, Tizen, Android, MCUs, TBC
    – Abstract Transport :

    IP, Bluetooth, BLE, WiFi, +plugins (Zigbee, LTE, NFC)
    – Backed by Open Connectivity Foundation

    Open standard, with 170+ members

    View Slide

  7. Samsung Open Source Group 7
    Today's reality

    Tizen:3.0 platform supports IoTivity
    – Only on development devices (Single Board Computers)

    Some 2.x products are supporting Native APIs
    – On actual devices : Mobile and Wearables !

    IoTivity is also supported outside Tizen
    – Automotive: Poky based system (GENIVI, AGL, ...)
    – Bridges, Web, Cloud : IoTivity node

    Open many developers opportunities !
    – Convergence

    View Slide

  8. Samsung Open Source Group 8
    Let's practice

    View Slide

  9. Samsung Open Source Group 9
    Challenge : IoT GPS Map

    Share a GPS position to nearby devices
    – https://youtu.be/Y7gwAlaoq5U#iotivity-gears2-20160427rzr

    Using IoTivity on Tizen powered devices
    – Make a basic server:

    shares a resource (pair of float numbers)

    To run on supported device
    – Make a basic client:

    displays position on a map

    To run on consumer product(s)

    View Slide

  10. Samsung Open Source Group 10
    Single Board Computer on Tizen 3

    RPI 0
    – 5 EUR
    – Yocto
    – GPIO
    – GPU
    – USB
    – ARMv6
    – No Eth

    RPI 2
    – ARMv7
    – Ethernet

    View Slide

  11. Samsung Open Source Group 11
    Build an IoT server

    Invest 5 EUR into RaspberryPI zero

    Learn a bit about Yocto (or ask me helper script)

    And build a tizen-distro image
    source ./tizen-common-init-build-env build-common
    BBLAYERS += ".../meta-raspberrypi"
    BBLAYERS += ".../meta-oic"
    IMAGE_INSTALL += " iotivity "

    Add virtual GPS server recipe and rebuild image

    View Slide

  12. Samsung Open Source Group 12
    Build IoT clients 1/2 : library

    Setup and configure GBS for :
    – Tizen:2.4:Mobile for Z1
    – Tizen:2.3.1:Wearable for Gear S2
    – Tizen:3.0 for x86 or ARM

    Build dependencies 1st : (scons, boost...)
    – git clone $URL -b ${branch} # (ie: tizen, tizen_2.4)
    – gbs build -p ${profile} # (ie: tizen_mobile-armv7l)

    In the end : iotivity-*.rpm

    View Slide

  13. Samsung Open Source Group 13
    Build IoT clients 2/2 : app

    Create Native EFL app (C/C++)
    – Using supported tizen-sdk
    – For selected profile :

    Tizen:2.4:Mobile for Z1 or Tizen:2.3.1:Wearable for Gear S2

    Integrate IoTivity library :
    – Unpack lib and headers from RPM in project
    – Update Eclipse project settings (to link with IoTivity see wiki)

    Code your client using EFL (hint: elm_map)

    Deploy package to Device (*.tpk)

    View Slide

  14. Samsung Open Source Group 14
    Client / Server Flow
    OCPlatform::Configure(OC::PlatformConfig )
    switch(getRequestType) {
    case 'GET' :
    case 'PUT' :
    // Multicast for discovery:(UDP)
    OCPlatform::Configure(OC::PlatformConfig )
    IoTivity Server
    (on Tizen 3)
    IoTivity Client(s)
    (on Tizen 2)
    IP Network

    View Slide

  15. Samsung Open Source Group 15
    Shared Resource

    Once setup server owns resource's value:
    – Updates it in a loop (from GPS or simulated)

    m_Representation.setValue("lat", m_lat);

    m_Representation.setValue("lon", m_lon);

    Once discovered client reflects the resource:
    – Listen as observer (transparent)
    – or polling on GET (using EFL timer)
    – onChange(... const OCRepresentation &rep …)

    lat = rep.getValue("lat");

    lon = rep.getValue("lon");

    View Slide

  16. Samsung Open Source Group 16
    More Showcases

    View Slide

  17. Samsung Open Source Group 17
    More Showcases

    Real world resources : Relay control
    – Using GPIO (MinnowMax, GENIVI, OSVehicle)


    Check Automotive WIP about Bridging RVI to OCF too

    View Slide

  18. Samsung Open Source Group 18

    You can build your own full FLOSS IoT device
    – Running on and OS
    – On accessible developer devices (SBC)

    Interact with commercialized products
    – Through Native apps
    – Developed with Tizen SDK
    – Linked with IoTivity

    Or any other devices of your dreams

    View Slide

  19. Samsung Open Source Group 19

    Entry point :
    – https://wiki.iotivity.org/tizen

    Join online community (IRC) :
    – https://wiki.tizen.org/wiki/Meeting

    Resources :
    – https://github.com/tizenteam/iotivitymap
    – https://blogs.s-osg.org/iotivity-ready-automotive/
    – https://wiki.tizen.org/wiki/Raspberry_Pi
    – http://www.slideshare.net/SamsungOSG/

    View Slide

  20. Samsung Open Source Group 20
    IRIL, INRIA, Pole Systematic, PF/OpenWide,
    FLOSS Communities : Tizen, IoTivity, EFL, Yocto
    LinuxFoundation, OCF, SamsungOSG,
    Libreoffice, FlatIcons (CC BY 2.0)
    YOU !

    View Slide