Connecting RubyMotion with Hardware - Rubymotion #Inspect 2014
Connecting hardware to ColdFusion
-
Upload
justin-mclean -
Category
Technology
-
view
114 -
download
1
description
Transcript of Connecting hardware to ColdFusion
![Page 1: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/1.jpg)
Connecting Hardware to ColdFusionJustin McleanEmail: [email protected]: @justinmcleanBlog: http://blog.classsoftware.com
Saturday, 24 April 2010
![Page 2: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/2.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/3.jpg)
Electronics Trends• Low cost components
• Small components
• Complex components with simple standard interfaces
Saturday, 24 April 2010
![Page 4: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/4.jpg)
Computing Trends• Easier to program
• Use of high level languages
• Software tools
• Open source
Saturday, 24 April 2010
![Page 5: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/5.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/6.jpg)
ArduinoOverview of the Arduino Platform
Saturday, 24 April 2010
![Page 7: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/7.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/8.jpg)
Arduino Hardware• Comes in a number of shapes sizes
• Low cost
• Easy to extend
Saturday, 24 April 2010
![Page 9: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/9.jpg)
Arduino Boards
Saturday, 24 April 2010
![Page 10: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/10.jpg)
Arduino Boards
Saturday, 24 April 2010
![Page 11: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/11.jpg)
Arduino Boards
Saturday, 24 April 2010
![Page 12: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/12.jpg)
Arduino Boards
Saturday, 24 April 2010
![Page 13: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/13.jpg)
Arduino Shields
Saturday, 24 April 2010
![Page 14: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/14.jpg)
Arduino Shields
Saturday, 24 April 2010
![Page 15: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/15.jpg)
Arduino Shields
Saturday, 24 April 2010
![Page 16: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/16.jpg)
Arduino Shields
Saturday, 24 April 2010
![Page 17: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/17.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/18.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/19.jpg)
Arduino IDE
Saturday, 24 April 2010
![Page 20: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/20.jpg)
Led Shield Demo
Saturday, 24 April 2010
![Page 21: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/21.jpg)
Led Shield Demo
Saturday, 24 April 2010
![Page 22: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/22.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/23.jpg)
Connecting ColdFusionHow to communicate between ColdFusion and the Arduino Platform
Saturday, 24 April 2010
![Page 24: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/24.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/25.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/26.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/27.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/28.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/29.jpg)
ColdFusion Socket • Mixed Java/CFML code
• ColdFusion 8 or 9 makes it easy
Saturday, 24 April 2010
![Page 30: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/30.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/31.jpg)
ColdFusion Arduino Demo
Saturday, 24 April 2010
![Page 32: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/32.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/33.jpg)
EthernetUsing Arduino Ethernet Shields
Saturday, 24 April 2010
![Page 34: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/34.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/35.jpg)
Ethernet Shields
Saturday, 24 April 2010
![Page 36: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/36.jpg)
Ethernet Shields
Saturday, 24 April 2010
![Page 37: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/37.jpg)
Ethernet Shields
Saturday, 24 April 2010
![Page 38: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/38.jpg)
Ethernet Arduino Code• Can run as web server
• Code easy to write or modify
Saturday, 24 April 2010
![Page 39: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/39.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/40.jpg)
ColdFusion Ethernet Demo
Saturday, 24 April 2010
![Page 41: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/41.jpg)
PachubeAn easier way to connect Arduinos
Saturday, 24 April 2010
![Page 42: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/42.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/43.jpg)
Pachube
Saturday, 24 April 2010
![Page 44: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/44.jpg)
Pachube
Saturday, 24 April 2010
![Page 45: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/45.jpg)
Pachube
Saturday, 24 April 2010
![Page 46: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/46.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/47.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/48.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/49.jpg)
Demo
Saturday, 24 April 2010
![Page 50: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/50.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/51.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/52.jpg)
It’s Fun!
Saturday, 24 April 2010
![Page 54: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/54.jpg)
Useful SitesList of useful hardware and software sites
Saturday, 24 April 2010
![Page 55: Connecting hardware to ColdFusion](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/55.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/56.jpg)
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](https://reader030.fdocuments.net/reader030/viewer/2022020217/54c8449e4a795965098b45ac/html5/thumbnails/57.jpg)
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