seamless device connectivity with iotivity and zephyr · seamless device connectivity with iotivity...
TRANSCRIPT
Seamless Device Connectivity with
IoTivity and Zephyr
2/8/2018
By
Rajesh Sola,
Education Specialist
© KPIT Technologies Limited
Copy Right Guidelines
© 2018 KPIT Technologies Limited, Pune, India. All Rights Reserved.
KPIT Technologies Limited believes the information in this document is accurate as of its publication
date; such information is subject to change without notice. KPIT Technologies Limited acknowledges
the proprietary rights of other companies to the trademarks, product names and such other
intellectual property rights mentioned in this document. Except as expressly permitted, neither this
documentation nor any part of it may be reproduced, stored in a retrieval system, or transmitted in
any form or by any means, electronic, mechanical, printing, photocopying, recording or otherwise,
without the prior permission of KPIT Technologies Limited and/ or any named intellectual property
rights holders under this document.
2/8/20182
Automotive &
Transportation
Energy &
Resources
Consumer &
Industrial
Goods
High Tech Life Sciences Utilities
KPIT provides IT consulting and product
engineering to deliver transformational services and
products that improve the world we live in
© KPIT Technologies Limited2/8/20184
Global Footprint
© KPIT Technologies Limited2/8/20186
Headquartered in Pune (India)
Incorporated in 1990
Publicly traded company in India
Development Centers located in India, US,
Germany, China, and Brazil
31 offices across 16 countries
60 Patents filed
FY2017 revenues $494 Million
12,000+ Employees Globally
Corporate Quick Facts
© KPIT Technologies Limited
Outline
• IoTivity Architecture & API support
• Running Examples & Working with Simulator
• OCF Standard Specifications
• Introduction to Zephyr OS, Network Stack
• IoTivity-constrained on Zephyr
• OCF Automotive Project
• IoTivity ports in Automotive Distributions(GENIVI, AGL)
2/8/20188
© KPIT Technologies Limited2/8/20189
© KPIT Technologies Limited
Hands-on Bundle - Checklist
IoTivity source code & built example (v1.2.1)
Eclipse with IoTivity Simulator
Zephyr source code (v1.9.2), Zephyr SDK (0.9.x)
IoTivity-Constrained source (code github.com/iotivity/iotivity-constrained)
OCF/OIC Specifications
wiki.iotivity.org
RAML Files - oneiota.org
2/8/201810
© KPIT Technologies Limited2/8/201811
IoTivity
Discussion
© KPIT Technologies Limited
IoTivity
• Seamless Device to Device Connectivity
• Reference Implementation for OIC/OCF standards
• Cross platform support
• Essential Building Blocks
– Discovery
– Data Transmission
– Data Management
– Device Management
• Built on top of existing standards
– CoAP
– CBOR
– DTLS
2/8/201812
© KPIT Technologies Limited
Platform Support
• OS Environments
– Generic Linux (Debian/Ubuntu)
– Yocto **
– Tizen
– OpenWrt
– Windows, Mac OS
– Android, iOS
• IoTivity-constrained
2/8/201813
• Desktop
• Reference Targets/SBCs
(Typically Yocto based)
– Minnowboard
– Intel Edison
– RaspberryPi series
– Samsung ARTIK series
– Odroid series
– Draganboard 410C
– Imx6 series
• MCU Based
– Arduino (Due) https://wiki.iotivity.org/hardware
https://wiki.iotivity.org/os
© KPIT Technologies Limited
APIs & Protocol Stack
2/8/201814
C APIsC++
APIs
Java
APIsNode.js
github.com/otcshare/iotivity-node
© KPIT Technologies Limited
Building IoTivity & Examples
• Source code availability : www.iotivity.org/downloads
• Install necessary dependencies
• Clone external libraries – tinycbor, mbedtls
• Build using scons
• For detailed instructions : wiki.iotivity.org/build
• Locate built examples w.r.t out/${TARGET_OS}/${TARGET_ARCH}/${BUILD_MODE}
– resource/examples/*
– service/*
– resource/csdk/stack/samples/linux/*
2/8/201816
Demo/Hands-on
© KPIT Technologies Limited
Working with Simulator
2/8/201817
https://wiki.iotivity.org/iotivity_simulator
Demo/Hands-on
© KPIT Technologies Limited2/8/201818
OCF Standard Specifications
Discussion
© KPIT Technologies Limited
Open Connectivity Foundation(OCF)
• Formerly Open Interconnect Consortium(OIC)
• Fill the gaps in IOT standards
• Secure Interoperability
• Elements
– Standard Specifications - OCF
– Reference Implementations - IoTivity, AllJoyn
– Data Models - OneIoTa
– Device Certification
• Market Segments/Verticals
– Smart Home
– Automotive
– Health Care
– Smart Industry
2/8/201819
StandardsReference
Implementation
Vertical Profiles & Data Models
Certification
© KPIT Technologies Limited
OCF Architecture & Elements
• Client
• Server
• Resource
• CRUDN
• Messaging
• Transport
2/8/201821
Major Aspects:-
• Resource Model
• RESTful Operations
• Abstractions
© KPIT Technologies Limited
Functional Block Diagram & Communication layers
2/8/201822
Framework:-
• Identification & Addressing
• Discovery
• Resource Model
• CRUDN
• Messaging
• Device Management
• Security
OCF Roles
OCF- non OCF Bridging
© KPIT Technologies Limited
Resource Models
• Resources are
– Hosted by server
– Accessed by client
• Resource Encapsulation
• Resource Container
• Bridging scenarios
– OCF to OCF
– OCF to Non OCF
2/8/201823
rt Resource Type
if Resource Interfaces
n Name
id Resource IdentityCommon Properties
of Resources
© KPIT Technologies Limited
Request-Response Flow
2/8/201824
Request: /GET
Response : State
Response : Ok
Request : /POST On
Client Server
© KPIT Technologies Limited
Interfaces
2/8/201825
Baseline oic.if.baseline
linkslist oic.if.ll
Batch oic.if.b
read-only oic.if.r
read-write oic.if.rw
actuator oic.if.a
sensor oic.if.s
© KPIT Technologies Limited
Identification and Addressing
• Network Address
• URIs
– Fully Qualified
– Relative
• Namespace in URI
• Resource Identification
– Resource Type
– Interface
– Properties
• Common Resources
2/8/201826
{
"rt": "oic.r.foobar",
"if": "oic.if.a",
"value": "foo value"
}
Resource
Type
URI
Device oic.wk.d /oic/d
Platform oic.wk.p /oic/p
Discovery oc.wk.res /oic/res
Presence oc.wk.ad /oic/res
© KPIT Technologies Limited
Resource Discovery & Introspection
• CoAP based endpoint discovery
• Advertising & Discovery
• Discover all devices
GET /oic/res
• Resource specific discovery
GET /oic/res?rt=oic.r.switch.binary
• Provisioning
– onboarding
– configuration
• Resource Directory
• Payload formats
2/8/201827
© KPIT Technologies Limited
CRUDN Operations
• RESTful API model
• CRUDN operations
• CoAP Transport Layer
• CRUDN-REST mapping
• CBOR Data Format
• Future Transports
2/8/201828
C - CREATE
R - RETRIEVE
U - UPDATE
D - DELETE
N – NOTIFY *
© KPIT Technologies Limited
Data Models – oneIoTa.org
2/8/201829
© KPIT Technologies Limited
Device Profiles
• Automotive
• Smart Home
• Smart Industry
• Healthcare
2/8/201830
© KPIT Technologies Limited
Network and Connectivity
• L2 Connectivity
• Networking
• Transport
• Framework
• Application Profiles
2/8/201831
© KPIT Technologies Limited2/8/201832
Zephyr
Discussion
© KPIT Technologies Limited
Introduction to Zephyr
• Small Scalable Open Source RTOS
• Single Address Space
• Linux Like
– Driver Model
– Configuration Model (KConfig)
– Device Tree Bindings
• Wide spread of targets
• Reuse of existing stacks & satndards
• IOT Friendly
– Rich Drivers & APIs
– Network Stack
– Support for BLE and PAN
– Protocol Support
2/8/201833
Little Brother
Of Linux!!
© KPIT Technologies Limited
Network Sub System
2/8/201834
• L2 Stack and Drivers
• IPv6 support
• 6LowPAN over BLE, IEEE 802.15.4 and RPL
• BSD Compatible Socket APIs – TCP, UDP
• Application layer Protocols
– MQTT, HTTP, CoAP, LWM2M
• Added security – TLS, DTLS
• Working with Qemu without target board
• github.com/zephyrproject-rtos/net-tools
© KPIT Technologies Limited
Zephyr System Architecture
2/8/201835
© KPIT Technologies Limited
Running Zephyr Examples
2/8/201836
ARM Cortex-M3
• Setting up SDK
• Hello World Program
• Semi hosting output
x86 Arch
Demo/Hands-on
© KPIT Technologies Limited2/8/201837
IoTivity-Constrained
Discussion
© KPIT Technologies Limited
IoTivity-constrained
2/8/201838
Ref:- https://wiki.iotivity.org/constrained
https://github.com/iotivity/iotivity-constrained
Available
Ports
© KPIT Technologies Limited
OCF in Zephyr
2/8/201839
Demo/Hands-on
© KPIT Technologies Limited2/8/201840
OCF in Automotives
© KPIT Technologies Limited
OCF’s Automotive Project
• Interoperable standard for connected
vehicles
• Basis for
– V2X solutions
– Smart Phone Interaction, eg:- RVI
• Initial data models for IVI and HVAC
(OneIota.org)
2/8/201841
openconnectivity.org/business/markets/automotive
© KPIT Technologies Limited
IoTivity in Automotive Distributions
• meta-oic layer in Yocto based distributions - GENIVI & AGL
• Currently IoTivity 1.2.1 (OIC 1.1) is implemented in meta-oic layer
2/8/201842
wiki.iotivity.org/automotive wiki.iotivity.org/yocto
Technologies for a better world
Thank you