• “I” like Interoperability – Do we want all devices exposed to the Internet ? – <blink>Local connectivity between devices</blink> – Today, gateway is a reasonable answer • “O” like Openness – Open standards, protocol, implementations • “T” like Trustworthy – Security is Sine qua non condition for IoT
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
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
• 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)
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
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
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)
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<double>("lat"); • lon = rep.getValue<double>("lon");
resources : Relay control – Using GPIO (MinnowMax, GENIVI, OSVehicle) • https://vimeo.com/164000646#tizen-genivi-20160424rzr • Check Automotive WIP about Bridging RVI to OCF too
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