SlideShare a Scribd company logo
1 of 35
Download to read offline
Connecting Open Source
                           Hardware to the Web

                           Justin Mclean

                           Web: http://www.classsoftware.com.au
                           Mail: justin@classsoftware.com.au
                           Twitter: justinmclean




Sunday, 28 February 2010
Who am I?
                    • Programming for 25 years
                    • Developing and creating web applications for
                           15 years
                    • Developer and trainer in Flex and ColdFusion
                    • Adode Community Professional




Sunday, 28 February 2010
Arduino
                           Overview of the Arduino Platform




Sunday, 28 February 2010
Arduino Platform
                    • Open source hardware and software platform
                    • Easy to program
                    • Hardware is flexible, fast and low power




Sunday, 28 February 2010
Arduino Hardware
                    • Comes in a number of shapes sizes
                    • Low cost
                    • Easy to extend




Sunday, 28 February 2010
Arduino Boards

Sunday, 28 February 2010
Arduino Shields

Sunday, 28 February 2010
Arduino Software Platform
                    •      Open source cross platform IDE
                    •      Alpha but very stable
                    •      Code in high level C like language
                    •      Updated frequently
                    •      Growing and active community




Sunday, 28 February 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




Sunday, 28 February 2010
Arduino IDE

Sunday, 28 February 2010
Led Shield Demo

Sunday, 28 February 2010
Issues
                    • Debugging can be hard
                    • Memory, power and speed limits
                    • Helps to have a little electronic knowledge




Sunday, 28 February 2010
Connecting
                           Arduinos to the Web
                           How Arduinos can communicate with
                           the outside world.




Sunday, 28 February 2010
Connection Methods
                    •      Direct to computer
                    •      Wireless (XBee modems)
                    •      Ethernet or WiFi
                    •      “The Cloud”




Sunday, 28 February 2010
Supported Languages
                    •      Flash and Flex
                    •      Processing
                    •      Python
                    •      Ruby
                    •      Java
                    •      C, C++, C# and Objective C
                    •      .NET




Sunday, 28 February 2010
Direct Connection
                           How to communicate with Arduinos
                           via a computer




Sunday, 28 February 2010
Direct Communication
                    • Most languages can’t talk USB
                    • Solution: Socket to USB proxy




Sunday, 28 February 2010
Layers of Communication
                    • Code Library
                    • Proxy to USB
                    • Program on arduino to USB




Sunday, 28 February 2010
Firmata Protocal
                    •      Standard Arduino library
                    •      Simple binary protocol
                    •      Based on MIDI
                    •      Easy to extend




Sunday, 28 February 2010
Computer                       Arduino




                             Application Code                                  Arduino




                           Function Calls and
                                                                                Code
                                 Events


                                                 TCP/IP                USB
                                 Library                   USB Proxy           Firmata
                                                 Socket                Cable




                             Connection Diagram

Sunday, 28 February 2010
Firmata Demo

Sunday, 28 February 2010
Issues
                    • Works best with a persistent connection
                    • Otherwise startup time and auto reset may be
                           issues
                    • Proxy must be running on computer the
                           Arduino is connected to




Sunday, 28 February 2010
Ethernet
                           Using Arduino Ethernet Shields




Sunday, 28 February 2010
Ethernet Shields
                    •      Allow direct internet connection
                    •      No computer needed
                    •      Can act as web server or client
                    •      Shields need a little configuration




Sunday, 28 February 2010
Ethernet Shields

Sunday, 28 February 2010
Web Servers
                    • Simpler than you think
                    • A web server:
                      • Listens for connections
                      • Parse requests
                      • Send back status messages/resources
                           requested




Sunday, 28 February 2010
HTTP Requests
                    •      Start with request “GET index.html HTTP/1.1”
                    •      Optional headers “Accept-Language: en”
                    •      Empty line
                    •      Optional message body (POST and other
                           requests)




Sunday, 28 February 2010
Ethernet Arduino Code
                    • Web server code
                    • Easy to modify




Sunday, 28 February 2010
Ethernet Demo

Sunday, 28 February 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




Sunday, 28 February 2010
It’s Fun!

Sunday, 28 February 2010
Useful Sites
                           List of useful hardware and software
                           sites




Sunday, 28 February 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/




Sunday, 28 February 2010
Hardware Sites
                    • Little Bird Electronics (AUS) http://
                           www.littlebirdelectronics.com/
                    • Spark Fun (US) http://www.sparkfun.com/
                    • Adafruit Industries (US) http://
                           www.adafruit.com/
                    • Electronic Goldmine (US) http://
                           www.goldmine-elec.com/




Sunday, 28 February 2010
Other Sites
                    • Lady Ada http://www.ladyada.net/
                    • Evil Mad Scientist http://
                           www.evilmadscientist.com/
                    • NY Resistor http://www.nycresistor.com/
                    • Make Zine http://makezine.com/




Sunday, 28 February 2010

More Related Content

Viewers also liked

ColdFusion Security and Risk Management
ColdFusion Security and Risk ManagementColdFusion Security and Risk Management
ColdFusion Security and Risk Management
Justin Mclean
 

Viewers also liked (6)

ColdFusion Security and Risk Management
ColdFusion Security and Risk ManagementColdFusion Security and Risk Management
ColdFusion Security and Risk Management
 
Edge Of The Web
Edge Of The WebEdge Of The Web
Edge Of The Web
 
Brochure 11352
Brochure 11352Brochure 11352
Brochure 11352
 
ColdFusion Security and Risk Management
ColdFusion Security and Risk ManagementColdFusion Security and Risk Management
ColdFusion Security and Risk Management
 
Corso Security Manager
Corso Security ManagerCorso Security Manager
Corso Security Manager
 
What's the Right Messaging Standard for the IoT?
What's the Right Messaging  Standard for the IoT?What's the Right Messaging  Standard for the IoT?
What's the Right Messaging Standard for the IoT?
 

Similar to Connecting open source hardware to the web

A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
elliando dias
 

Similar to Connecting open source hardware to the web (20)

A Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the WebA Practical Guide to Connecting Hardware to the Web
A Practical Guide to Connecting Hardware to the Web
 
Hacking Meatspace with Arduino and pyFirmata
Hacking Meatspace with Arduino and pyFirmataHacking Meatspace with Arduino and pyFirmata
Hacking Meatspace with Arduino and pyFirmata
 
Implementation of an Arduino Remote Laboratory with Raspberry Pi
Implementation of an Arduino Remote Laboratory with Raspberry PiImplementation of an Arduino Remote Laboratory with Raspberry Pi
Implementation of an Arduino Remote Laboratory with Raspberry Pi
 
11_04_2019 EDUCON Award: "Implementation of an arduino remoto laboratory with...
11_04_2019 EDUCON Award: "Implementation of an arduino remoto laboratory with...11_04_2019 EDUCON Award: "Implementation of an arduino remoto laboratory with...
11_04_2019 EDUCON Award: "Implementation of an arduino remoto laboratory with...
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la Actualidad
 
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
Peripheral Programming using Arduino and Python on MediaTek LinkIt Smart 7688...
 
Robots conf microcontroller and iot survey
Robots conf   microcontroller and iot surveyRobots conf   microcontroller and iot survey
Robots conf microcontroller and iot survey
 
An open-source testbed for IoT systems
An open-source testbed for IoT systemsAn open-source testbed for IoT systems
An open-source testbed for IoT systems
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshop
 
Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduino
 
Building IoT with Arduino Day One
Building IoT with Arduino Day One Building IoT with Arduino Day One
Building IoT with Arduino Day One
 
FFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOFFFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOF
 
UCLA Extension Digital DJing Lecture 4
UCLA Extension Digital DJing Lecture 4UCLA Extension Digital DJing Lecture 4
UCLA Extension Digital DJing Lecture 4
 
Build IoT Applications with C#
Build IoT Applications with C#Build IoT Applications with C#
Build IoT Applications with C#
 
small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)small electronics for your makerspace (clc trendspotting - february 2014)
small electronics for your makerspace (clc trendspotting - february 2014)
 
Getting Started with Pinoccio
Getting Started with PinoccioGetting Started with Pinoccio
Getting Started with Pinoccio
 
Caspar Resume EN 2009-07
Caspar Resume EN 2009-07Caspar Resume EN 2009-07
Caspar Resume EN 2009-07
 
iTunes U + Podcast Producer
iTunes U + Podcast ProduceriTunes U + Podcast Producer
iTunes U + Podcast Producer
 
Language Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to ProductionLanguage Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to Production
 
Unit6_P7_luciablazquez
Unit6_P7_luciablazquezUnit6_P7_luciablazquez
Unit6_P7_luciablazquez
 

Recently uploaded

Recently uploaded (20)

Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
Apidays Singapore 2024 - Scalable LLM APIs for AI and Generative AI Applicati...
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 

Connecting open source hardware to the web

  • 1. Connecting Open Source Hardware to the Web Justin Mclean Web: http://www.classsoftware.com.au Mail: justin@classsoftware.com.au Twitter: justinmclean Sunday, 28 February 2010
  • 2. Who am I? • Programming for 25 years • Developing and creating web applications for 15 years • Developer and trainer in Flex and ColdFusion • Adode Community Professional Sunday, 28 February 2010
  • 3. Arduino Overview of the Arduino Platform Sunday, 28 February 2010
  • 4. Arduino Platform • Open source hardware and software platform • Easy to program • Hardware is flexible, fast and low power Sunday, 28 February 2010
  • 5. Arduino Hardware • Comes in a number of shapes sizes • Low cost • Easy to extend Sunday, 28 February 2010
  • 8. Arduino Software Platform • Open source cross platform IDE • Alpha but very stable • Code in high level C like language • Updated frequently • Growing and active community Sunday, 28 February 2010
  • 9. 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 Sunday, 28 February 2010
  • 10. Arduino IDE Sunday, 28 February 2010
  • 11. Led Shield Demo Sunday, 28 February 2010
  • 12. Issues • Debugging can be hard • Memory, power and speed limits • Helps to have a little electronic knowledge Sunday, 28 February 2010
  • 13. Connecting Arduinos to the Web How Arduinos can communicate with the outside world. Sunday, 28 February 2010
  • 14. Connection Methods • Direct to computer • Wireless (XBee modems) • Ethernet or WiFi • “The Cloud” Sunday, 28 February 2010
  • 15. Supported Languages • Flash and Flex • Processing • Python • Ruby • Java • C, C++, C# and Objective C • .NET Sunday, 28 February 2010
  • 16. Direct Connection How to communicate with Arduinos via a computer Sunday, 28 February 2010
  • 17. Direct Communication • Most languages can’t talk USB • Solution: Socket to USB proxy Sunday, 28 February 2010
  • 18. Layers of Communication • Code Library • Proxy to USB • Program on arduino to USB Sunday, 28 February 2010
  • 19. Firmata Protocal • Standard Arduino library • Simple binary protocol • Based on MIDI • Easy to extend Sunday, 28 February 2010
  • 20. Computer Arduino Application Code Arduino Function Calls and Code Events TCP/IP USB Library USB Proxy Firmata Socket Cable Connection Diagram Sunday, 28 February 2010
  • 21. Firmata Demo Sunday, 28 February 2010
  • 22. Issues • Works best with a persistent connection • Otherwise startup time and auto reset may be issues • Proxy must be running on computer the Arduino is connected to Sunday, 28 February 2010
  • 23. Ethernet Using Arduino Ethernet Shields Sunday, 28 February 2010
  • 24. Ethernet Shields • Allow direct internet connection • No computer needed • Can act as web server or client • Shields need a little configuration Sunday, 28 February 2010
  • 26. Web Servers • Simpler than you think • A web server: • Listens for connections • Parse requests • Send back status messages/resources requested Sunday, 28 February 2010
  • 27. HTTP Requests • Start with request “GET index.html HTTP/1.1” • Optional headers “Accept-Language: en” • Empty line • Optional message body (POST and other requests) Sunday, 28 February 2010
  • 28. Ethernet Arduino Code • Web server code • Easy to modify Sunday, 28 February 2010
  • 29. Ethernet Demo Sunday, 28 February 2010
  • 30. 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 Sunday, 28 February 2010
  • 31. It’s Fun! Sunday, 28 February 2010
  • 32. Useful Sites List of useful hardware and software sites Sunday, 28 February 2010
  • 33. 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/ Sunday, 28 February 2010
  • 34. Hardware Sites • Little Bird Electronics (AUS) http:// www.littlebirdelectronics.com/ • Spark Fun (US) http://www.sparkfun.com/ • Adafruit Industries (US) http:// www.adafruit.com/ • Electronic Goldmine (US) http:// www.goldmine-elec.com/ Sunday, 28 February 2010
  • 35. Other Sites • Lady Ada http://www.ladyada.net/ • Evil Mad Scientist http:// www.evilmadscientist.com/ • NY Resistor http://www.nycresistor.com/ • Make Zine http://makezine.com/ Sunday, 28 February 2010