SlideShare a Scribd company logo
Connecting Hardware to
                          ColdFusion
                          Justin Mclean
                          Email: justin@classsoftware.com
                          Twitter: @justinmclean
                          Blog: http://blog.classsoftware.com




Saturday, 24 April 2010
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
Electronics Trends
                     • Low cost components
                     • Small components
                     • Complex components with simple standard
                          interfaces




Saturday, 24 April 2010
Computing Trends
                     •    Easier to program
                     •    Use of high level languages
                     •    Software tools
                     •    Open source




Saturday, 24 April 2010
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
Arduino
                          Overview of the Arduino Platform




Saturday, 24 April 2010
Arduino Platform
                     • Open source hardware and software platform
                     • Easy to program
                     • Hardware is flexible, fast, low power and low cost




Saturday, 24 April 2010
Arduino Hardware
                     • Comes in a number of shapes sizes
                     • Low cost
                     • Easy to extend




Saturday, 24 April 2010
Arduino Boards




Saturday, 24 April 2010
Arduino Boards




Saturday, 24 April 2010
Arduino Boards




Saturday, 24 April 2010
Arduino Boards




Saturday, 24 April 2010
Arduino Shields




Saturday, 24 April 2010
Arduino Shields




Saturday, 24 April 2010
Arduino Shields




Saturday, 24 April 2010
Arduino Shields




Saturday, 24 April 2010
Arduino Software Platform
                     •    Open source cross platform IDE
                     •    Alpha but very stable
                     •    Updated frequently
                     •    Growing and active community




Saturday, 24 April 2010
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
Arduino IDE




Saturday, 24 April 2010
Led Shield Demo




Saturday, 24 April 2010
Led Shield Demo




Saturday, 24 April 2010
Issues
                     •    Debugging can be hard
                     •    No simulator
                     •    Memory, power and speed limits
                     •    Helps to have a little electronics knowledge




Saturday, 24 April 2010
Connecting
                          ColdFusion
                          How to communicate between
                          ColdFusion and the Arduino Platform




Saturday, 24 April 2010
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
Layers of Communication
                     • ColdFusion to proxy via Java/CFML code
                     • Proxy to USB communication
                     • USB to Arduino




Saturday, 24 April 2010
Connection Diagram

                                               Computer                       Arduino




                            Application Code                                  Arduino




                          Function Calls and
                                                                               Code
                                Events


                                                TCP/IP                USB
                                Library                   USB Proxy           Firmata
                                                Socket                Cable




Saturday, 24 April 2010
Firmata Protocol
                     •    Simple Binary Protocol
                     •    Based on MIDI
                     •    Easy to extend
                     •    Standard Arduino software library




Saturday, 24 April 2010
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
ColdFusion Socket
                     • Mixed Java/CFML code
                     • ColdFusion 8 or 9 makes it easy




Saturday, 24 April 2010
ColdFusion Arduino
                     •    Alpha software
                     •    ColdFusion implementation of Firmata
                     •    Read analog values
                     •    Read/write digital values




Saturday, 24 April 2010
ColdFusion Arduino Demo




Saturday, 24 April 2010
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
Ethernet
                          Using Arduino Ethernet Shields




Saturday, 24 April 2010
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
Ethernet Shields




Saturday, 24 April 2010
Ethernet Shields




Saturday, 24 April 2010
Ethernet Shields




Saturday, 24 April 2010
Ethernet Arduino Code
                     • Can run as web server
                     • Code easy to write or modify




Saturday, 24 April 2010
ColdFusion Code
                     •    CFHTTP to get data
                     •    Data returned as XML
                     •    Parse XML via ParseXML()
                     •    Display or act on values




Saturday, 24 April 2010
ColdFusion Ethernet Demo




Saturday, 24 April 2010
Pachube
                          An easier way to connect Arduinos




Saturday, 24 April 2010
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
Pachube




Saturday, 24 April 2010
Pachube




Saturday, 24 April 2010
Pachube




Saturday, 24 April 2010
Pachube API
                     •    Communicates HTTP
                     •    Plain text (csv), XML or Jason
                     •    REST based
                     •    Large base of supported languages




Saturday, 24 April 2010
Pachube Arduino Code
                     • Runs on Arduino with ethernet shield
                     • Sends values to Pachube
                     • Can request values directly or via Pachube




Saturday, 24 April 2010
ColdFusion
                     •    Call pachube API using CFHTTP
                     •    ParseXML()
                     •    XML is in EEML format
                     •    Display or act on values




Saturday, 24 April 2010
Demo




Saturday, 24 April 2010
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
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
It’s Fun!


Saturday, 24 April 2010
Questions?
                          Ask now, see me after session or email
                          justin@classsoftware.com




Saturday, 24 April 2010
Useful Sites
                          List of useful hardware and software sites




Saturday, 24 April 2010
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
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
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

More Related Content

PDF
Connecting open source hardware to the web
PDF
A Practical Guide to Connecting Hardware to Flex
PDF
Putting your device in a browser or on the web
PDF
Connecting RIAs and hardware together
PDF
BarCamp Melbourne 2012: Internet of Things
KEY
2011 01-24 dragino
PDF
Internet Of Things, Smart Energy Groups
PDF
Building Connected IoT Gadgets with Particle.io & Azure
Connecting open source hardware to the web
A Practical Guide to Connecting Hardware to Flex
Putting your device in a browser or on the web
Connecting RIAs and hardware together
BarCamp Melbourne 2012: Internet of Things
2011 01-24 dragino
Internet Of Things, Smart Energy Groups
Building Connected IoT Gadgets with Particle.io & Azure

Similar to Connecting hardware to ColdFusion (20)

PDF
Hacking Meatspace with Arduino and pyFirmata
PDF
Connecting hardware up to ColdFusion
PDF
Edge Of The Web
PDF
A Practical Guide to Connecting Hardware to the Web
PPTX
Implementation of an Arduino Remote Laboratory with Raspberry Pi
PPTX
11_04_2019 EDUCON Award: "Implementation of an arduino remoto laboratory with...
PDF
Connecting Hardware to Flex (360MAX)
PPTX
02 - Getting Started with Arduino.pptx
PPTX
Taller IoT en la Actualidad
PPTX
Build IoT Applications with C#
PPT
introduction to arduino and digital input and output, Data representation and...
PPTX
Introduction to arduino
PPTX
Title: Arduino Projects Presentation----
PPTX
Title: Arduino Projects Presentation----
PPTX
Introduction to Arduino
PPTX
Robots conf microcontroller and iot survey
PDF
ch4-Software is Everywhere
PPTX
Open Source and the Internet of Things
PDF
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
PDF
WebRTC, RED and Janus @ ClueCon21
Hacking Meatspace with Arduino and pyFirmata
Connecting hardware up to ColdFusion
Edge Of The Web
A Practical Guide to Connecting Hardware to the Web
Implementation of an Arduino Remote Laboratory with Raspberry Pi
11_04_2019 EDUCON Award: "Implementation of an arduino remoto laboratory with...
Connecting Hardware to Flex (360MAX)
02 - Getting Started with Arduino.pptx
Taller IoT en la Actualidad
Build IoT Applications with C#
introduction to arduino and digital input and output, Data representation and...
Introduction to arduino
Title: Arduino Projects Presentation----
Title: Arduino Projects Presentation----
Introduction to Arduino
Robots conf microcontroller and iot survey
ch4-Software is Everywhere
Open Source and the Internet of Things
“Voice Interfaces on a Budget: Building Real-time Speech Recognition on Low-c...
WebRTC, RED and Janus @ ClueCon21
Ad

Recently uploaded (20)

PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
Spectroscopy.pptx food analysis technology
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
A comparative analysis of optical character recognition models for extracting...
PDF
Machine learning based COVID-19 study performance prediction
PDF
August Patch Tuesday
PPTX
SOPHOS-XG Firewall Administrator PPT.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
A Presentation on Artificial Intelligence
PPTX
Tartificialntelligence_presentation.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Machine Learning_overview_presentation.pptx
PDF
Mushroom cultivation and it's methods.pdf
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Per capita expenditure prediction using model stacking based on satellite ima...
Spectroscopy.pptx food analysis technology
Reach Out and Touch Someone: Haptics and Empathic Computing
A comparative analysis of optical character recognition models for extracting...
Machine learning based COVID-19 study performance prediction
August Patch Tuesday
SOPHOS-XG Firewall Administrator PPT.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25-Week II
Digital-Transformation-Roadmap-for-Companies.pptx
A Presentation on Artificial Intelligence
Tartificialntelligence_presentation.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Unlocking AI with Model Context Protocol (MCP)
Machine Learning_overview_presentation.pptx
Mushroom cultivation and it's methods.pdf
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Network Security Unit 5.pdf for BCA BBA.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Ad

Connecting hardware to ColdFusion

  • 1. Connecting Hardware to ColdFusion Justin Mclean Email: justin@classsoftware.com Twitter: @justinmclean Blog: http://blog.classsoftware.com Saturday, 24 April 2010
  • 2. 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
  • 3. Electronics Trends • Low cost components • Small components • Complex components with simple standard interfaces Saturday, 24 April 2010
  • 4. Computing Trends • Easier to program • Use of high level languages • Software tools • Open source Saturday, 24 April 2010
  • 5. 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
  • 6. Arduino Overview of the Arduino Platform Saturday, 24 April 2010
  • 7. Arduino Platform • Open source hardware and software platform • Easy to program • Hardware is flexible, fast, low power and low cost Saturday, 24 April 2010
  • 8. Arduino Hardware • Comes in a number of shapes sizes • Low cost • Easy to extend Saturday, 24 April 2010
  • 17. Arduino Software Platform • Open source cross platform IDE • Alpha but very stable • Updated frequently • Growing and active community Saturday, 24 April 2010
  • 18. 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
  • 20. Led Shield Demo Saturday, 24 April 2010
  • 21. Led Shield Demo Saturday, 24 April 2010
  • 22. Issues • Debugging can be hard • No simulator • Memory, power and speed limits • Helps to have a little electronics knowledge Saturday, 24 April 2010
  • 23. Connecting ColdFusion How to communicate between ColdFusion and the Arduino Platform Saturday, 24 April 2010
  • 24. 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
  • 25. Layers of Communication • ColdFusion to proxy via Java/CFML code • Proxy to USB communication • USB to Arduino Saturday, 24 April 2010
  • 26. Connection Diagram Computer Arduino Application Code Arduino Function Calls and Code Events TCP/IP USB Library USB Proxy Firmata Socket Cable Saturday, 24 April 2010
  • 27. Firmata Protocol • Simple Binary Protocol • Based on MIDI • Easy to extend • Standard Arduino software library Saturday, 24 April 2010
  • 28. 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
  • 29. ColdFusion Socket • Mixed Java/CFML code • ColdFusion 8 or 9 makes it easy Saturday, 24 April 2010
  • 30. ColdFusion Arduino • Alpha software • ColdFusion implementation of Firmata • Read analog values • Read/write digital values Saturday, 24 April 2010
  • 32. 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
  • 33. Ethernet Using Arduino Ethernet Shields Saturday, 24 April 2010
  • 34. 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
  • 38. Ethernet Arduino Code • Can run as web server • Code easy to write or modify Saturday, 24 April 2010
  • 39. ColdFusion Code • CFHTTP to get data • Data returned as XML • Parse XML via ParseXML() • Display or act on values Saturday, 24 April 2010
  • 41. Pachube An easier way to connect Arduinos Saturday, 24 April 2010
  • 42. 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
  • 46. Pachube API • Communicates HTTP • Plain text (csv), XML or Jason • REST based • Large base of supported languages Saturday, 24 April 2010
  • 47. Pachube Arduino Code • Runs on Arduino with ethernet shield • Sends values to Pachube • Can request values directly or via Pachube Saturday, 24 April 2010
  • 48. ColdFusion • Call pachube API using CFHTTP • ParseXML() • XML is in EEML format • Display or act on values Saturday, 24 April 2010
  • 50. 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
  • 51. 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
  • 53. Questions? Ask now, see me after session or email justin@classsoftware.com Saturday, 24 April 2010
  • 54. Useful Sites List of useful hardware and software sites Saturday, 24 April 2010
  • 55. 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
  • 56. 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
  • 57. 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