Transcript
Page 1: Connecting hardware to ColdFusion

Connecting Hardware to ColdFusionJustin McleanEmail: [email protected]: @justinmcleanBlog: http://blog.classsoftware.com

Saturday, 24 April 2010

Page 2: Connecting hardware to ColdFusion

Who am I?• Director of Class Software for 10 + years

• Developing and creating web applications for 15 years

• Programming for 25 years

• Adobe Community Professional

• Adobe certified developer and trainer in ColdFusion and Flex

• Based in Sydney Australia

Saturday, 24 April 2010

Page 3: Connecting hardware to ColdFusion

Electronics Trends• Low cost components

• Small components

• Complex components with simple standard interfaces

Saturday, 24 April 2010

Page 4: Connecting hardware to ColdFusion

Computing Trends• Easier to program

• Use of high level languages

• Software tools

• Open source

Saturday, 24 April 2010

Page 5: Connecting hardware to ColdFusion

Are We There Yet?• Low cost fast devices

• It’s easy to communicate between devices and computers

• Can build complex systems from off the shelf components

Saturday, 24 April 2010

Page 6: Connecting hardware to ColdFusion

ArduinoOverview of the Arduino Platform

Saturday, 24 April 2010

Page 7: Connecting hardware to ColdFusion

Arduino Platform• Open source hardware and software platform

• Easy to program

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

Saturday, 24 April 2010

Page 8: Connecting hardware to ColdFusion

Arduino Hardware• Comes in a number of shapes sizes

• Low cost

• Easy to extend

Saturday, 24 April 2010

Page 9: Connecting hardware to ColdFusion

Arduino Boards

Saturday, 24 April 2010

Page 10: Connecting hardware to ColdFusion

Arduino Boards

Saturday, 24 April 2010

Page 11: Connecting hardware to ColdFusion

Arduino Boards

Saturday, 24 April 2010

Page 12: Connecting hardware to ColdFusion

Arduino Boards

Saturday, 24 April 2010

Page 13: Connecting hardware to ColdFusion

Arduino Shields

Saturday, 24 April 2010

Page 14: Connecting hardware to ColdFusion

Arduino Shields

Saturday, 24 April 2010

Page 15: Connecting hardware to ColdFusion

Arduino Shields

Saturday, 24 April 2010

Page 16: Connecting hardware to ColdFusion

Arduino Shields

Saturday, 24 April 2010

Page 17: Connecting hardware to ColdFusion

Arduino Software Platform• Open source cross platform IDE

• Alpha but very stable

• Updated frequently

• Growing and active community

Saturday, 24 April 2010

Page 18: Connecting hardware to ColdFusion

Arduino Code• 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

Saturday, 24 April 2010

Page 19: Connecting hardware to ColdFusion

Arduino IDE

Saturday, 24 April 2010

Page 20: Connecting hardware to ColdFusion

Led Shield Demo

Saturday, 24 April 2010

Page 21: Connecting hardware to ColdFusion

Led Shield Demo

Saturday, 24 April 2010

Page 22: Connecting hardware to ColdFusion

Issues• Debugging can be hard

• No simulator

• Memory, power and speed limits

• Helps to have a little electronics knowledge

Saturday, 24 April 2010

Page 23: Connecting hardware to ColdFusion

Connecting ColdFusionHow to communicate between ColdFusion and the Arduino Platform

Saturday, 24 April 2010

Page 24: Connecting hardware to ColdFusion

ColdFusion Communication• ColdFusion can’t easily talk USB

• Use a socket to USB proxy

• ColdFusion can’t easily talk raw sockets

Saturday, 24 April 2010

Page 25: Connecting hardware to ColdFusion

Layers of Communication• ColdFusion to proxy via Java/CFML code

• Proxy to USB communication

• USB to Arduino

Saturday, 24 April 2010

Page 26: Connecting hardware to ColdFusion

Connection Diagram

USB Proxy FirmataLibrary

Application Code Arduino

USBCable

TCP/IPSocket

Computer Arduino

Function Calls and Events

Code

Saturday, 24 April 2010

Page 27: Connecting hardware to ColdFusion

Firmata Protocol• Simple Binary Protocol

• Based on MIDI

• Easy to extend

• Standard Arduino software library

Saturday, 24 April 2010

Page 28: Connecting hardware to ColdFusion

Firmata Protocol

Type Command MIDI Byte #1 Btye #2

Analog 0xE0 pin Bits 0-6 Bits 7-13

Digital 0x90 port Bits 0-6 Bits 7-13

Report Analog 0xC0 pin 0 or 1

Report Digital 0xD0 port 0 or 1

Pin Mode 0xF4 port 0 or 1

Version 0xF9

Reset 0xFF

Saturday, 24 April 2010

Page 29: Connecting hardware to ColdFusion

ColdFusion Socket • Mixed Java/CFML code

• ColdFusion 8 or 9 makes it easy

Saturday, 24 April 2010

Page 30: Connecting hardware to ColdFusion

ColdFusion Arduino • Alpha software

• ColdFusion implementation of Firmata

• Read analog values

• Read/write digital values

Saturday, 24 April 2010

Page 31: Connecting hardware to ColdFusion

ColdFusion Arduino Demo

Saturday, 24 April 2010

Page 32: Connecting hardware to ColdFusion

Issues• Arduino startup time

• Auto reset

• Not a persistent connect

• Proxy must be running on machine Arduino is connected to

• Use under load

Saturday, 24 April 2010

Page 33: Connecting hardware to ColdFusion

EthernetUsing Arduino Ethernet Shields

Saturday, 24 April 2010

Page 34: Connecting hardware to ColdFusion

Ethernet Shields• Allow direct internet connection

• No dedicated PC needed

• Shields need a little config

• Can act as web server or client

Saturday, 24 April 2010

Page 35: Connecting hardware to ColdFusion

Ethernet Shields

Saturday, 24 April 2010

Page 36: Connecting hardware to ColdFusion

Ethernet Shields

Saturday, 24 April 2010

Page 37: Connecting hardware to ColdFusion

Ethernet Shields

Saturday, 24 April 2010

Page 38: Connecting hardware to ColdFusion

Ethernet Arduino Code• Can run as web server

• Code easy to write or modify

Saturday, 24 April 2010

Page 39: Connecting hardware to ColdFusion

ColdFusion Code• CFHTTP to get data

• Data returned as XML

• Parse XML via ParseXML()

• Display or act on values

Saturday, 24 April 2010

Page 40: Connecting hardware to ColdFusion

ColdFusion Ethernet Demo

Saturday, 24 April 2010

Page 41: Connecting hardware to ColdFusion

PachubeAn easier way to connect Arduinos

Saturday, 24 April 2010

Page 42: Connecting hardware to ColdFusion

Pachube• Store and share and access realtime sensor data

• Simple and secure

• API to interact with all data and services

• Graphs and maps

Saturday, 24 April 2010

Page 43: Connecting hardware to ColdFusion

Pachube

Saturday, 24 April 2010

Page 44: Connecting hardware to ColdFusion

Pachube

Saturday, 24 April 2010

Page 45: Connecting hardware to ColdFusion

Pachube

Saturday, 24 April 2010

Page 46: Connecting hardware to ColdFusion

Pachube API• Communicates HTTP

• Plain text (csv), XML or Jason

• REST based

• Large base of supported languages

Saturday, 24 April 2010

Page 47: Connecting hardware to ColdFusion

Pachube Arduino Code• Runs on Arduino with ethernet shield

• Sends values to Pachube

• Can request values directly or via Pachube

Saturday, 24 April 2010

Page 48: Connecting hardware to ColdFusion

ColdFusion• Call pachube API using CFHTTP

• ParseXML()

• XML is in EEML format

• Display or act on values

Saturday, 24 April 2010

Page 49: Connecting hardware to ColdFusion

Demo

Saturday, 24 April 2010

Page 50: Connecting hardware to ColdFusion

Pachube Triggers• Pachube can call an URL when an analog or

digital value changes or goes over or under a value

• The URL can be ColdFusion URL

Saturday, 24 April 2010

Page 51: Connecting hardware to ColdFusion

Why do this?• Expose yourself to new ideas and new ways of

solving problems

• Involves interaction with the real world

• Encourages creativity

• Makes you a better programmer

Saturday, 24 April 2010

Page 52: Connecting hardware to ColdFusion

It’s Fun!

Saturday, 24 April 2010

Page 53: Connecting hardware to ColdFusion

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

Saturday, 24 April 2010

Page 54: Connecting hardware to ColdFusion

Useful SitesList of useful hardware and software sites

Saturday, 24 April 2010

Page 55: Connecting hardware to ColdFusion

Software Sites• Arduino http://www.arduino.cc for software, user

forum and playground

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

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

Saturday, 24 April 2010

Page 56: Connecting hardware to ColdFusion

Hardware Sites• Spark Fun (US) http://www.sparcfun.com/

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

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

Saturday, 24 April 2010

Page 57: Connecting hardware to ColdFusion

Other Sites• Lady Ada http://www.ladyada.com/

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

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

• Make Zine http://www.makezine.com/

Saturday, 24 April 2010


Top Related