IoT beyond the hobby
As part of the recent "maker" movement, lots of interest has been generated in the Internet of Things space in terms of connecting devices to the Internet for remote control, remote monitoring, and data collection. It's an exciting time -- inexpensive hardware and open source software allows for rapid ideation and the prototyping of new ideas.
The flood of hobbyists into this space has created some confusion between the "hobby" of the IoT and the "business" of the IoT. What do I mean? Well, consider the person with an idea and some time on their hands. In short order, it is possible for this person to buy an Arduino board and some other low cost electronics from a number of sources, assemble the kit, and acquire / write some rudimentary code to flash an LED from a smartphone.
Because this type of thing can be done in just a few hours, it's easy to assume that even more complex monitor and control systems targeted for commercial applications can be accomplished just as easily or with just a bit more effort.
However, the difficulty with this thinking is that it doesn’t reflect the reality of delivering a complete, quality product to the market.
Don’t get me wrong. I fully support the maker movement and encourage anyone and everyone to get involved to play, experiment, and learn. But I am seeing more and more instances of hobbyists believing that they have a "product" when they really just have a first generation concept prototype.
These days, creating a working prototype is frequently the easy part. Making something that can called a product is quite different. After the proof of concept, the real work starts and real engineering expertise must be applied to take the conceptual prototype and turn it into a product that can be sold to a market.
What do I mean? Well consider the list of typical product considerations that must be addressed during an IoT product development:
- Power -- does your design provide for clean, stable sources of power for the device, including portable applications or applications where the device will be deployed in remote areas?
- Mechanical design for the environment (temperature range, humidity, vibration, etc.) -- will the design hold up to the rigors of the environment in which it will be deployed? How will you test and qualify it?
- PC board layout / parts selection -- generally, electronic costs are plummeting. Does your design use the latest technology?
- Firmware design that is complete, tested, and validated -- are good design practices being used to design, develop, and deploy your code? Is it secure?
- Appropriate choices for wireless communication (WiFi, BLE, cellular, LoRa, etc.) -- a bad choice here could jeopardize the value expected from your IoT product
- Communication protocols -- have you evaluated TCP/IP, UDP. CoAP, and MQTT and selected the best based on your needs?
- Robust interfaces to the cloud -- some applications require that the data must get from the end point to the cloud no matter what -- have you planned for communication redundancy when your primary data communication path fails?
- Security -- is your system and your data secure from the point of collection to the point of storage in the cloud?
- "Real" smartphone apps that allow your device to be setup, configured, and monitored -- is your app tuned for the end user / application?
- Overall robust system testing / qualification -- after everything is done, how are you qualifying the end product?
- Agency qualification (FCC, UL, CE, etc.) -- and, no, using "FCC approved modules" does not mean that your design does not need to be FCC qualified
- And finally -- producing the design in the appropriate volumes cost effectively and with high quality
As you can see, designing and delivering a complete system that is ready to be sold to a customer is radically different than producing a single conceptual model of an idea.
Hacking (in the positive sense) is valuable and allows for concepts to be quickly developed for study. But it is important to understand the breadth and depth of what it actually takes to move that initial prototype through all of the stages necessary to have a product that will succeed in the market.