The figure of 50 billion internet connected IoT devices expected by 2020 has been floating around in the industry for a while now. I think that estimate originally came from Cisco, and it has been quoted countless times since.
Today I read that McKinsey reports they expect one trillion internet connected IoT devices by 2025. If their projection turns true, that is staggering. But what obstacles are there for the exploding IoT industry, and what tools to use for development of IoT devices?
The most obvious one is standardization of communication protocols, for example MQTT and CoAP. Both are internet protocols better suited for contrained environments compared to HTTP. To develop IoT products, there must be standards to follow that ensures interoperability and connectability across different products and vendors.
This then naturally leads to the discussion of what vendor’s protocol stack to use, and that likely drag in the sometimes religious discussion of what RTOS is best or most suited for the project at hand. I think an overlooked question here is the one of security. Knowing the IoT device you talk to is the one you think it is, will likely be a major security concern in an IoT connected world.
In addition to internet protocols with its associated stacks and operating systems, as well as security and data integrity solutions, development tools are needed too. Popular development tools (such as Atollic TrueSTUDIO) need to improve with IoT specific features, for example by adding capabilities for debugging of IoT communication protocols or security solutions.
Most likely, the world will never be like before with billions of IoT internet connected devices everywhere. Our lives will be more comfortable and convenient. But engineers will continue to struggle with development times and limited resources, and the potential risks with poor security will be exploding.
But one thing is for sure - at least for the time being: Most IoT products seem to standardize on the ARM Cortex microprocessor architecture. If you are interested in reading more in development tools for ARM-based systems, you can read this whitepaper: