html5 powered internet of things products

Post on 01-Jul-2015

319 Views

Category:

Software

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

Leveraging HTML5, JavaScript, CSS, and Datadipity (http://clickslide.co) developers can build internet connected products in 1 day. We have demonstrated this technique by winning multiple hackathons. The products we've created include a connected Dog Collar, a connected door lock for keyless entry, a connected garbage can to weigh your trash and many more. Using this advanced technique, IoT products can be reduced to one HTML file and one Javascript file running inside of a Phonegap application. Developers can leverage existing APIs and cloud services to build a virtual full-stack without having to learn anything new or program any of the API interactions. We believe HTML5 is the future of software development and aim to support HTML5 developers with a fast and stable method to deliver IoT products with HTML5 & Javascript only. Here is an example of an IoT product built in 1 day using this technique: https://www.youtube.com/watch?v=9C6MgZsbVYE

TRANSCRIPT

Clickslide.coaaron@clickslide.co@clickslideCTO

Introduction

ActionScript

Cordova

JavaScript

PHP

• Ruby

• C++

• C#

• Java

AWS

Jelastic

• Heroku

Node.js

• Binary Packets

APIs!!!!!

Clickslide.coaaron@clickslide.co@clickslideCTO

HTML5 Powered IoT Products

JavaScript and the virtual API software stack.

Clickslide.coaaron@clickslide.co@clickslideCTO

What We’ll Cover

Part 1:

General Overview of infrastructure for Virtual

API Software Stack.

Part 2:

Breakdown of a practical example with

sample code and process overview.

Clickslide.coaaron@clickslide.co@clickslideCTO

What are IoT Products?

Clickslide.coaaron@clickslide.co@clickslideCTO

“Smart” vs. “Intelligence”

Smart and intelligent are not the same

Clickslide.coaaron@clickslide.co@clickslideCTO

Internet Connected

What does it take to get an object online?

Clickslide.coaaron@clickslide.co@clickslideCTO

Sensor Data

Quick Demo of using sensor data in

JavaScript using:

• Simply.js

• Pebble Watch

Clickslide.coaaron@clickslide.co@clickslideCTO

IoT Infrastructure

JavaScript everywhere!

Clickslide.coaaron@clickslide.co@clickslideCTO

JavaScript in the browser

• Data Analysis

• Business Logic

Clickslide.coaaron@clickslide.co@clickslideCTO

JavaScript in Cordova (Phonegap)

• Quick demo of App structure for Cordova

• Event Driven

• Templates

– Jsviews is awesome

• Plugins

Clickslide.coaaron@clickslide.co@clickslideCTO

JavaScript on Arduino

• Johnny Five

• Firmata

• Quick Demo of LED blinky

Clickslide.coaaron@clickslide.co@clickslideCTO

I APIs

Clickslide.coaaron@clickslide.co@clickslideCTO

HTTP

vs.

Web Hooks

vs.

Web Sockets

Clickslide.coaaron@clickslide.co@clickslideCTO

HTTPKeep it in the client!

Large packets of data all at once

Clickslide.coaaron@clickslide.co@clickslideCTO

Web Hooks

If This Then What?

Push notifications for servers

Clickslide.coaaron@clickslide.co@clickslideCTO

1 : 1

POST

Web Hooks

No chain of events

Clickslide.coaaron@clickslide.co@clickslideCTO

Web Sockets

“Real Time” messaging for Apps

ClientServer

Clickslide.coaaron@clickslide.co@clickslideCTO

Information Routing

Think of Node.js as a message router for Web Sockets and Web Hooks.

Node.js

API

Node.js

Service

Node.js

Service

Node.js

Service

TCP

TCP

TCP

Clickslide.coaaron@clickslide.co@clickslideCTO

Relieve Stress

Move business logic to the front-end

Clickslide.coaaron@clickslide.co@clickslideCTO

API Intelligence

Set it and forget it

Front End

API

APIAPI

IaaS

Social, Geo, SaaS, etc.Quantifiable Self

BaaS

Clickslide.coaaron@clickslide.co@clickslideCTO

Front-end Only

Business logic in a JavaScript client.

Front End

API

APIAPI

IaaS

Social, Geo, SaaS, etc.Quantifiable Self

BaaS

Web Socket

Router

Clickslide.coaaron@clickslide.co@clickslideCTO

Data Structuring

• Reusable Logic

• Reusable components

• Plug-’n’-play intelligence with APIs

• Focus on building beautiful front-ends

• 100% JavaScript applications

Clickslide.coaaron@clickslide.co@clickslideCTO

Software Stack

Client(HTML/CSS/J

avaScript)Serversdatabases

Traditional proprietary software stack

Programming required

Clickslide.coaaron@clickslide.co@clickslideCTO

Software Stack Using APIs

HTML5 Client

Server

databases

Traditional proprietary software stack leveraging APIs

APIs

Programming required

Clickslide.coaaron@clickslide.co@clickslideCTO

Virtual API Stack

Client(JS/HTML5)

API Powered JavaScript Client

APIs

Programming required

Clickslide.coaaron@clickslide.co@clickslideCTO

Virtual API Stack with

Datadipity

Datadipity

Front-end Only – JavaScript Everywhere

APIs

NML.js

Client

Programming required

No Programming required

Clickslide.coaaron@clickslide.co@clickslideCTO

Security

• No data stored on Client

• PCI Compliant

• Copyright Algorithms where needed

• SSL

• MD5/SHA Hash

Clickslide.coaaron@clickslide.co@clickslideCTO

Security Continued

Clickslide.coaaron@clickslide.co@clickslideCTO

BREAK TIME

Recap

• Virtual API Software Stack – No More

Backend!

• APIs Provide Intelligence to smart objects

• JavaScript Firmware

Clickslide.coaaron@clickslide.co@clickslideCTO

My Hardware Setup

Clickslide.coaaron@clickslide.co@clickslideCTO

The Firmware

• Johnny-five for Node.js

– Also, Cylon-js etc..

Clickslide.coaaron@clickslide.co@clickslideCTO

The Webhook

• Get data from M2X locally with Ngrok

Clickslide.coaaron@clickslide.co@clickslideCTO

The HTML

• Socket.io

• Bootstrap

• JSViews

• Jquery

• Modernizer

• NML.js

Clickslide.coaaron@clickslide.co@clickslideCTO

The App

Clickslide.coaaron@clickslide.co@clickslideCTO

APIs To Integrate

• AT&T M2X for real time sensor data

• AT&T In App Messaging for SMS

• Twitter

• Facebook

Clickslide.coaaron@clickslide.co@clickslideCTO

Mashup APIs

• Facebook

• Twitter

• SMS

Clickslide.coaaron@clickslide.co@clickslideCTO

Test The Integration

Clickslide.coaaron@clickslide.co@clickslideCTO

Structure The Data

Clickslide.coaaron@clickslide.co@clickslideCTO

Download NML.js

• https://github.com/clickslide/NML.js

Clickslide.coaaron@clickslide.co@clickslideCTO

Publish The API

• Generates XML, JSON, JSONP REST

endpoint for your mashup.

Clickslide.coaaron@clickslide.co@clickslideCTO

Create Cordova Ready App

Clickslide.coaaron@clickslide.co@clickslideCTO

Prepare App Views

• JSViews

– ./templates/jsviews/loading-progress.html

– ./temples/jsviews/login-register-auth.html

Clickslide.coaaron@clickslide.co@clickslideCTO

Instantiate NML.js

Clickslide.coaaron@clickslide.co@clickslideCTO

Take Away

• Firmware is JavaScript, which is a different

type of front-end

• JavaScript developer can now be founders

of hardware companies

• 2 man team to manage full IoT company

at scale; 1 firmware, 1 full-stack.

Clickslide.coaaron@clickslide.co@clickslideCTO

Where JavaScript Shines

• Web Hooks

– to Node.js Server

• Web Sockets

– Server to Client(s)

– Client to Client(s)

• Ajax

– Client to APIs

– APIs to Client(s)

Clickslide.coaaron@clickslide.co@clickslideCTO

Tools

• Server Frameworks– Meteor

– Express

– Percolate

– Keystone

– Actionhero

• BaaS– Parse

– Kinvey

– Firebase

• SaaS– Social

– Geolocation

– Gaming

• Scaling– AWS

– Heroku

– Joyent

– Nodejitsu

– MongoDB - the JavaScript of NoSQL dbs.

• IaaS– Datadipity

• Front-end– Angular

– Backbone

– NML.js

– Jquery

Clickslide.coaaron@clickslide.co@clickslideCTO

Things to Remember

• APIs are eventually consistent

• Leverage Services not Servers

• Up-front costs are minimally higher, but

save drastically in the long term

• Use Web Sockets to send events between

apps

• Use APIs to get Data into your Apps

• HTML5 is the future!

Clickslide.coaaron@clickslide.co@clickslideCTO

Sign Up Today

http://clickslide.co

top related