Years ago, when I had a blog on java.net, I made a post about how technology could help us on our domestic lives. The site is down nowadays, but still accessible on Google’s cache if you search for the title “RFID tags to tell a washer/dryer how to wash clothes”.
This is great! Technology to help us with domestic tasks. Designer Sangmin Bae has designed the clothTag, an RFID tag that could communicate with RFID enabled washers, dryers, irons, presses, and dry cleaning equipment, adjusting all settings automatically. You will just need to load your clothes, add detergent and shut the lid.
That was 2008. I was still an undergrad student, but was deeply interested on this topic: connected devices. So much so that I decided to do my final project on Wireless Sensor Networks, and, afterwards, my master in Embedded Systems.
Nowadays, the idea of connected devices evolved and it became more commonly known as Internet of Things (IoT). IoT is a hot topic right now, and forecasts say that it will become a billion dollar market. I’m pretty sure it eventually will. It affects not only the devices level, but also the whole infrastructure necessary behind the curtains to provide things like associated services, data aggregation, and analysis.
Since 2008, technology has definitely improved. We have smaller and cheaper circuits, they became more ubiquitous and easier to buy/experiment, plus development tools are becoming more friendly. Battery life is still a huge issue, specially if your device has no direct connection to a power source, but still, that’s a problem that can in several cases be somehow dealt with.
If you spend a few minutes on Kickstarter, you’ll quickly find dozens of projects that fit into this idea of connected devices. Even on established brands we are seeing innovation towards that. The list of products is already big. Every single major home appliance manufacturer these days is working on a solution to connect their products. I would list two interesting products, that I had directly contact with, and are not the obvious smart watch or cellphone:
- An electric toothbrush that I recently bought and that freaking has Bluetooth on it. It allows me to connect my cellphone, and when both are paired, I can see how long did I took brushing my teeth. But only when I’m paired, otherwise no track of activity is maintained on it;
- A nice new refrigerator with an outside camera and user interface on my friend’s apartment. You can record videos on it and send them to others, beside other connectivity options.
The toothbrush in itself is quite good, but having Bluetooth had no impact on my daily life. I don’t even use that feature any longer. It’s just very inconvenient to pair my phone every time I need to brush my teeth. Same, I imagine, would be if I owned such a fridge. The user interface wasn’t good enough, specially when compared to phones (I refer to both hardware and software). Even worse, “me cantz” WhatsApp on it
Anyway, both sound useful. Not essential, but useful. But in both cases the features were not polished enough (or affordable enough) that would make me feel like using them on a daily basis. So far we have seen several attempts on delivering IoT, with greater and smaller successes, but they invariably hint the same: we are not there yet.
One of the key points I believe is still missing is a smoother integration of all these devices. Similar to what Apple and Android are trying to accomplish with cars, but I would rather prefer it to be open, standardized, and free to anyone to play with it. This subject reminds me of a book I read also when I was still a student, called Everyware: The Dawning Age of Ubiquitous Computing. It made me understand that good technology must present me with benefits that are actually tangible, but more than that, they need to be almost invisible. It should just be there when I need, no fuss to use it. But for that, we need something that helps getting things together, allowing developers to focus more on their product features, and less on how they should make devices talk.
A common platform was, in part, the discussion I had on my master degree’s dissertation, presented in 2012. The topic itself was related to Smart Grids, but focusing on the integration of the appliances inside your home network, and how they could be stitched together. You can find the full text here, but sadly it is in Portuguese only. On it, I used the term Smart Appliances to refer to these special house devices. We were working mainly with the idea of reducing energy consumption, but the possibilities are limitless. Examples could be as simple as having your AC change temperature based on your cellphone location (you are close/far to your office/home), or have your pantry and trash can talking to each other, seeing through RFID that you used your last pack of noodles, and reminding you through the TV that you might need to buy more.
On the dissertation, I imaged a network composed of IPv6 devices, using a basic defined REST interface for describing different modules a device might have. Each module was free to define their own behavior and expose their own services. A service discovery API was available for locating those services among devices, in order to finally allow ad-hoc connection between them. It was an interesting experiment, and we actually got a few nice demos to work on top of it.
Coming back to getting things together, it is clear to me that one of the major difficulties necessary to overcome and, therefore, make IoT happen is such a common platform, that allows devices to collaborate. It’s far from an easy task, I learned the hard way, and one that the requirements are still ill defined. What is happening right now, I guess, is that we are passing through an experimentation phase, trying to see what can be achieved with these new toys. We will get there at some point, and it’s interesting to see things moving, and the directions they are taking.
I don’t feel any special urge on pushing for this transition. It will probably happen gradually. Take cars as an example once again: seat belts where once considered a superfluous item, intended only for luxurious models. Nowadays, they are just another commodity that we cannot imagine our lives without (some more than others, but…).
- Tips for your Distributed Project Inception or Meeting
- Trunk Based Development with Multiple Services
- Services Version Lock with Docker and Jenkins
- Problems with Branches per Environment
- Efficient Timer using a Circular Buffer
- Learning From My Mistakes: Building a Crawler
- Hydroponics Kit Automation
- Circuit Breakers and retries in Scala with autobreaker
- Integration testing for nginx Routes
- Automatically Build and Deploy the Blog