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

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 Webelliando dias
 
Hacking Meatspace with Arduino and pyFirmata
Hacking Meatspace with Arduino and pyFirmataHacking Meatspace with Arduino and pyFirmata
Hacking Meatspace with Arduino and pyFirmataChes Martin
 
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 PiManuel Castro
 
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...eMadrid network
 
Taller IoT en la Actualidad
Taller IoT en la ActualidadTaller IoT en la Actualidad
Taller IoT en la ActualidadLaurence HR
 
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...MediaTek Labs
 
Robots conf microcontroller and iot survey
Robots conf   microcontroller and iot surveyRobots conf   microcontroller and iot survey
Robots conf microcontroller and iot surveyMatt Haines
 
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 systemsAugusto Ciuffoletti
 
Null mumbai-iot-workshop
Null mumbai-iot-workshopNull mumbai-iot-workshop
Null mumbai-iot-workshopNitesh Malviya
 
Introduction to arduino
Introduction to arduinoIntroduction to arduino
Introduction to arduinoPreet Sangha
 
Building IoT with Arduino Day One
Building IoT with Arduino Day One Building IoT with Arduino Day One
Building IoT with Arduino Day One Anthony Faustine
 
FFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOFFFMUC presents #ffmeet - #virtualUKNOF
FFMUC presents #ffmeet - #virtualUKNOFAnnika Wickert
 
UCLA Extension Digital DJing Lecture 4
UCLA Extension Digital DJing Lecture 4UCLA Extension Digital DJing Lecture 4
UCLA Extension Digital DJing Lecture 4Gautam Banerjee
 
Build IoT Applications with C#
Build IoT Applications with C#Build IoT Applications with C#
Build IoT Applications with C#Ken Samson, MISM
 
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)ariannaschlegel
 
Getting Started with Pinoccio
Getting Started with PinoccioGetting Started with Pinoccio
Getting Started with Pinocciofcohenvotsh
 
Caspar Resume EN 2009-07
Caspar Resume EN 2009-07Caspar Resume EN 2009-07
Caspar Resume EN 2009-07Caspar Zhang
 
iTunes U + Podcast Producer
iTunes U + Podcast ProduceriTunes U + Podcast Producer
iTunes U + Podcast ProducerDave Olsen
 
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 ProductionKinoma
 
Unit6_P7_luciablazquez
Unit6_P7_luciablazquezUnit6_P7_luciablazquez
Unit6_P7_luciablazquezLucaBlzquez2
 

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

AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxNeo4j
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxJennifer Lim
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024Stephen Perrenod
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe中 央社
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfSrushith Repakula
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераMark Opanasiuk
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...FIDO Alliance
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfFIDO Alliance
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentationyogeshlabana357357
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfFIDO Alliance
 

Recently uploaded (20)

Overview of Hyperledger Foundation
Overview of Hyperledger FoundationOverview of Hyperledger Foundation
Overview of Hyperledger Foundation
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptxBT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
BT & Neo4j _ How Knowledge Graphs help BT deliver Digital Transformation.pptx
 
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptxWSO2CONMay2024OpenSourceConferenceDebrief.pptx
WSO2CONMay2024OpenSourceConferenceDebrief.pptx
 
TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024TopCryptoSupers 12thReport OrionX May2024
TopCryptoSupers 12thReport OrionX May2024
 
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Portal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russePortal Kombat : extension du réseau de propagande russe
Portal Kombat : extension du réseau de propagande russe
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
How we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdfHow we scaled to 80K users by doing nothing!.pdf
How we scaled to 80K users by doing nothing!.pdf
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024Enterprise Knowledge Graphs - Data Summit 2024
Enterprise Knowledge Graphs - Data Summit 2024
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Intro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджераIntro in Product Management - Коротко про професію продакт менеджера
Intro in Product Management - Коротко про професію продакт менеджера
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
ASRock Industrial FDO Solutions in Action for Industrial Edge AI _ Kenny at A...
 
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdfThe Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
The Value of Certifying Products for FDO _ Paul at FIDO Alliance.pdf
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdfLinux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
Linux Foundation Edge _ Overview of FDO Software Components _ Randy at Intel.pdf
 

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