Building Blocks for the Internet of Things

The concept of the Internet of Things (IoT) has become widespread in the past couple of years, making it a lucrative playground for engineers, companies and investors. What’s special about the IoT?



Computers have been connected to the Internet for some time now, phones got connected a few years ago, and now it’s time for all the rest.  IoT is about connecting all the rest—everything from your dog to your washing machine. There are currently about 2 billion PCs, portable PCs, tablets and smartphones out there. The IoT market is estimated to be 50 billion devices in 5-10 years, depending on which market report you pick up this week.mnBut the sheer numbers is not the only thing special about IoT.

IoT is about making our lives better, and this is a message not just to the business sector, but to everyday people like you and me. IoT will help us learn about ourselves and our surroundings, help us save on scarce energy resources, make us healthier and live longer, and many more things.  It will truly transform the way we live.

No one company or group of companies can develop all the applications around IoT.  We need to get as many people as possible involved in innovating and developing new ideas. So, how do we get people and companies from all around the globe to join in and develop the new and exciting applications, that will make everyone’s lives better? We give them the basic building blocks required to develop an IoT application, and then sit back and let them do their thing.

To develop an IoT application, you need several key building blocks. Figure 1 shows the different components involved in an IoT application.


Figure 1
Components of an IoT Applications.


1. The connected device – The actual physical device we want to control and manage.  It needs to be connected somehow, either wired or wireless.

2. The local user – This is the user who wants to interact directly with the device to either control it, or receive information regarding its operation.

3. The router – This is the part that connects the device to the Internet.  The connection can be via ADSL, cable, cellular, etc.  In some cases, there is no router where we want to place our device, or a standard router is not sufficient for the application, so you may need to provide a router of your own.

4. The Cloud solution – A Cloud solution can be simple storage of data flowing from your connected device, or can include complex analytic functions that are performed on the data coming from the device and reported to the local or remote user.

5. The remote user – The user who is not in the proximity of the device, but wants to control or receive information regarding the device from afar.

First, you can see that an IoT application involves hardware, software and connectivity components.  Security is always a concern with IoT applications where the level of security required depending on the application itself. Because IoT involves several components, it’s difficult to know where to begin, and since the IoT market is still in its infancy, standardization between the components has not been achieved yet. But, since we do want to develop an IoT application, let’s dive in, and usually, the best place to begin is at the connected device.


The Connected Device

Whatever device we want to connect, it will require 2 main functions: application and connectivity.  The application will be developed on an embedded CPU and a connectivity chip or module will be used to connect to either a local user or send data to the Cloud solution.

The embedded CPU and its memory resources and software will be chosen based the device requirements just as any embedded system is developed.  But, an IoT application will require connectivity capability, so connectivity software stacks will be required.

There are a couple of generic, open CPU platforms that enable simple development and programming for IoT. They are Raspberry Pi and Arduino.  Each platform has add-ons that enable connection to different sensors and connectivity solutions. The connectivity type depends again on what the application wants to do.

If all we want is a short distance connection to a local user’s smartphone in the vicinity of the device, we can use a Bluetooth chip or module.  Bluetooth has low energy (LE) mode that is very power conscious for devices working on batteries. Devices using BLE with a limited amount of data being transmitted can operate several years without changing their batteries.

To send data to the Cloud, Bluetooth devices can use the local user’s smartphone as their hub to the Internet, or a special hub can be provided that routes the Bluetooth data through Ethernet/Wi-Fi/cellular to the Internet. Wi-Fi, a more power-hungry solution, but still relatively low power, will be a better choice for devices that are connected to external power, or can be charged periodically.  Wi-Fi, in contrast to Bluetooth, can connect to the Internet and the Cloud directly via an existing Wi-Fi router without a special hub required.If Ethernet (LAN) is available where the device is located and the device is stationary, a wired connection may be a good choice – it is usually the lowest cost and simplest connectivity method for the device.


Real World Application Example

One example would be a connected lamp that can have Wi-Fi embedded into it so that it can then be turned on/off and dimmed via a smartphone app or remotely via a Cloud solution. Here are the elements for the solution shown in Figure 2.


Figure 2
Components for Connected Power Socket Application

Local user: A local user, usually equipped with a smartphone or tablet, wants to interact with the device or receive information relating to the device.

So, an app needs to be developed for the smartphone or tablet that will receive data from the device, interact with it, and if needed, send the data to the Cloud.

Router/hub: If the connected device is using Ethernet or Wi-Fi, connection to a standard router that already exists in the area of the device is easily and economically achieved. If no such router exists, you may need to supply a router, for example to route Wi-Fi data from the device or from several devices to the Internet.


Cloud solution: The solution in the Cloud can have several levels of complexity:

1. Connectivity – the solution can enable a remote user to connect to the device remotely (through the Cloud solution).

2. Management – management capability can be provided by the Cloud solution whereby the operation and control of the device can be performed through the Cloud solution.

3. Analytics – analysis of the data coming from the device or other sources can be used to send information to a remote/local user regarding the device operation, or this analysis can be translated to commands sent to the device to influence its operation. For example, the connected lamp can be turned on from the Cloud when analysis shows that it is dark in the lamp’s location and a remote lock shows that someone has entered the house.

Remote user: Similar to a local user, a remote user equipped with a smartphone/tablet/pc wants to interact with the connected device or receive information relating to it. Where a local user may interact directly with the device, a remote user will need to do so via the Cloud solution. A relevant app or application needs to be developed that will connect to the Cloud solution, and thereby have access to the device or information relating to it.

Example System

Figure 2 shows the setup for such an example application that is built on a simple connected product with a specific industry solution. This will be based on a connected power socket for our laundry room, so we can simply manage the room light, and any other appliance connected to the power socket, remotely over the Internet.


Figure 2
Components for Connected Power Socket Application


There are several companies providing end-to-end solutions for IoT applications. One of those companies providing such building blocks is Connect One. We will use Connect One’s solution to show how to build such a connected power socket. Figure 3 shows the block diagram for the connected power socket.


Figure 3
Connected Power Socket


The unique feature about this Wi-Fi module (Figure 4) used in this connected outlet is that you don’t have to do any programming at all at the device level and you don’t have to add an application CPU to your design. The module connects to Connect One’s Cloud solution automatically and becomes accessible for the purpose of control and management.


Figure 4
Connect One’s Wi-Fi Module


This module basically lets you control its I/O ports via the Cloud interface. The module has an embedded web server that enables you to configure the I/O ports and name each port according to its function in a simple and intuitive manner. See Figure 4 for how each power socket port is named.

So, if you place the connected power socket in your laundry room and connect your washing machine, dryer and room light to the power socket, you can monitor and control the electricity in your laundry room. You can also change the names if you decide to plug some other devices into the power sockets when you move it to another location.

Along with this simple configuration ability, a smartphone app is also provided.  It shows the current state of the power socket, and when each status button is pressed, it changes the state from ON to OFF or vice versa (Figure 6). You can use this app during the testing phase of your product, and then make changes to the app to fit your particular look and feel.


Figure 5
Smartphone App for Managing Connected Power Socket

Since the data from the Wi-Fi module regarding the state of the power sockets goes to Connect One’s Cloud solution, and the app accesses the connected power socket through the Cloud solution, the app can be used by both a local user in the proximity of the connected power socket, as well as by a remote user in some other location.

IoT presents a huge opportunity not just for the business sector, but for regular people to improve their lives and their surroundings. We know what it takes to develop IoT applications and much of the technology already exists.  We need to do more in the realm of standardization so that different vendor solutions can interact with one another in a seamless and efficient way. Until standards solidify, most product developers will try to find a single vendor, with a complete solution, so they can be sure all the components in the IoT application seamlessly “talk” to each other.

Knowing all the components required, we can break down each component and provide simple-to-use building blocks for people and companies that want to develop IoT applications. The better job we do in providing simple-to-use building blocks, the faster we will reach our goal of getting everything connected.


San Jose, CA
(408) 572-5675