So your connected coffee mug sits on your desk at home and tallies up the amount of caffeine you have had today. You have had a heavily caffeinated night putting together some diagrams to show at a meeting with a client at the coffee shop around the corner. You want to save the planet the burden of another paper cup and sleeve so you bring your technological masterpiece of a tumbler to measure your caffeine on the go. How does moving the connected device from one place to another affect the connectivity?
Device Mobility and Remote Devices
Not everything is going to sit on just one network its whole life. You like to move around and see new things and so will your devices. And then some things may be beyond the reach of most traditional wireless networks. Maybe a remote device in the middle of a rice field? It is important to consider these use cases when developing hardware and software for the internet of things.
Designing for device mobility means taking into account the idea that users and their things will move around. Engineers and designers consider what happens when the device is momentarily not connected to the network, or if it has to connect to a different network. This is closely related to remote devices as well because they solely exist beyond wifi soaked environments.
See a Problem, Solve a Problem
This is an issue that I have had to tackle in the past, and I know that most of you will have to design solutions for this in the future. So we will discuss a few techniques that are being used in industry right now and why we should be using them. Below I have four of my personal favorite methods for keeping a device connected without relying on a cellular tower.
1. Home Network Synchronization works very well for sensors that will always return to a home network. Possibly the best example of this is the Fitbit fitness tracker who collects and stores the data until it can update when you get back home. This works great and programming this functionality is not very difficult. However, this leaves large gaps when the data has not been updated in a while. This can cause issues with certain apps, for example a Fitbit application that notified you when your heart rate became dangerously high would not work unless you are at home.
2. Automatic Connection to Known Networks makes the most sense for most situations. Like your caffeine counting coffee mug who will only need to upload information occasionally at home and at the coffeeshop, the majority of gadgets live their lives bouncing from access point to access point. This is what is built into all smartphones because it happens nicely in the background. The biggest issue is most hacker projects that move into manufacturing do not employ this. I hope to have an Arduino library up soon that handles this type of functionality.
3. Standalone Connectivity is connecting your phone to a bluetooth speaker or when a thing broadcasts its own ssid. This is for those products that need to to be controlled by a phone or other thing and may not always have or need a larger network. For my connected power supply project I will use this along with automatic connection to known networks so I will never be locked out of the functionality even when it doesn’t have WiFi.
4. A Mesh Net is a fascinating peer-to-peer networking strategy for passing information classroom note style. It works by connecting everything within range and bouncing information around multiple “nodes” to reach its final destination. Imagine a garden beyond the reach of a wireless router covered in light, soil, and water sensors each communicating with each other and passing along their data to a sensor who is within reach of the home’s WiFi. Mesh nets are very useful for fringe networking and they are already being applied to social communications with apps like FireChat.
Taming the Wild Internet of Things
When you go out to tame the problem of device mobility remember to open up your product to travel the world. How would the end user access your thing in jungles of Borneo, or at work in the office? Maybe you are working on one of these solutions now and would like to share your device with me. I say go for it! If you have any thoughts to add find me on twitter or make a comment below.