How to Build Your Own Internet of Things Product from the ground up-Raspberry PI


In this session you will start with a pile of hardware and build a working, cloud-enabled device from the ground up. 

Essential skills will be presented:

• Building the device from raw hardware

• Writing software for the Raspberry PI and the Cloud

• Mono and C# on the device

• Node.js in the cloud

The Gold Rush is here

Machine-to-machine (M2M) computing and Internet of Things (IoT) is fast becoming a technology that all developers and architects need to embrace. Numerous studies suggest a coming world of tens of billions of devices (a half-dozen for every human on earth) by 2020 ( One reason this is happening is because it has never been easier for garage tinkerers and hobbyists to prototype a consumer or commercial device for later manufacture and sale. Getting started with both the hardware and software is incredibly inexpensive. For less than $100, you can order an Arduino or a Raspberry PI.

Understanding the Cloud

These devices rarely have value unless they’re connected to something else, perhaps a cloud back end that receives data and sends commands. But connecting to, communicating with and managing these devices from an application running in the cloud presents some special challenges. The sheer number of devices, as well as their limited battery life and bandwidth, forces companies developer to carefully consider all options.

In this session we will review the landscape and take a close look on the role of cloud computing with respect to the world of M2M and IoT. We will address key issues, such as bandwidth and security. We will debunk the myth that IPv6 and virtual private networks (VPNs) are simple, efficient, and secure, and will propose some specific recommendations for using the Cloud to solve these challenges. We will look at some specific examples using the Arduino and the Raspberry PI.

The building of a working product - Soup to Nuts

We will also present “SmartDoor,” where we really roll up our sleeves, both from a hardware and software point of view and learn what it takes to truly embrace this new computing paradigm. SmartDoor and is the reference IoT product we will build from the ground up, making it possible for any one to start embracing the Internet of Things. 

Soldering a doorbell to the device

If you look closely, you will see a doorbell and a camera on top of a PI device. The idea is that someone arrives on your doorstep and rings your doorbell. Once the doorbell is pressed a photo is automatically taken. This photo is then forwarded to a mobile device as a push notification message with a hyperlink to the image taken of the person at your doorstep. This invention was inspired by the need to know who is ringing your doorbell, even if you’re not home.

What we will build

We will begin by illustrating exactly how to purchase and put together the raw hardware. But software rules the world, and that’s where a bulk of the presentation will focus. Once the hardware is built, we will build software that runs on the device itself, as well as software that runs in the cloud. The code will need to be able to take a picture and upload it to the cloud. From there, a push notification will need to be sent to the appropriate mobile device(s), indicating that someone has pressed the doorbell, and that the photo is available. Because of the ambitious nature of this project we will provide a number of blog posts to support the work and provide the needed details.

Mono and C# 

On the Raspberry PI we will install and run Mono, which is a free and open source project led by Xamarin (formerly by Novell) that provides a .NET Framework-compatible set of tools including, among others, a C# compiler and a Common Language Runtime. The beauty of Mono is that it allows us to write .Net code compiled on Windows and run it unchanged on the Raspberry PI. In our case, we will take a photo and upload it to Windows Azure storage. We will expand the code base further, supporting the ability to send a push notifications to a Windows Phone.

Node.js running in the cloud

In the cloud we will work with Node.js, which will enable the PI to send photos directly to cloud storage.

The Raw Hardware

Getting the hardware together is really straightforward because almost all of it is available in a single Raspberry PI kit. This kit is called Canakit and can be found at The kit contains a few really useful things to get to get our IoT device built, including a system Board, A/C Adapter, GPIO Breakout, Bread Board, Bread Board wires, assorted resisters and LEDs. You will also need an external monitor, keyboard and mouse so you can configure and test the Raspberry PI. In addition to the Canakit, you will need two more things – a regular doorbell and a Raspberry PI compatible camera, both of which are easily purchased.

More to come...

Bruno Terkaly

Bruno is a Principal Software Engineer at Microsoft with the objective to enable the development of industry leading applications and services across devices. He is responsible for driving the top cloud and mobile opportunities across the United States and beyond from a technology enablement perspective. He helps partners bring their applications to market by providing architectural guidance and deep technical engagement during the ISV’s evaluation, development, and deployment. In addition, Bruno works closely with the cloud and mobile engineering groups, providing feedback and influencing the roadmap.

Steven Edouard

Steven Edouard is a Developer Evangelist and full-time hacker at Microsoft. Before moving to the bay he worked on the.NET runtime team as a Software Test Engineer delivering products like .NET 4.5 and .NET Native Compilation. Now his passion resides in exciting people on the limitless potentials of cloud computing services through engaging technical demonstrations, online content and presentations.

More Info

By 2020 nearly every human on earth will be connected to about six devices. It has never been more economical or easy for the average person to prototype and produce a consumer or commercial device manufacture and sale. For less than $100, devices like the Arduino or Raspberry Pi provides you a microcontroller fitted with a small CPU, memory, and storage. Moreover, there is a plethora of expansion boards that plug into these devices, such as motor controls, GPS, Ethernet, LCD displays, sensors, actuators and more. These tiny devices come equipped with either a proprietary operating system or GNU/Linux with up to 512MB or RAM.

But these devices rarely have value unless they are connected to a cloud service on the backend. The cloud provides many useful services, including data analysis, issuing commands to control the device, security, provisioning, and management.

This talk will focus on the key considerations that companies, entrepreneurs, and individuals will face when creating and supporting these devices at scale.

Device Spectrum

At the low end of the spectrum is the Arduino. The higher-end devices include the raspberry pi. A myriad of expansion boards can be attached to the small microcontrollers.

What other capabilities with respect to CPU, memory, and storage?

What expansion boards are available and what purpose do they serve?

Device Software

A variety of operating systems are supported on these devices. Programming tools and compilers make it possible to create custom software that run on these devices.

What are the capabilities of these operating systems in terms of storage, memory, processing speed, and networking?

What type of programming tools are available?

What programming languages are supported in the device itself?

Cloud Backend

The cloud provides many useful services for these devices in a connected world.

What role does the cloud play with respect to security?

Which networking connectivity solutions that should be considered for device-to-cloud communication?

How does the cloud help alleviate bandwidth challenges and minimize power consumption on the device?

What are the four patterns for device to cloud service message communication?

Choosing a device 

Selecting CPU, memory, and storage

At the low end of the spectrum is the Arduino with only 4K of memory. The raspberry pie represents the higher end of the spectrum, running a full-blown version of Linux.

Expanding device capabilities

The ability to expand your device capabilities is astounding. You can connect everything from motor controls to infrared remote control, GPS, wireless networking, home automation to sensor and beyond.

Even if you limit yourself to look in all sensors, there is remarkable variety: Acoustic, sound, vibration, Automotive, transportation, Chemical, Electric current, electric potential, magnetic, radio, Environment, weather, moisture, humidity, Flow, fluid velocity, Ionizing radiation, subatomic particles, Navigation instruments, Position, angle, displacement, distance, speed, acceleration, Optical, light, imaging, photon, Pressure, Force, density, level, Thermal, heat, temperature, Proximity, presence

Writing software for your device

Most of these devices come pre-equipped with some type of operating system, and support for programming tools. Many of these devices are even capable of running a Web server or supporting an external display that can provide a user interface for interaction

Programming tools, compilers and languages

Software developers work with code editors and compilers to create executables that run on the device. This presentation will provide an overview about what’s available and what makes sense given specific use case scenarios. Practically all popular languages are supported on these devices. It is even possible to write code with C# on top of Mono running on Linux, for example.

Client connectivity to the cloud

How a client device connects it to the cloud is important. Choosing an efficient communication protocol, including both networking and messaging is critical, as it affects performance, power consumption, and security.

Microsoft Azure – an ideal cloud back-end for IoT devices

Special consideration must be given to the cloud backend. Microsoft Azure is ideally suited because of its support for the Service Bus, which provides a hosted, secure, and widely available infrastructure for widespread communication, large-scale event distribution, naming, and service publishing.

Addressability and network connectivity

Virtual private networks fail miserably in providing a simple, efficient, and secure way to connect a client device to the cloud. Many of these devices are not under direct physical control, so making them part of a virtual network dramatically compromises security.

Typical HTTP request response architectures drains battery life on devices. Moreover, the payload associated with the request/response payload is unnecessarily huge and can be ridiculously wasteful.

Finally, most, if not all of these devices sit behind a network address translation layer, posing a big problem for addressability and connectivity. The Microsoft Azure Service Bus greatly simplifies connectivity acting as a relay service, and serving as a proxy for the cloud backend.

Scalabilty, Storage, Big Data, Web Services

One of the most important aspects of the cloud is its ability to scale on demand. The amount of devices put into production is generally unknown in the beginning and can change dramatically throughout the lifecycle of the devices in the field. Having the capability to scale as needed, whether scaling up or scaling down, is critical.

The amount of data that devices can generate staggering. Having a storage infrastructure that provides the necessary security, scale, and support for various data formats is mandatory. Microsoft Azure supports traditional blobs, key-value, column family, graph, relational, and document stores.

The ability to analyze this data is also critically important. Support for Hadoop, reporting and data analytics is an essential part of the cloud backend. I signing probability to predictions, as well as finding patterns is an important part of the infrastructure needed to support these data producing devices.

The cloud backend also needs to support a variety of operating systems, languages and open-source software. Microsoft Azure supports everything from Python to C#, Node.js, C/C++, as well as a variety of functional languages typically used in machine learning scenarios.


This abstracts reflects the content that will be presented during our talk. It provides a comprehensive deep dive into the challenges and solutions for individuals and companies looking to enter the brave new world of Machine to Machine computing or the Internet of Things. The discussion will address the needs of the executive decision-makers, architects, software developers, and hardware enthusiasts. Real-life examples will be brought into the discussion as well as concrete recommendations and examples.

Join or login to comment.

  • MobilePundits

    Internet of Things (IoT) will be more personal and predictive. This will make life easy, comfortable and more efficient with the help of mobility and cloud. Today I heard about the Minnowboard Max which seems to be a nice piece of hardware for prototyping. But it requires a real Windows license. What happened to the free windows for devices? Is a Raspberry Pi is the best way to develop IoT stuff with .net technology?

    February 10

  • A former member
    A former member

    Thanks Bruno and Steven for a great presentation with a nice balance of interaction between the two of you presenting. A huge amount of material covered and very helpful to have links to work on material offline.

    September 1, 2014

  • Jeremy

    Hey All, great seeing everyone at the last event, just wanted to let people know we recently launched an Alpha version of our WiseGuy application that powers university online tutoring and mentoring programs. Looking to bring on another technical co-founder to join our team and take it to the next level. Shoot me an e-mail if you're interested in connecting ([masked]).

    Check out more at

    August 26, 2014

  • Jacky S.

    Unfortunately I can't make it tonight. Will there be a repeat of this?

    1 · August 19, 2014

  • Neil M.

    Thanks to Bruno & Steven for hosting tonight's talk. Had a great time discussing the IoT, connected devices, and hacking together systems with RasPi and Arduino. Oh, and I won an O'Reilly book. :-)

    3 · August 20, 2014

    • Steven E.

      Thanks Neil! Really happy you enjoyed it.

      August 22, 2014

  • Danny P.

    MAJOR Thanks to Bruno and Steven Edouard for a fantastic presentation. I just keep walking around looking for business uses - thinking sensors, scanners, cameras, IoT and what can be done in the cloud... - thanks for sharing this "gold rush" opportunity with us.

    3 · August 21, 2014

  • Michael

    Thanks for providing the slides. Is a recording available? One would think that a talk that builds on the trend of sensors everywhere capturing all kinds of inputs, would itself be logged... :)

    August 22, 2014

  • Yuse

    In the process of developing an E-commerce platform for Africa which is really gearing up with lots of investments. Do any of you have an interest in that continent?

    August 21, 2014

    • Peter Z.

      We (I-MAG STS) have done a fair amount of business in Africa for many years. It is definitely not a homogeneous continent. New technologies there have all sorts of unexpected consequences. [masked]

      August 21, 2014

  • GillesdeBordeaux

    Very good presentation as usual. Thank you Bruno!

    1 · August 21, 2014

  • Billy F.

    This event was a pleasure and a service to the community. Thanks for the time and care that went into this.

    1 · August 21, 2014

  • Bruno T.

    Hi Everyone, I've got the content right here:


    [Please enjoy]

    4 · August 21, 2014

  • Mike M.

    Great talk, great people.

    1 · August 21, 2014

  • Jay M.

    Piling on: Outstanding talk and demo. Please comment or email out the links when you get the chance. I've seen some inquiries on the Noisebridge list about IoT and I know they'll be stoked to see the project, method, and code.

    August 21, 2014

    • A former member
      A former member

      Lol they already have a door system like this. When I saw the project at the meet up I immediately thought of noisebridge

      1 · August 21, 2014

    • Jay M.

      And VHS has a doorbot with pirate-themed tweets. :)

      August 21, 2014

  • Michael F.

    I was unable to attend but sounds like you guys had a great time. Did anyone video the presentations?

    August 21, 2014

  • Alec D.

    Another great Meetup from Bruno & Friends -- Steven, in this case! I noticed that they'll be presenting at Silicon Valley Code Camp in October, so if you didn't get enough IoT last night, here's another chance:

    (They actually get PAID for doing this neat stuff ?? :-) )

    2 · August 21, 2014

  • A former member
    A former member

    If anyone has more info on the process of converting a prototype Into a mass produced iot product I'd love to chat

    August 21, 2014

  • Shine

    Great talk indeed! We had a hack day at work a few weeks back where the theme was Internet of Things! This meetup could've come a few weeks before but I was still in that mindset and walked out quite content seeing the interfacing of hardware and software, besides the wealth of other info.

    Please upload the slide deck (if possible) and links to relevant blogs, GitHub, etc.

    2 · August 20, 2014

  • Jacques-Olivier D. B.

    Is there a place to safely park bicycles ?

    August 20, 2014

  • Max Z.

    While it's no longer "hands-on", any chance there'll be some live demo's so we see how it's supposed to look?

    August 19, 2014

  • Ashley L.

    Is this event on for tomorrow? Hasn't been updated in a while. If so, what time will talks start, 7:30?

    August 19, 2014

    • Fabien L.

      Tomorrow, Wednesday 20th at 7pm

      August 19, 2014

  • Petr G.

    For anyone interested in carpool, I've created an event on with event key


    Please feel free to participate.

    August 18, 2014

  • A former member
    A former member

    For additional project ideas check out !

    August 15, 2014

  • Tal


    August 5, 2014

  • Emmanuel M.

    Very curious

    July 28, 2014

  • jesse

    Net Neutrality Rally in the Valley

    When: Wednesday, July 23rd at 9:30am
    Where: Los Altos, CA (at intersection of S San Antonio Road and W Edith Ave)

    This Wednesday, July 23rd, President Obama will be in Silicon Valley at a fundraiser, and you’re invited to join EFF in greeting him. Our allies in the fight for Net Neutrality are organizing a rally (...)


    July 22, 2014

  • Panayiotis P.

    Check out before the event. It is very handy

    July 18, 2014

  • Danny P.

    FYI - cross-posted to the IEEE LinkedIn Group - an asked one of the principles of the IEEE Computer Society's Silicon Valley chapter to help spread the word.... -hope this helps draw some attention to this wonderful machine-to-machine IoT event! Thanks Bruno for putting this together !!!

    1 · July 16, 2014

  • Bill M.

    Hope you are using the new Raspi Rev B+ board

    July 16, 2014

    • Neil M.

      SWEET! 4 USB ports so I don't have to use a hub. I'm going to have to get one of those. Nope. I have the pre-plus board.

      July 16, 2014

    • jesse

      So to be clear, I can plug and unplug my USB dongle without rebooting the Pi?

      July 16, 2014

  • Noah K.

    What's the date?

    1 · July 1, 2014

  • Neil M.

    Looking forward to the event in August. I got my hands on a Pi revision B board and hacking around.

    July 10, 2014

  • Abhishek T.

    Will this be a hands-on session with participants coding and building stuff alongside, OR mostly presentations? If hands-on, what all should I plan to bring along with me?

    July 2, 2014

Our Sponsors

People in this
Meetup are also in:

Imagine having a community behind you

Get started Learn more

I decided to start Reno Motorcycle Riders Group because I wanted to be part of a group of people who enjoyed my passion... I was excited and nervous. Our group has grown by leaps and bounds. I never thought it would be this big.

Henry, started Reno Motorcycle Riders

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy