Prototyping Connected Devices For the Internet of Things 1 /22 2008135065 심기성 2008135120 최종민 Prototyping Connected Devices For the Internet of Things Index - What is the IoT? - Connected-Device prototyping tools - Microsoft.NET gadgeteer design choices - Building a Web-Connected device with Gadgeteer - Cloud-base processing for connected devices - Selecting an IoT development platform - Conclusion 2 /22 Prototyping Connected Devices For the Internet of Things What is the IoT? The Internet of Things (IoT) refers to uniquely identifiable objects and their virtual representations in an Internet-like structure. http://www.youtube.com/watch?v=nEVatZruJ7k 3 /22 Prototyping Connected Devices For the Internet of Things Connected-Device prototyping tools Arduino Gadgeteer Connected Device prototyping tools MBED Etc.. 4 /22 Prototyping Connected Devices For the Internet of Things Connected-Device prototyping tools Arduino Arduino Processor Shield Can be programmed with the C Language Minimalist IDE Supported via simple communications over a serial line interface Add-on Circuit board that extend the platform’s basic capabilities Provide Ethernet, Wi-Fi etc. Arduino Developers commonly use the REST technique, With REST, - Lightweight, easy to debug way to communicate between connected devices such as those built with Arduino. - Services are exposed and accessed using HTTP. - Create, share, and support additional libraries and examples online, further facilitating the development of new applications. 5 /22 Prototyping Connected Devices For the Internet of Things Connected-Device prototyping tools MBED MBED The MBED microcontroller is a single-board microcontroller and associated tools for programming the device. - IDE is accessible via a Web browser without the need to install any software. - Extensive documentation and libraries are available through the IDE. - Supports the sharing of user-generated code samples and libraries. - To support connected-device development, includes a comprehensive set of networking libraries and examples. - Support for debugging code running on the MBED has been limited to date, but it is possible to transition to a more traditional PCbased IDE. 6 /22 Prototyping Connected Devices For the Internet of Things Connected-Device prototyping tools Gadgeteer Gadgeteer Gadgeteer is an Open Source rapid prototyping platform with an emphasis on creating small electronic or embedded hardware devices. 7 /22 - Mainboard Containing several sockets : Developers can connect different modules such as sensors, actuators, displays and communication and storage elements. - Solder-less : Allows developers to quickly construct, reconfigure, and extend prototypes. - Tightly integrated with the Microsoft Visual Studio IDE : Dynamic syntax checking, Continually provides hints and prompts to ease to coding. The IDE also aids debugging via breakpoints, single step- ping, variable watches, and execution traces Prototyping Connected Devices For the Internet of Things Connected-Device prototyping tools Etc Raspberry Pi A credit-card-sized single-board computer developed in the UK 8 /22 BeagleBone A low-power open-source hardware single-board computer produced by Texas Prototyping Connected Devices For the Internet of Things Microsoft.NET gadgeteer design choices Use C#, Visual Basic Familiar Event-Based Model Managed Code Software Library Simplify High-Level abstraction Rest-ful .Net micro Framework 9 /22 Prototyping Connected Devices For the Internet of Things Microsoft.NET gadgeteer design choices Use C#, Visual Basic - Although using managed code is unusual for embedded device development where C-like languages are firmly established, in our experience it tends to reduce the time and expertise needed for prototyping. Event-Based Model - Further simplifies the creation of many applications and helps developers familiar with event-based programming on desktop and mobile platforms to transition to embedded device development. Software Library - A software library encapsulates each physical Gadgeteer module’s functionality through an intuitive high-level API. The high abstraction level often allows modules to be used in sophisticated ways with just a few lines of code, enabling users with relatively little experience to build compelling devices and applications. 10 /22 Prototyping Connected Devices For the Internet of Things Microsoft.NET gadgeteer design choices The .NET Micro Framework - The .NET Micro Framework (http://netmf.com), an open source platform that underpins Gadgeteer’s similarly open software stack, contains extensive provision for networking. The Gadgeteer networking API builds on this in a way that supports a compact, easy-to-understand design pattern for responding to REST-ful Web requests with text, images, or byte streams. 11 /22 Prototyping Connected Devices For the Internet of Things Building a Web-Connected device with Gadgeteer Simple Webcam - Attached to a servomotor-controller arm, allowing remote panning as well as capture - This device also incorporates wireless zigbee and WiFi - Supports a connection to lighter-weight Gadgeteer devices ex) temperature, light-level sensors Effectively giving them a presence on the Internet via additional software running on the camera device that acts as a bridge. 12 /22 Prototyping Connected Devices For the Internet of Things Building a Web-Connected device with Gadgeteer Simple Webcam – Graphical design Tool - The process began with a graphical design tool. It specify the hardware components and how to connect them to a mainboard. Constructing the corresponding physical hardware took just a couple of minutes 13 /22 Prototyping Connected Devices For the Internet of Things Building a Web-Connected device with Gadgeteer Simple Webcam – High-level abstracted API - The developer only needs a single line of code to set up a webserver once a network connection has been established. 14 /22 Prototyping Connected Devices For the Internet of Things Cloud-base processing for connected devices Cloud computing is the use of computing resources (hardware and software) which are available in a remote location and accessible over a network. How to running the software within the embedded device? - Be complemented by cloud-based Web-services leveraging XML, HTTP Web based protocol. - Embedded processors will routinely leverage sophisticated datasets in the cloud. Ex) cosm, Project Hawaii 15 /22 Prototyping Connected Devices For the Internet of Things Cloud-base processing for connected devices cosm(xively) cosm? Cosm is a family of open distributed computing software and protocols developed in beginning in 1995 lead by Adam Beberg, and currently developed by Mithral Inc. Provide APIs for variable platforms, Libraries, REST-ful Services https://xively.com/dev/libraries/ 16 /22 Prototyping Connected Devices For the Internet of Things Cloud-base processing for connected devices Project Hawaii The Hawaii Web service based on Azure Traditional digital camera, this device captures an image when the shutter button is pressed. In Hawaii, rather than simply displaying the image and storing a copy locally, the camera sends the image to the Hawaii Optical Character Recognition(OCR) service. Any text that is detected is returned and overlaid on the display. Very simple Implementation The Hawaii was configured to make the most recent photo from each device available to all the other telepresence devices. http://www.youtube.com/watch?v=hjRi5hWKi88 17 /22 Windows Azure is a cloud computing platform and infrastructure, created by Microsoft, for building, deploying and managing applications and services through a global network of Microsoft-managed datacenters. Prototyping Connected Devices For the Internet of Things Selecting an IoT development platform Performance When we designed Gadgeteer, we chose a highperformance processor which supports managed code and real-time debugging. Form factor Flexibility over form factor was a central consideration when we were designing Gadgeteer. Power consumption Power consumption was not a focus during the initial development of the Gadgeteer platform, but currently exploring this topic. Cost A low hurdle 18 /22 The price premium compared to tools like Arduino and MBED is modest. Less-experienced users to create useful applications Prototyping Connected Devices For the Internet of Things Selecting an IoT development platform - No matter which tools are used for prototyping. eventually it becomes necessary to build and deploy a greater number of devices, either for lager –scale deployments or ultimately for mass production. - IoBridge, Electric Imp Which specifically designed to facilitate the mass production of connected devices. The latter includes a programmable processor and Wi-Fi Radio in a small package and connected to application through a hosted web service. 19 /22 Prototyping Connected Devices For the Internet of Things Conclusion Personal Computers & Smartphones In IoT Vision Extends Internet Connectivity (The IoT is estimated by some to constitute 100 billion devices as soon as 2020.) Very Simplest electronic devices Help us manage daily activities, Provide timely information more conveniently, Enhance our leisure time 20 /22 Prototyping Connected Devices For the Internet of Things Conclusion As the number of network-connected devices continues to grow, it is clear that no single technology will prevail the IoT’s success is inherently tied to heterogeneous devices, protocols, services, and applications. Although some applications will always be outside the scope of a rapidprototyping toolkit, we nonetheless anticipate that those working in this exciting field will be able to build on the experiences and examples reported here to explore relevant issues and prototype new applications quickly, and in doing so bring the IoT vision ever closer to reality. 21 /22 Prototyping Connected Devices For the Internet of Things Question? 22 /22 Prototyping Connected Devices For the Internet of Things