I see what you're saying. Obviously the IoT isn't here yet. People are getting excited about the prospects, but pretty much anyone who understands the underlying idea will agree.
I think that maybe more important than the tech that connects will be the software systems that analyse data and pull intereting information from it. We KNOW that you amazing engineers will come up with a plethora of ways to transfer some bits. however, we don't know whether the refrigerator manufacturer will open the data in a way that the phone provider can use that data well.
It's an embarassment of riches, I think. Too many wireless PHYs, protocols, software stacks.
Now we are getting to many aporoaches to unifying it: Oracle pitches Java, Qualcomm pitches AllJoyn, the 6LoWPAN folks have high level glue of their own. Even little starup WigWag has its DeviceJS. Whew!
Logical Elegance is a small consulting company specializing in embedded system design and software. Under those auspices, I work for a few different client companies, designing new systems, bringing up boards, writing code, and generally doing what needs to be done to ship neat gadgets.
@Caleb: IoT has been here for a few years now, it is just that recent development activities have been more mobile-centric. Building automation (BACNet, LANNet, etc.) and process automation (OLE for process control -OPC) have been connecting "things" for many years and working as a developer in these is more clear than what the author alludes to in mobile-centric applications.
What do you think of the IPv6 embedded MAC implications to IoT?
Which way should the industry go with IPv6 (local hidden networks with random MACs that require a Proxy to access the home or business) or IPv6 direct to each device in the home and business?
Background:IPv6 has the promise of removing the need for a Proxy to gain access to the IoT in a home or business. Because the IPv6 address is so large there is no longer a need for net local addresses used in IPv4. Our industry has a choice with IPv6 of either using local addresses and hiding all the devices from direct remote access or exposing every device directly to the Internet. The addition of the MAC address into the IPv6 address makes device level direct access for IoT very easy to do. Using IPv6 for direct access to IoT devices will make it much easier for everyone to use their IoT devices but it will also make it much easier for governments and criminals to easily learn a great deal about us and even gain access to controlling our lives. For example exposing MAC numbers in the IoT provides a great deal of information about who we are, what we own, how big our home is, how much we earn, how many people are in our family, what we eat..... The embedded MAC also makes it easy for governments to track us any where we go. In countries that restrict their citizens these are big issues to consider and we engineers are the only ones that understand the issues well enough to speak out.
Privacy v.s. Easy Access to IoT: I believe IPv6 with a directly exposed IoT MACs provides the stairway to "1984" and "Atlas Shrugged" -> not a good idea. Instead we should use link-local IPv6 and create standards for Free Proxies that provide access to our devices through the Googles, Bings, and for pay private Proxies.
I hear what you are saying from a developers point of view, but I also think about things from a user's perspective.
It's not so long ago that achieving any sort of connectiving (like linking two PCs together via a cable (using plug-in ISA boards) brought one to one's knees ... I was in an airport yesterday and connected my iPad to a free WiFi network to send an email to my mom and thought "wow, how things have changed!"
But as you say, from an embedded designer / developer's point of view, there's a bunch of stuff to wrap one's brain around ... I'm glad it's not me doing it :-)
The IoT is sure going to make the life of Embedded developers complicated till the time some standards get evolved on how the gadgets connected as Things on the Internet would talk to each other and how and in what format they will exchange information - command as well as responses.
In one of the previous blogs on this subject I had suggested an implementation of a high level command interface like those AT commands for good old modems.
Also there is a need to have some kind of device classification so that the devices which are dissimilar in their functionality need not communicate with each other ( because it will be meaningless and unnecessary burden on the network traffic)
IoT will be a new paradigm that the Embedded developers will have to shift to .
If we start with the electric imp , it's not hard to surpass it's limitations:
1.Data storage not at your server:
Just write a bit of code , to use the imp servers as a transparent bridge to the server you are using. Verify with the imp providers no storage happens at their servers, or encrypt everything( i believe it's possible to add c code to the squirrel in imp, espcially if you're doing volume).
There might be simpler server/website dev tools than electric imp. For industrial applications and maintenece , thingworx seems powerfull and easy. Microsoft lightswitch is another usefull , easy to use option , just use it's REST service api , i believe. Alpha everywhere by alpha software can might give similar level of simplicity , but i haven't looked on the details.
For consumer facing apps, if you really want want custom beautifull interface , i'm not sure what's the easiest way is,but maybe asking this at quora, news.ycombinator.com , or reddit.com/r/programming would offer good answers.
IoT is the next big thing, millions of devices and dollars, hype, hype, hype. But in reality it is not happening. Why?
As programmers and engineers we can not see the forest for the trees. My everyday experience is to install something new, configure it, find the wrong character or miss typed licence key and get it working.
YOU ARE NOT YOUR CUSTOMER.
People are being bombarded with dire warnings about security and protecting their Wifi and personal networks. A secure solution is needed.
At the same time, no average consumer is willing to spend time typing in 128 bit HEX numbers to enable a thermostat. The problem is really terrible for a device without a display. So horrible, people simplely return the device, or don't buy.
At a past company we tried to setup Zigbee secure networks over a web interface. How did our installers and service people do this? They brought along a bar-code scanner rather than type the code for the device from the label. Most customers don't have a bar code scanner. Sending people to every home does not scale.
There is no standard for setting up wireless devices. WPS is not supported on older routers, so it is hit and miss. Everything else is proprietary.
As a builder, to use USB and copy network settings (my Brother printer with Wifi worked like this, very nicely) now we have to add a Windows XP, 7, 8 installer, and one for MAC. (Linux is coming soon, and always will be.)
Wait, everyone has a smart phone now, right? (not really, but...) Which phone do I build an app for? iPhone (old an iOS7), which fragmented Android device, or maybe Windows phone. Do we need to ship a cable too? The costs added for these one time use setup applications is huge.
The cost and complexity of configuring the IoT device is killing consumer adoption. This keeps IoT a business or industrial application and until this is fixed IoT will not live up to the hype.
@Doug: Yes, it's like the early days of WiFi when finding a net SSID and logging on to it securely was an arcane, painful manual process for the user. Slooowly Msoft realized it needed to fix that in Windows to enable WiFi to take off.
Just one note to your post. Most people do have a bar code scanner. It is called a cell phone wth a camera and any one of a dozen or more apps that read bar codes. I use mine quite a bit.
I agree that IoT is not here yet in terms of ease of use, but complaining about it is not going to make it happen. As developers, WE need to make it easy to configure and use. It is going to happen, it is already happening. I have an app on my phone that lets me turn my home security system on and off from anywhere in the world. It was easy to install and it is easy to use.
I have begun to evaluate the IoT cloud platform from Ayla Networks (www.aylanetworks.com) and I really like what I see so far. The founders include the Amazon development team that developed the entire connectivity platform for the Kindle. They have a well thought out architecture and cohesive approach with the wireless chip/module/controller vendors. It looks like next gen platform solutions are hitting the market now to overcome the challenges that this author has well articulated.
You are right, but if the communication is confined to plain text and only one language it will make the communication and collaboration of the devices over IoT more simpler but the world never goes to be like that, as the demand comes from the application layer and the implementations goes from the below layer, that too is crowded with many languages and technologies, so ultimately this will be going to increase the connectivity issues, just if I say plain hard words.