Edge Of The Web

49
Justin Mclean www.classsoftware.com A Practical Guide to Connecting Hardware to the Web

description

Looks at the revolution in low cost easy to program embedded computing. We’ll look at how this has come about and how easy it now is to be able to interface with hardware from within a web browser with a focus on the Arduino platform.

Transcript of Edge Of The Web

Page 1: Edge Of The Web

Justin Mcleanwww.classsoftware.com

A Practical Guide to Connecting Hardware to the Web

Page 2: Edge Of The Web

• Director of Class Software for 15 years

• Developing and creating web applications for 15 years

• Programming for 25 years

• Adobe solution partner

• Adobe certified developer and trainer in Flex and ColdFusion

• Based in Sydney Australia

Who am I?

Page 3: Edge Of The Web

• Low cost

• Small components

• Complex components with simple interfaces

Electronics Trends

Page 4: Edge Of The Web

• Easier to program

• Use of high level languages

• Software tools

• Open source

Computing Trends

Page 5: Edge Of The Web

• Low cost fast devices

• It’s easy to communicate between devices and computers

• Can build complex systems from off the shelf components

Are We There Yet?

Page 6: Edge Of The Web

Overview of the Arduino Platform

Arduino

Page 7: Edge Of The Web

Arduino Platform• Open source hardware and software platform

• Easy to program

• Hardware is flexible, fast, low power and low cost

Page 8: Edge Of The Web

• Comes in a number of shapes sizes

• Low cost

• Easy to extend

Arduino Hardware

Page 9: Edge Of The Web

Arduino Boards

Page 10: Edge Of The Web

Arduino Shields

Page 11: Edge Of The Web

• Open source cross platform IDE

• Alpha but very stable

• Code in high level C like language

• Updated frequently

• Growing and active community

Arduino Software Platform

Page 12: Edge Of The Web

• C like high level language

• Inbuilt functions to read and set digital and analog inputs and outputs

• Includes libraries to perform common hardware or software tasks

Arduino Code

Page 13: Edge Of The Web

Arduino IDE

Page 14: Edge Of The Web

Led Shield Demo

Page 15: Edge Of The Web

• Debugging can be hard

• No simulator

• Memory, power and speed limits

• Helps to have a little electronic knowledge

Issues

Page 16: Edge Of The Web

How Arduinos communicate with the outside world

Connecting Arduinos

Page 17: Edge Of The Web

Connection Methods• Direct to computer

• Wireless (XBee modems)

• Ethernet or WiFi

• The Cloud

Page 18: Edge Of The Web

Supported Languages• Flex and Flash

• Processing

• Python

• Ruby

• Java

• C, C++, C# and Objective C

• .NET

Page 19: Edge Of The Web

How to communicate with Arduinos and via PCs

Direct Connection

Page 20: Edge Of The Web

• Most languages can’t talk USB

• Solution: Socket to USB proxy

Direct Communication

Page 21: Edge Of The Web

• Library to communicate with proxy

• Proxy to USB communication

• USB to arduino

Layers of Communication

Page 22: Edge Of The Web

USB Proxy FirmataLibrary

Application Code Arduino

USBCable

TCP/IPSocket

Computer Arduino

Function Calls and Events

Code

Connection Diagram

Page 23: Edge Of The Web

• Simple binary protocol

• Based on MIDI

• Easy to extend

• Standard Arduino software library

Firmata Protocal

Page 24: Edge Of The Web

Arduino Demo

Page 25: Edge Of The Web

• Works best with a persistent connection

• If not persistent startup time and auto reset issues

• Solution: custom bootloader

• Needs a computer

• Proxy must be running on machine Arduino is connected to

Issues

Page 26: Edge Of The Web

Using Arduinos with XBee modems

Xbee Modems

Page 27: Edge Of The Web

XBee Modems• Hardware wireless modem

• Low cost

• Consume very little power

• Good range

• Easy to configure

Page 28: Edge Of The Web

XBee Modems

Page 29: Edge Of The Web

XBee Demo

Page 30: Edge Of The Web

Using Arduino Ethernet Shields

Ethernet

Page 31: Edge Of The Web

• Allow direct internet connection

• No dedicated computer needed

• Shields need a little config

• Can act as web server or client

Ethernet Shields

Page 32: Edge Of The Web

Ethernet Shields

Page 33: Edge Of The Web

• Web server code

• Easy to modify

Ethernet Arduino Code

Page 34: Edge Of The Web

Ethernet Demo

Page 35: Edge Of The Web

An easier way to connect Arduinos

Pachube

Page 36: Edge Of The Web

• Store and share and acess realtime sensor data

• Simple and secure

• API to interact with all data and services

• Graphs and maps

Pachube

Page 37: Edge Of The Web

Pachube

Page 38: Edge Of The Web

• Communicates HTTP

• Plain text (csv), XML or Jason

• REST based

• Large base of supported languages

Pachube API

Page 39: Edge Of The Web

• Runs on Arduino with ethernet shield

• Sends values to Pachube

• Request values via Pachube

Pachube Arduino Code

Page 40: Edge Of The Web

• Call Pachube API using HTTP call

• Parse XML

• XML is in EEML format

• Display or act on values

Pachube Interaction

Page 41: Edge Of The Web

Pachube Demo

Page 42: Edge Of The Web

• Pachube can call an URL on value change

• The URL can be a dynamic

Pachube Triggers

Page 43: Edge Of The Web

• Expose yourself to new ideas and new ways of solving problems

• Involves interaction with the real world

• Encourages creativity

• Makes you a better programmer

Why do this?

Page 44: Edge Of The Web

It’s Fun!

Page 45: Edge Of The Web

• Ask now, see me after session or email [email protected]

Questions?

Page 46: Edge Of The Web

List of useful hardware and software sites

Useful Sites

Page 47: Edge Of The Web

• Arduino http://www.arduino.cc for software, user forum and playground

• Ethernet Shields http://arduino.cc/en/Reference/Ethernet

• Pachhub http://www.pachube.com/

Software Sites

Page 48: Edge Of The Web

• Spark Fun (US) http://www.sparkfun.com/

• Adafruit Industries (US) http://www.adafruit.com/

• Electronic Goldmine (US) http://www.goldmine-elec.com/

Hardware Sites

Page 49: Edge Of The Web

• Lady Ada http://www.ladyada.net/

• Evil Mad Scientist http://www.evilmadscientist.com/

• NY Resistor http://www.nycresistor.com/

• Make Zine http://makezine.com/

Other Sites