Tags: arduino, IoT, m2m, mqtt, nanode, Rasberry Pi, Twitter
The Internet of Things is not a new notion. It’s been proposed in differing forms over a period of more than 10 years. The IoT links uniquely identifiable physical objects (things) to their virtual representations online, which can contain or link to additional information on identity, status, location or any other business, social or privately relevant information.
The intention is to provide access to accurate and appropriate information in the right quantity and condition, at the right time and place and at the right price.
IBM’s strategic Smarter Planet initiative, currently featuring in a mainstream UK TV advertising campaign, has been in place for a number of years. During the course of 2012, ny work as an IBMer has taken me into the world of Smarter Planet and in particular, into the field of Smart Grid and Smart Meters.
Influenced by working with a team of experts, particularly Dr Andy Stanford-Clark (IBM’s UK CTO for Smarter Energy), I set out to investigate the possibilities of the IoT for myself, determined to be able to talk to the myriad devices I use daily and to have them talk back to me.
As a gauge of what can be achieved, I looked into the monitoring and automation that Andy had built into his own home on the Isle of Wight.
In this TEDX talk, Andy describes how his experimenting moved from the personal to the local to the regional and how he believes that the Internet of Things will evolve as a global system of systems, interconnecting regional smart grids.
To start with though, let’s talk about some of the attributes of the Internet of Things:
The IoT is based on the premise of pervasive computing. This means machine to machine communication (m2m) between potentially trillions of devices. These don’t have to be just new “smart” devices. The availability of small, simple and low-cost components means that legacy devices can be connected as well. Each devices then exhibits three key characteristics:
- Instrumented: Sensors are provided to monitor the device operation and collect key data
- Interconnected: The device has a means of communicating with other devices, or through a hub to deliver its data and receive requests or commands;
- Intelligent: The device has sufficient memory, storage and processing power to forward the data to an intelligent back end, where it’s analysed to form a world view.
The ready availability of low-cost compute nodes, such as arduino and nanode and more recently the Raspberry Pi makes it simple to get started with adding these capabilities to existing devices.
The consequence of these pervasive computing capabilities is inevitably an explosion in the amount of data available. This explosion can be described in terms of:
- Volume: The amount of data accumulated either from a single device or multiple devices of the same type (accumulation);
- Variety: The types of data made available, structured and unstructured, including voice, video and other rich data types;
- Velocity: The rate at which events are received by the hub or the subscriber.
Big data can be as much a hindrance as a help, unless we keep in mind a couple of key design principles:
- Device data needs to be filtered to make it relevant – a change in inside temperature of 0.1deg isn’t significant, a drop of outside temperature to < 4degC is.
- Just like any well designed metric, the event the device generates must be actionable by the person viewing it.
- The utility of data (big or otherwise) increases exponentially, as it is enriched through aggregation with data from other devices or sensors.
- The collection, filtering, aggregation and analysis of data needs to be focussed on supporting a specific human decision.
- From devices and sensors into local networks, using a simple, small footprint subscribe and publish messaging protocol such as MQ Telemetry Transport (MQTT)
- Allow the network to communicate with the outside world through a microblogging service, such as Twitter
Over a series of posts, I will describe my adventures on the IoT, experimenting at the personal level with these components, to:
- Monitor power usage within my own house
- Connect devices within the house, through the MQTT messaging protocol
- Contribute data to community sensor projects