Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / IoT

An Introduction to Developing on Intel® IoT Architecture

0.00/5 (No votes)
13 Nov 2015CPOL6 min read 8.8K  
In this short article we hope we have brought light to the IoT development process so that you can properly place your efforts.

This article is for our sponsors at CodeProject. These articles are intended to provide you with information on products and services that we consider useful and of value to developers

Get access to the new Intel® IoT Developer Kit, a complete hardware and software solution that allows developers to create exciting new solutions with the Intel® Galileo and Intel® Edison boards. Visit the Intel® Developer Zone for IoT.

Creating a new product can be an exciting process. Often, we get access to electronics and we immediately want to play and experiment without a proper background or even a plan. Trying to move forward from experimentation without guidance to creating a prototype is uneven and with difficulty. Developing in IoT can be a simple a process:

  1. Define Problem
  2. Identify/Design Solutions
  3. Build Proof of Concept
  4. Scaling up to Prototype
  5. Add Features/Evaluate
  6. Scaling to Production

Our first goal revolves around a problem. We need to identify a problem to solve. We need to as completely as possible understand that problem. Think of the number of projects we have been involved with where the problem was misidentified, and time, money and efforts were wasted. There are times where we believe we have identified a problem properly, but do not understand it, or did not pinpoint the issue correctly. It is also best to write out the problem in a statement, do not be economical in the number of words, be specific, and fully outline what you see to be the issue. Spending time on this step is quite important because future investment is key to the proper identification of what you wish to solve.

Once you have specified a problem, you need to identify potential solutions. This step really should be separate, and ideally the first step behind the science in your project. Yes, science. It is one thing to state a problem, and a potential solution, but far more goes into this process, science is needed and we will discuss that shortly. Step 2 involves defining numerous solutions. Every problem has many solutions, it is up to us to identify, preferably scientifically, a proper solution. If you have looked at solutions scientifically, you will realize there are constraints in place. Your solution design should specify constraints, statistics, operation parameters, and other key data points that allows one to properly evaluate the project.

Why would we bring a scientific approach into the development process? A key factor in development is determining whether a step was a success, and evaluating a process or product to determine if it meets the requirements that should be developed as part of the project. Sure, we can look at a glass of water and see that it is clear, or that it has particulates, but to what extent? For reasons such as this, we need to apply a scientific approach to our project. We may have identified a problem to solve, such as automate a garden so that it is watered regularly, and the problem that is solved is that our vegetables do not die. That sounds viable, but it is vague.

A scientific approach would start with a theory. If we supply water daily, will our vegetables stay alive? We can now build solutions that accomplish this task. We can measure how much water, frequency, and other factors that help us quantify the proof in our theory. This allows us to move to later steps since we can objectively identify one solution as better than another.

With a problem and a solution, along with a solid theory as the basis of the project, it is time to build a proof of concept (POC). The previous steps laid out several approaches that are possible. Using one or many Intel® IoT Commercial Developer kits you can now move forward with building your solutions out to a proof of concept. Once you have something functioning, you can also test within the parameters that were specified in step 2, or within your theory solution set. Ideally, your POC will provide the data necessary to evaluate the performance, and provide results in solving your problem. On this level, you are just trying to show that the solution is possible, and perhaps show that one solution is more viable than another as objectively as possible.

Now that you have identified a viable solution it is time to start scaling that solution into something that is more marketable, accurate, and full of features that add value. These next steps revolve around that scaling process, and developing a marketable product.

While your POC was running great on the Intel® IoT Commercial Developer kit, is that solution ready for market? Normally that answer is no. We need to look to heavy duty hardware, more accurate and robust sensors, and solutions that are better matched to the environment they will live and operate within. Many IoT solutions at this point begin scaling with an Intel® Commercial Gateway product. Industrial or Commercial quality sensors are available from many companies.

Scaling involves planning for the many environmental inputs and solving problems to produce a well-rounded product prototype that is as error free as possible and delivers a solution that meets the parameters within the scientific approach, and properly solves the problem that was identified earlier. In this 4th step, moving from the Intel® IoT Commercial Developer kit to a commercial gateway should be easy due to the simple code compatibility between the two platforms. Verifying sensor functionality and resolution is a consideration.

The scaling process does not occur overnight. The process takes weeks, months or longer to produce a marketable product. During this process we have established as a baseline that the design solves the problem within the parameters that were stated. In this 5th stage it is possible to contemplate adding features that improve the product and add value. Since you are effectively prototyping at this point and testing the product with alpha or beta testers, it is the perfect opportunity to listen to the market, or try ideas to improve functionality beyond the baseline. Additionally, discussions with manufacturers, suppliers, and assembly should begin to occur to research the push to production.

The last step is the final push to production. Significant testing should occur at this time. Working with a product focus group, verifying the target market, and stress testing the actual product are potential functions. You may look to order dozens, or hundreds of units if possible for distribution amongst potential testers. You should have a testing protocol, documentation, and means for feedback designed in advance. Doing so after the fact can bias the protocol, and your testing then amazingly proves as viable or passing.

In this short article we hope we have brought light to the IoT development process so that you can properly place your efforts. By having grounding yourself in solid development principles you can bring your ideas to market much more efficiently.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)