48
Building your First Internet Of Things Solution - a Software Developer Perspective Raghavendra Ural Developer Evangelist Developer Relationship Division Intel Software @ragural Your logo

Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

  • Upload
    others

  • View
    5

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Building your First Internet Of Things Solution - a Software Developer Perspective

Raghavendra UralDeveloper Evangelist

Developer Relationship Division

Intel Software

@ragural

Your logo

Page 2: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Agenda

• The Compute Model Transforms Again

• Where is the opportunity?

• Architecture of IOT

• Challenges

• Where do “I” fit in?

• Where Intel® can help?

• Overview of Software developer journey into IOT

• Intel® Internet of Things Hardware

• Tools for app building

Page 3: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

The Compute Model Transforms Again

IoT is Driving the Next Compute Transformation

1975 1985 1995 2005 2015

Page 4: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

• 22pt Arial font is used for an introductory line or paragraph.This text may be a single heading for the bullets below ormultiple sentences when necessary.

– 18pt Arial bullet one

• Sub-bullet

– Bullet two

– Bullet three

Where is the opportunity?

Page 5: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Make everything smart

Smart CitySmart Energy GridSmart AgricultureSmart CarSmart TVMany More

Page 6: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

6

IOT Architecture

Sensor

Aggregation Layer

Gatew

ay and

Netw

ork Layer

Application Layer

Cloud Interface

Page 7: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Challenges

• Security & Privacy

• Big Data Explosion

• Countless components

• Power efficiency

• Standards/Interoperability

• Many more

Page 8: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Where do “I – Software Developer” fit in?

• Tablets, Phablets, Smart Phones, Ultrabook, LaptopsApplication Layer

• Embedded applicationsAggregation Layer

• Server PlatformsCloud Systems/Interfaces

• Building SensorsSensor Layer

• Network InterfacesGateway and Network Layer

Page 9: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Where Intel® can help you?

• Tablets, Phablets, Phones, Ultrabook, Intel Security, Mashery API, etc

Application Layer

• Intel Galileo, Intel Edison, MinnowboardMaxAggregation Layer

• Intel server platforms, Wind River Platforms, BIG Data

Cloud Interfaces/Systems

• NoneSensor Layer

• Intel Network Interface cards, Intel Wifi cardsGateway and Network Layer

Page 10: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Let’s get started with Intel IOT

IOT Hardware

Before you start

Software tools

APIs

Coding and Debugging

Page 11: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® Internet of Things Hardware

Page 12: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® Galileo Development Board – Gen 2

– 400MHz 32-bit Intel® Pentium instruction set architecture (ISA)-compatible processor

– 16 KByte L1 cache

– 512 KBytes of on-die embedded SRAM

– Simple to program: Single thread, single core, constant speed

– ACPI compatible CPU sleep states supported

– An integrated Real Time Clock (RTC), with an optional 3V “coin cell” battery for operation between turn on cycles.

Page 13: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® Galileo Development Board – Gen 2

Board I/O:

– Mechanically compatible with Arduino Uno– 20 digital input/output pins including 6 pins as

PWM outputs

– 6 analog inputs

– 2 UART (RX/TX)

– 1 I2C

– 1 ICSP 6-pin header (SPI)

– USB device connector (Host)

– Micro USB device connector (client)

– SD Card connector

– DC power jack (7V – 15V DC input)

Page 14: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® Edison

Page 15: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® Edison - Arduino Development BoardBoard I/O: Compatible with Arduino Uno (except only 4 PWM instead of 6 PWM)

– 20 digital input/output pins including 4 pins as PWM outputs

– 6 analog inputs

– 1 UART (RX/TX)

– 1 I2C

– 1 ICSP 6-pin header (SPI)

– Micro USB device connector OR (via mechanical switch) dedicated standard size USB host Type-A connector

– Micro USB device (connected to UART)

– SD Card connector

– DC power jack (7V – 15V DC input)

Page 16: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

More and More Shields

Source: sparkfun.com

Page 17: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Grove Starter Kit Plus - Intel® IoT Version

1 Base Shield v2

2 Grove - Buzzer V1.1

3 Grove – Button

4 Grove-LED v1.3

5Grove - Sound Sensor_V1.2

6 Grove - Rotary Angle Sensor

7 Grove-Touch Sensor

8 Grove - Smart Relay

9 Grove-Light Sensor

10 Grove - Temperature Sensor_V1.1

11 26AWG Grove Cable

12 Mini Servo

13 9V to Barrel Jack Adapter - 126mm

14 DIP LED Blue-Blue

15 DIP LED Green-Green

16 DIP LED Red-Red

11 Grove - LCD RGB Backlight

USB, serial and Ethernet

cables

Page 18: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® IoT Developer Kit Components

Intel Galileo Gen 1 & 2

Board

Intel EdisonArduino

Development Board

Yocto based Linux OS image

API Bindings C/C++, Node JS, Python

UPM (Sensor/Actuator library repository)LibMraa

NodeJSSupport

C/C++ Tool Chain

WyliodrinAgent

IoT Cloud Agent

Ha

rd W

are

S/W

Im

ag

e o

n I

oT

pla

tfo

rm

Intel XDK IoT Edition

Eclipse IDE +

ISS (Optional)

Wyliodrin(Visual

Programming)

Cloud Analytics / Mashery

IDE

/ T

oo

ls

(Win

, Ma

c, L

inu

x)

Sensors / Actuators

Arduino IDE

Page 19: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Before you start

Update Galileo Firmware• Download latest IDE from

http://arduino.cc/en/main/software

• Extract the content to a folder

• Power up the board and then (then only) connect the

USB to USB client

• Open Arduino IDE

• Go to Help and click on Firmware Update

Be Patient, it might take sometime. It might even disconnect itself from your computer.

DONT UNPLUG THE cable.It might take time but works!!!

Page 20: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Boot the Development Environment

Use PuTTy to connect to the board and execute

commands.

You can use WinSCP to transfer files to the board.

Login for Intel Galileo BoardUsername: root

Password: There is no password

Page 21: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Software Tools

Page 22: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Developer Kit C++ Tools

• One IDE for all three supported boards

• Ready to run sample code

• SSH Connection to developer board for remote GBD server.

• Eclipse tools also work for Arduino Sketch code build and debug

Page 23: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Developer Kit JavaScript Tools

• mraa – open source library for Galileo/Edison used API similar to the *MBED api (Intel Iot Devkit )

• io-js- open source library for Galileo/Edison used API similar to the Arduino API (Intel Labs China )

• johnny-five – Open source I/O library with plugins for various boards including Galileo (Gen2 demo upstairs)

• on/off – open source i/o library that can be used to manipulate ‘raw’ GPIO/PWM via sysfs interface

• i2c – node.js i2c library (uses sysfs)

JavaScript I/O Libraries for Galileo

Page 24: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Developer Kit Python Tools

There is one IDE for Intel® Galileo board. Works with Generation 1 and 2.

GUI based online python development from Wyliodrin

Wyliodrin agent pre-installed in IoTdevkit SD image.

(Galileo only for now)

Page 25: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

It’s Show Time

Page 26: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® GalileoNetwork Setup

Page 27: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Enable WiFi

Hardware setup:

1. Connect the board through FTDI cable or through Ethernet cable.

2. Connect Intel Centrio N135 wifi card to PCi slot

We use connection manager “connman” in DevKit

$ connmanctlconnmanctl>enable wificonnmanctl>scan wificonnmanctl>services*Ac Wired ethernet_984fee0081e8_cable

Raghs wifi_0cd292d9b3a4_5261676873_managed_pskwifi_0cd292d9b3a4_hidden_managed_wep

connmanctl> agent onAgent Registeredconnmanctl>connect wifi_0cd292d9b3a4_5261676873_managed_pskParaphrase?<enter your password>

Page 28: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Eclipse* Setup

Page 29: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® XDK Setup

Page 30: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Overview of “libmraa” and

“libupm”

Page 31: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Libmraa

• Defines the capabilities of GPIO pins,

Autodetection of Gen 1, Gen 2 and Edison DVT

Libupm

• Defines the interaction of high level sensors.

• Buttons, Buzzers, LCD, LED, Light Sensor, Servos, Rotary Angle Sensor, Relays, Sound Sensors, temperature sensors … more are added continually.

Purpose of Each Library

Page 32: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Using libmraa for the Blinky Light Demo

Page 33: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Using libupm for the Blinky Light Demo

Page 34: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Libmraa Error Codes…

Page 35: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Read a Potentiometer

Page 36: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Write to an LCD

Page 37: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Buttons

Page 38: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Light Sensor

Page 39: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Mini Servo

Page 40: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Temperature Sensor

Page 41: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Call for action

Page 42: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® Internet of ThingsDeveloper Program

Page 43: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Intel® Internet of Things Developer Program

A comprehensive developer program for hobbyists, students and entrepreneurial developers with outreach, training and tools required to rapidly develop, test and deploy applications for the Internet of Things (IoT).

Program includes:• Developer kit based on Intel® Galileo and Edison Technology

with package of easy to use hardware, software tools, libraries and cloud services

• 10 City IoT Roadshow distributing 1,000 kits• On-line community for learning, building, sharing

Join the community today at software.intel.com/IoT

Page 44: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Join us @ The Lalit Ashok, Bangalore

Nov 22 & 23, 2014

Sign up at iotroadshow.intel.com

#IntelMaker

Page 45: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Questions?

Page 46: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Contact

LinkedIn/Twitter: @ragural

Email: [email protected]

Page 47: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux

Resources

http://software.intel.com/iot

https://github.com/intel-iot-devkit

Page 48: Building your First Internet Of Things Solution - a ... · Intel® IoT Developer Kit Components Intel Galileo Gen 1 & 2 Board Intel Edison Arduino Development Board Yocto based Linux