What is the Internet of Things?
The Internet as we know it is going to change. Today it is a global network which connects people. We use desktops, laptops, tablets, and phones to communicate with each other. Often the information we send around goes via servers which run web sites, email software, etc. Broadly speaking this means that the Internet is made up of people, client devices, and servers.
A whole new category of actors is being added to the Internet. These new participants aren’t people and have been unglamorously named as “things,” hence the term “Internet of Things.”
But a whole new category of actors is being added to the Internet. These new participants aren’t people and have been unglamorously named as “things,” hence the term “Internet of Things.” A “thing” can be almost any object with at least one sensor and a way to transmit data. Examples of such sensors include temperature sensors, traffic sensors, flow-rate monitors, energy usage monitors, and so on. A temperature sensor can be placed in a smart thermostat, a smart electricity usage meter can be wired into a house, or a traffic monitor can be placed into a traffic signal. These things then send that data further up the chain until either a person or a piece of computer software makes some decision based on that data.
It won’t be long, and it may have already happened, but there will be more things on the Internet sending data around than actual people using Internet enabled devices. The cell phone, the Internet, email, social media, and smartphones have all changed the way we do things, both at a personal level and at a business level. Clearly the Internet of Things will also affect our personal and professional lives, how exactly hasn’t yet been fully understood, but affect us it will.
There are several big challenges ahead for the embryonic Internet of Things. There are technological challenges in terms of the actual devices that collect and send data, these challenges include both hardware and software issues like battery life, maintenance, interoperability, and compatibility. There are big data issues around building systems that can process all of this data and use it to achieve meaningful tasks. There are also security and privacy problems, who wants to have a smart home that can be hacked? Or worse still a smart hospital that can be breached remotely. As we move from individual smart homes to smart cities, which have smart transport systems and smart infrastructure, then all these issues become more complex and more difficult to solve correctly.
The reality of the Internet of things from a consumer point-of-view took a giant leap forward this year when Samsung’s co-CEO took to the stage at CES 2015 to declare that all Samsung’s products will be Internet-of-Things (IoT) enabled within five years. If 2020 sounds like a long way off to you, he also said that 90% of Samsung products would be able to connect to the web by 2017. Samsung’s plans are for every washing machine, air conditioning unit, and microwave oven to be IoT enabled. Yoon said in his speech, “five years from now, every single piece of Samsung hardware will be an IoT device, whether it is an air purifier or an oven.”
In his speech the co-CEO also highlighted that the IoT experience needs to be seamless for the consumer. “We have to create an open IoT ecosystem,” said Yoon. “The IoT experience needs to be seamless.” To that end Yoon promised that all of Samsung’s products would be built on open platforms. “Our IoT components and devices will be open. We will ensure that others can easily connect to our devices,” Yoon said during his keynote. “Without this kind of openness, there won’t be an Internet-of-Things.”
I predict that this road to a “seamless experience” will be quite bumpy, but companies like ARM are trying hard to make the journey as smooth as possible. Towards the end of 2014, ARM announced a new operating system to boost the development of IoT devices. Called ‘mbed OS’, it is a free operating system for ARM’s Cortex-M range of microcontrollers. One of the key points about mbed OS is that it supports the important IoT protocols, and allows anyone from a hobbyist developer to a multiple-million dollar corporation to prototype and develop IoT devices. mbed OS will include all the functionality needed to create an IoT device and to transmit that data to the cloud. It supports lots of different communication stacks including IPv4, IPv6, 6LoWPAN, Bluetooth, Wi-Fi, 2G GSM, and 3G.
mbed OS is also interesting in that it falls into a special class of operating system. When talking about Internet enabled devices, there are four main categories of operating system. In a smartphone you get an OS like Android, which is itself built on Linux. That is what we call a multi-tasking OS. But a multi-tasking OS requires relatively lots of resources. A modern smartphone has a quad-core or octa-core CPU, a GPU, at least 1GB of memory and so on.
A typical IoT device will use an ARM Cortex-M processor running at less than 100MHz. That is quite different to the 1.5 to 2.5GHz processors that are found in smartphones. Likewise they will only have a maximum of 256KB of RAM, often much less. Again this is quite different to the RAM on a smartphone.
So, for embedded applications there are three further classes of OS. Next is an RTOS, a Real Time Operating System. These are designed to run on resource limited processors and their key functionality is that the OS has a predictable scheduler. This means that different tasks are guaranteed to run in a certain order and within certain timing constraints. This class of OS is very important for the computer systems in cars, airplanes and industrial systems. However they aren’t very power efficient, something that is essential for IoT devices.
The next class of operating system isn’t really an OS. Known as the bare metal approach, it means the device software runs in an infinite loop and access to the hardware is handled by some drivers supplied by the board makers. This is the simplest way of programming an embedded device and probably something that people who have used an Arduino are familiar with.
The last class is the low-power operating system. mbed OS is an example of a low-power operating system. Its primary concern is with saving power (i.e. battery life). The OS is designed in such a way that it doesn’t wake from its sleep state unnecessarily, and it responds to events rather than continuously running and polling.
Low-power operating systems are perfect for IoT devices that need to have long battery lives, and remain deployed for long periods of time.
So what does the Internet of Things look like in terms of its structure? It is quite simple. At the “Thing” end you have small devices which monitor something, a door or window sensor, a heart-rate monitor, a temperature monitor, and so on. These devices transmit that data to another, more complex device. It could be a smartphone; it could be a control unit of some kind, like a smart thermostat, or it could be to a dedicated device that acts as a gateway to the Internet. This last category of device is known as an IoT Gateway. They are important because the sensors often don’t have a direct Internet connection. They probably only have Bluetooth or some other low power connectivity like ZigBee. Once the IoT gateway has received the data from the sensor it can be sent into the cloud.
Part of ARM’s strategy can be seen in its mbed OS Device Server. While a web server would accept connections from web browsers running on PCs or smartphones, the mbed OS Device Server handles the connections from IoT devices. It uses open source protocols including HTTP for data communication and device management. The mbed OS Device Server would sit behind an IoT gateway and would use the gateway to talk to the IoT devices. It can also send the collected data higher up into the cloud.
Imagine you wanted to control the temperature in your house. Your air conditioning unit will be monitoring the temperature, and either keeping it at a certain level or programmed to come on at a set hour. This data is collected and sent up to the cloud for you to monitor via the web or on your smartphone. If you manage to get out of work early you might want to switch on the air conditioning unit earlier so that the house is nice and cool when you arrive. You can send that command via your smartphone and it will be relayed back to the unit. Related smart city scenarios can be imagined with regards to traffic control, street lighting, and so on.
This all sounds very Utopian, but of course there are dangers. With all these devices sending data and receiving commands it won’t be long before the hackers are drawn in. A recent security report from Intel’s McAfee Labs singled-out IoT as a potential area for security problems. The report says that IoT related attacks will increase rapidly due to the predicted fast growth in the number of connected objects, many of which will have poor levels of security.
At a white-hat hackers conference in 2013, researchers demonstrated how easily some Internet-connected security cameras can be hacked. Once breached the hackers can steal the video feed from the camera and gain entry to the camera’s network. During 2014 there have been several cases of attackers who have hijacked baby monitors and spied-on or even screamed at babies in their bedrooms. The BBC recently published an article about a website dedicated to streaming live feeds of hacked baby monitors and webcams. All this is both creepy and disturbing.
Another important concept for the Internet of Things is M2M, or Machine to Machine. At one level M2M is what it says it is, a way for one machine to talk with another machine. However in this context it means how a connected device talks to the cloud. It also includes how these devices are managed. M2M isn’t new in the sense that we are all used to one device talking to another device. File transfers over Bluetooth, app updates over Wi-Fi, even emails are examples of how one machine talks to another to achieve a task. However the special thing about M2M in terms of IoT is that these connected devices a) have a low-power usage, b) aren’t always “on”, and c) are limited in terms of resources (e.g. processing power, memory, and so on).
ARM’s mbed OS will support several different M2M protocols including CoAP. The Constrained Application Protocol (CoAP) is a specialized web transfer protocol for use within the Internet of Things. CoAP uses URLs along with the HTTP methods like GET, PUT, POST, or DELETE. This means that obtaining a value from a sensor is not much different than obtaining a value via a Web API.
All this technology sounds great for the consumer, but probably the big money is to be made on larger scale projects. Smart buildings, smart cities, and IoT enabled businesses are where the large contracts will be. Whole infrastructures enabled for IoT or end-to-end business processes using IoT at every step. Everything from garbage to electricity, from trams to taxis, and from parcels to productions lines can be built to use IoT. The initial investment will be high for businesses, however the benefits will likely save money in the long term.
The IoT revolution is really only just beginning and there will be lots of advancements over the next few years. How we arrive at the seamless IoT experience will be interesting to watch, and on the way I am sure we are going to see some great innovation from some surprising sources.