In the earlier articles, we have discussed design principles and communication technologies that are the foundation of an IoT project. Armed with these concepts, we are now ready to create an IoT project with thousands or even millions of devices. However, it is best practice to begin with a prototype before rolling out the complete IoT project. A prototype has several benefits which are listed below:
• A prototype will enable you to identify design challenges which can then be solved iteratively. This eliminates the need to change thousands of devices in a production environment. It also provides an opportunity to learn the features that will be implemented in the final project.
• A prototype enables software and firmware testing before final product implementation. This enables resolution of conflicts that may affect sensors such as microphone and Bluetooth
• Prototypes provide a demonstration platform that will be used to pitch to potential buyers, internal consumers and as a proof of expected functionality and performance. Thus it improves buy in from management, investors and other stakeholders
• A prototype provides an opportunity to assess expected user experience.
• A prototype is an excellent opportunity to test the design which is better than a virtual simulation
• A prototype promotes imagination and creativity
There are four different types of prototypes to test the different areas and they are highlighted below.
• Mechanical prototypes provide an opportunity to test the mechanical and electronic parts. They provide the opportunity to look at features such as product durability and size.
• Design prototypes provide an opportunity to look at elements such as visual and ergonomic aspects.
• Sales prototypes are useful for showing potential buyers the product design and functionality
• Production prototypes provide an opportunity for quality assessment, manufacturing testing and demonstrating product benefits
The effort needed to develop a prototype varies depending on the required functionality and specific challenges faced by the organization. The factors that can impact a prototype are listed below.
• In an environment with a high technological know-how there is a low priority for developing a demonstration prototype. This is especially the case when there is a deep understanding of connectivity and feature functionality
• In an environment where product manufacture is outsourced. fewer resources are spent on prototyping because prototyping happens during product development
• In an environment where there is strong experience one prototype is adequate but in an environment with low experience several prototypes may be needed
When developing an IoT prototype there are four concepts that are important to understand. A board is a very small computer that has software that controls sensor and board behavior depending on inputs and outputs. In technical jargon, the board is referred to as a micro controller unit (MCU). A cloud is a server that can be accessed remotely. An ecosystem is made up hardware and software components that work together. A rig is a combination of a board, sensors and power supply functioning as a single unit.
To support IoT projects, there are multiple board brands with varying features that have been developed. These boards can be used for professional development or hobby projects. This section will discuss available boards and their features. When choosing a board platform the factors you need to consider are listed below.
• The cost of the rig
• Processing power and connectivity options
• The size of the board has to be considered to ensure the needed sensors can be accommodated
• Availability of support and learning resources
• Power source
• Learning difficulty
Arduino develops a wide range of boards and they provide a comparison of board features here https://www.arduino.cc/en/Products/Compare. The processors are either Intel or Atmel and their CPU speeds vary from 8MHZ to 400MHZ. All the boards have analog inputs but some lack analog outputs. Most boards have digital input and outputs.
For prototyping purposes we will focus on two boards. The first board is Arduino Uno. The board is powered by an ATmega328P having 16 digital I/O and 6 analog inputs among other features which are listed here https://store.arduino.cc/arduino-uno-rev3. A distinguishing feature of this board is expansion shields that enable addition of features like Wi-Fi and Ethernet among others. This board has a free and paid IDE to support application development.
The second board is ARDUINO MKR1000 which was specifically designed for IoT projects and it has the advantages of simplicity and Wi-Fi support. The board has digital and analog pins and it can be powered externally using a Li-Po battery. It can also be powered via a USB. The board supports a 32 bit computing, secure communication and simple application development through an IDE.
The Beaglebone black board is another board suitable for prototyping because of its low cost. The board runs Linux and it has an ARM processor and 512MB of RAM. The board has HDMI, Ethernet and USB functionality. The full feature set is available here https://beagleboard.org/black
Raspberry PI has a wide range of boards. One board that is suitable for prototyping is RASPBERRY PI 2 MODEL B. The board can be considered a very small computer because it supports Linux, a keyboard and HDMI among other features. Raspberry PI 3 is an enhanced version that supports WLAN and Bluetooth. Other boards that can be used for prototyping are Intel Edison, Particle Photon and UDOO.
This article began by discussing the benefits of a prototype in an IoT project. The article proceeded to discuss the different types of prototypes and the factors that are likely to impact a prototype. The article also discussed different types of boards that can be used for prototyping.