If you’ve been paying attention to the progress being made on the IoT, you’ve heard about the billions of IoT devices currently connected and the fact that in the next decade, experts expect to see more than a trillion devices connected. A trillion devices. That is just mind boggling, especially considering standards are still in development, security is dramatically lacking, and developers are currently focused on many other obvious and important concerns.
If you are building an IoT device, how does your device function when the internet goes out? Is there something it should do to maintain functionality? (Image source: Wilgengebroed)
There is one key factor I have recently realized that is absolutely critical to IoT devices but, so far, many developers seem to have overlooked: lack of connectivity. This sounds strange, but let me explain through a few experiences.
The other night, a string of severe thunderstorms moved through my area which left a fair amount of flooding and damage in its wake. While the power remained on, our area experienced an internet outage that lasted for nearly 24 hours. In today’s society, not having internet for 24 hours seems like an eternity, but having grown up without the internet, I recalled plenty of activities in which I could engage. For example, I decided since I couldn’t work, this was the perfect opportunity to hop on the treadmill and get some cardio in.
Earlier this year, I had purchased a new treadmill to replace a well-worn and more than decade old model. I jumped on the treadmill and hit the manual run button, and instead of being greeted with the treadmill starting, the treadmill’s screen froze. What on Earth was going on? It turned out, this treadmill, which shouldn’t require any connectivity to run a motor and take a few button inputs was, in fact, dependent upon being able to connect to the manufacturer’s server! What should be a simple, stand-alone device that could maybe download different workouts from their server if requested, required the internet even to run in manual mode.
What Happens to IoT When the Internet is Not Available?
Now, you may be thinking this is just a poor design, but it made me start to wonder about other connected pieces of software. For example, I recently learned that every doctor’s office uses an online health records system. This seems convenient and makes it easier to share patient records between different specialists, hospitals and care providers. It’s brilliant…except that if the internet goes down, doctor’s offices are no longer able to access their patients’ records. The result is angry humans sitting in their doctor’s offices waiting for the internet to return. Again, you could say this is a corner case. After all, how often does the internet go out? The fact is, it’s more than you might think.
The point is that IoT device and application developers are connecting everything they possibly can without considering how their device operates when the internet is not available. Instead of timing out quickly if a server isn’t able to be reached and giving the user local control of the device, a treadmill becomes a boat anchor. Patient records could easily be synchronized overnight locally since more appointments are scheduled at least a day before the visit. If the internet goes down, that’s okay, because the updated records can be synchronized later and the one or two patients who scheduled their appointment that day can wait or be rescheduled.
Engineers and companies are building a complex and interconnected society without fully considering the consequences of what happens when the internet goes down. Just 24 hours can result in losses to a business or inconvenience to a user. I can only imagine what will happen when every light switch, electrical box and toaster is connected, and we have a major internet outage. If you’ll now excuse me, I think I should go make sure there is air in my bicycle tires.
If you are building an IoT device, how does your device function when the internet goes out? Is there something it should do to maintain functionality?
Jacob Beningo is an embedded software consultant who currently works with clients in more than a dozen countries to dramatically transform their businesses by improving product quality, cost and time to market. He has published more than 200 articles on embedded software development techniques, is a sought-after speaker and technical trainer, and holds three degrees which include a Masters of Engineering from the University of Michigan. Feel free to contact him at firstname.lastname@example.org, at his website, and sign-up for his monthly Embedded Bytes Newsletter.
This summer (August 27-29), Drive World Conference & Expo launches in Silicon Valley with North America's largest embedded systems event, Embedded Systems Conference (ESC). The inaugural three-day showcase brings together the brightest minds across the automotive electronics and embedded systems industries who are looking to shape the technology of tomorrow.