Building Blocks for IoT Devices

Preview:

Citation preview

Building Blocks for IoT Devices

Anil GorthySoftware Engineer

linkedin.com/in/anilgorthy@ganilb

© Anil Gorthy

Components of IoT Devices

Controller, Sensor and Actuators

PhysicalObject Internet

© Anil Gorthy

A device that has sensors, actuators and uses wireless protocols to communicate

Created to solve a specific need for the consumer

IoT Devices

© Anil Gorthy

Source: IoT - The Networked Physical World http://dspace.mit.edu/handle/1721.1/86935

© Anil Gorthy

Tear-down of Philips Hue

Source: MIT Technology Review, 2014 © Anil Gorthy

Deeper Dive

© Anil Gorthy

Building Blocks

- microcontrollers- sensors- motors

Physical Computing

Device

Design Software

- industrial- interaction- visual

- build the device - use the device

- Bulb- Doorbell- IP camera- Thermostat

© Anil Gorthy

Typical ArchitectureSoftwareDevice

Server

GPIO / I2C

Micro-controller

Wi-Fi / BLE

ShieldSensor

© Anil Gorthy

Server

Messaging

RESTful API

Software

Arduino Uno WiFly Shield VoiceBox Shield

WiFi Talking Stephen Hawking

Device

Typical Architecture(Example)

© Anil Gorthy

- Start with a sketch

- Iterate on the design

- Create foamcore or cardboard mockups

- Later, 3D printed models

Industrial Design

Steps

- Tinkercad

- SolidWorks

- Rhino

- SketchUp

Tools

© Anil Gorthy

MicrocontrollersRapid prototyping

Quickly identify connectivity and controls

Power efficient

Built-in radios

C++, JavaScript or use littleBits which requires very little programming

Physical Computing

© Anil Gorthy

Arduino components

pins or connections

sensors - ways of getting info into your device, finding out things about the surroundings such as pressure, temperature, humidity, proximity

actuators - outputs for the device which let your device do something to the outside world such as motors, lights

shields - circuit boards that provide capabilities such as Wi-Fi, BLE, etc

IDE for programming - uses a simplified version of C++

Physical Computing

Connecting an Arduino

© Anil Gorthy

© Anil Gorthy

Let us connect a light bulb

Physical ComputingSoftware

/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards.// Pin 11 has the LED on Teensy 2.0// Pin 6 has the LED on Teensy++ 2.0// Pin 13 has the LED on Teensy 3.0// give it a name:int led = 13;

// the setup routine runs once when you press reset:void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); }

// the loop routine runs over and over again forever:void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second} © Anil Gorthy

Arduino IDE Physical ComputingSoftware

© Anil Gorthy

Architecture - II

Source: IoT - The Networked Physical World http://dspace.mit.edu/handle/1721.1/86935

Software

© Anil Gorthy

Inspiration

Source: Dragon, http://www.digitalhabits.it/dragon-wireless-led-modular-lamp/

Two outputs

Light : 21 white 3000k 110 LEDs

Microprocessor8 Bit, 32 Mhz

One input

Device

© Anil Gorthy

Thank you

© Anil Gorthy

Recommended