📜 ⬆️ ⬇️

IoT-project for smart home: the path from idea to production

Today we will talk about how a modern monitoring system was created for the smart home, which controls the entrance doors and garage doors. This system is an example of how an idea from the world of the Internet of things turns into a working prototype, which, in turn, becomes a full-fledged product, suitable for mass production and use in real life. Moreover, due to the use of convenient and affordable means of creating working IoT-layouts, all this happens very quickly. Also here we will share the step by step methodology that is applicable to the work on any IoT solutions.



In our case, the Intel IoT Development Kit and the Grove IoT Commercial Developer Kit are used to create the conceptual model. After the model showed that the project meets expectations, the finished product is built using technologies such as Intel IoT Gateway, Intel IoT Gateway Software Suite, Intel XDK IoT Edition, IBM Bluemix, and mass-produced components. If you briefly describe our project, it turns out that the sensor system collects information about the entrance and garage doors, the data is transmitted to the gateway, and from there to the cloud for storage and analysis. In addition, the project has implemented several applications, the capabilities of which are based on cloud data. In particular, it is an administration system and a mobile application for end users.

â–ŤIoT in the smart home


Ideally, the Internet of things is an environment in which practically everything is connected to the Network that may be of even the slightest interest for someone who uses “things”. This interest can be expressed in the possibility of the “thing” to control and recognize its condition. Moreover, this can be done in any place and at any time. A special position in the concept of IoT occupy our homes. This is not surprising. Home is the center of a person’s life, and it’s quite natural that he needs a constant feeling of confidence that everything is fine at home. Modern technologies play a very important role in maintaining such confidence; earlier, before IoT, one could only dream of such.
')
For example, sometimes an obsessive thought is to everyone, from which it is almost impossible to get rid of if it has already arisen: “Did I lock the door?”. The most unpleasant thing is that usually this thought comes when it is impossible to find out if the door is locked. How, by the way, would it be at such a moment to find the “Check door” badge on the smartphone screen ... And this is just one example.

Many of us are quite ready to buy and install a system at home, through which it would be as easy to find out if the door is locked, as checking email.

Although many smart home solutions are available on the market, this area is just beginning to grow. As a result, for example, insufficient compatibility of products and components from different manufacturers can be observed. Intel found that one of the criteria for success in building smart home solutions is the use of standardized open platforms. This approach makes it easy to create intelligent devices connected to the cloud, which can be used anywhere in the home to organize monitoring and control of various objects. Among other things, similar products and services have significant commercial potential.

â–ŤAbout the approach to creating a project


Intel has organized a study, which we now tell, in order to identify the features of the development of systems for a smart home. In many ways, the ideological inspirer of this project was the existing solution for the smart home from Yoga Systems . In the material that is available by reference, you can find a story about the progress of the project. It begins with a general description of a structured methodology divided into several phases. This is followed by a detailed description of the work performed at each stage.

If you feel that this technique is useful to you, you can use our story to follow every step of the Intel development team from the idea to the finished IoT project for a smart home. And, perhaps more importantly, all this can be generalized and applied the same development methodology to other projects. Intel offers everyone to use the work methodology described here for implementing their own IoT projects.

It must be said that, although here we are concerned with many technical features, the main purpose of this material is to show, at a sufficiently high level, the methodology and development process. If you need more technical details, here you can find a step by step guide to creating a prototype system for a smart home, which we will talk about. In addition, here is the repository on GitHub, where you can look at the code and documentation.

â–ŤMethodology


By their nature, development for IoT is endless innovations and a mass of completely different projects that add intelligence to an incredible amount of “things”: from very simple ones to complex systems; from the usual to everyone, to completely exotic. But, despite this diversity, each project, one way or another, is created taking into account the experience gained by the IoT industry. Experience and practice allow us to identify common elements in the creation of different IoT projects.

In order to take advantage of these common features of such projects and increase the chances of success in creating new ones, Intel has developed a structural approach to the development of IoT solutions. This approach is a work model consisting of six phases. It allows the project to go all the way from the idea to the finished product, suitable for commercial use. The model proposed here is conceived so that it can be easily adapted to the needs of any IoT project.

â–ŤThe initial phase (1-3)


The first three phases of the proposed methodology are studies. They focus on the formation of ideas and the assessment of the possibilities of the project to solve the task assigned to it. By and large, all this is preparation for the creation of a successful commercial product. In this regard, at these stages of work the main role is played by brainstorming, testing the efficiency of the project concept. To engage in the development, following some verified solutions and exact plans, there is no question.

Rapid prototyping at this stage is facilitated by the Grove IoT Commercial Developer Kit. This kit includes the Intel NUC computer, Intel IoT Gateway Software Suite and Grove Starter Kit Plus (manufactured by Seed). In addition, the Arduino 101 board is involved in our project. This board, especially outside the United States, is often referred to as “Genuino 101”, we will refer to it as “Arduino 101”.

Phase number 1


The first step in creating an IoT product is to identify an existing problem that this product solves, or a potential market opportunity, an empty niche that can be filled. The documentation for this stage should describe the problem, the value of the solution (both for the end user and for the organizations that will be involved in production and implementation), as well as a description of the limitations of the concept. Also, the documentation should contain information about the estimated difficulties and limitations of the project implementation process.

Phase 2


Here you need to design a model to test the performance of the concept, which will show whether the product is able to solve its task. The initial project should contain a description of a practical approach to creating a product, including hardware, software and network elements. In this case, it is necessary to take into account all possible difficulties and limitations in the implementation of the project, identified at the first stage of work. At the same time, since there is no physical implementation of the system yet, it must be borne in mind that part of the bottlenecks of the solution can only be seen on the working prototype. At the same stage it is necessary to pay attention to such factors as the cost and the level of security of the solution.

Phase 3


At this stage, create and refine the layout to test the performance of the idea. This physical prototype is based on decisions made in the second stage. If necessary, at this stage in the project make changes that are also documented. Changes based on the shortcomings and additional features identified as a result of testing should also be documented.

â–Ť Finishing Phases (4 - 6)


Through the last three phases included in this methodology, they pass only after it was decided that the product should be brought to the production stage. Thus, increasing stability, safety and manageability of the product, preparing for mass production, monetizing the project to realize its commercial potential come to the fore.

At the final stages of work, they switch to the use of serial components, for example, sensors. The same applies to parts of the system, such as gateways to the Internet of things. Here is the final revision of the documentation, it is fixed the final set of product characteristics.

Phase 4


At this stage, create a stable beta version. After it was proved that the project is able to effectively solve the task assigned to it, it was decided that it would go into mass production, create a project version focused on the finished product, and designed to finalize the design. In the manufacture of this version will require a significant investment of resources, which, among other things, include mass-produced sensors and other components, as well as IoT-gateways.

Phase number 5


It assesses the capabilities of the product and expands its functionality. The finished beta version is tested for correct operation in accordance with the specified parameters. During testing, the development team also reveals additional features and product features that are being introduced into it in order to make it more reliable and increase its value for end users.

Phase number 6


In the final, the project is finally refined and transferred to the production stage. As soon as it is decided that the product has all the necessary capabilities, the team improves it, expanding its management capabilities, safety indicators, optimizing the model for marketing and production efficiency reasons. Also at this stage, the work on the user interface is completed. The tasks solved in this phase include the final planning of ways to promote and sell the product before proceeding to full-scale production.

Consider the application of the proposed model of work on IoT projects on the example of our system.

An example of the application of the methodology for developing IoT projects


â–Ť Phase 1: Determination of project potential


The core team, which started the project at Intel, determined that the smart home is the right basis for a possible IoT solution that can demonstrate the capabilities of the Internet of things and illustrate the use of the project methodology described above. This group has identified a set of skills for future members of the expanded group who will most likely be needed during development. These skills include project management, programming, working with cloud platforms, and documentation. Based on the list of required skills, the core group formed a complete project team. It mainly consisted of Intel employees, but some other specialists were included in it. This is done in order to supplement the team's expert potential.

The first task of the full project team was to assess the potential of the project, as the basis of the original prototype. The main potential feature defined in this case was the integration of software control and notification system associated with certain functions of the smart home system. Namely, it was decided to stay at the following sites:


Sensors that determine whether the front door is locked or not, whether someone rings the doorbell, and whether the garage door is open or closed, give us the raw data. The data is, on the one hand, very simple, but on the other - important, since it is on them that the work of the whole system is based, it is they that allow to solve the main task of the project. The duality between the simplicity of this primary information and its importance is the basis of the commercial value of the system being developed.

Sensors collect and send information to the cloud in order to provide storage and analysis of information, as well as remote secure access to the system. As a result, the user can view notifications about events and the status of various elements of the smart home listed above.

In addition, the team found opportunities to further expand the solution, which were identified as beyond the scope of the project. They included remote control proposals for both home and commercial users, including integration into existing security systems.

Phase 2: Designing a model for testing the concept


The team decided that the project should be based on easily accessible components and technologies in order for it, as a practical example, to be as useful as possible to the developer community. As a result, the following were chosen: Grove IoT Commercial Developer Kit, Intel IoT Developer Kit, Intel IoT Gateway Software Suite . In addition, it was decided to use software technologies that are widespread and at the same time either free of charge or inexpensive, using free open-source software (FOSS), wherever practicable.

In order to accelerate the passage of the project prototype stage and reduce the complexity of the work, the part of the system, which should be located in the house, decided to build in the form of a bench model. It was supposed to include a computing platform and sensors without including a realistic model of a smart home in the prototype, although in the next stages of the project such a model will be created and tested.

Choice of hardware for the prototype


A small form factor computer Intel NUC Kit DE3815TYKHE was selected for use in the prototype. This system is characterized by reliability and high performance. In addition, the team found that, being one of the most recent hardware platforms from Intel, designed for IoT, this computer is suitable not only for this version of the project, but also for possible future implementations. Intel NUC is based on the Intel Atom E3815 processor with a passive cooling system, equipped with 4 GB of internal flash memory (if necessary, you can connect SATA drives to it) as well as various I / O ports. Intel NUC is a computer that, being a very compact device that supports the expansion of capabilities, provides functionality at the level of a traditional desktop PC.


Computer Intel NUC Kit DE3815TYKHE and Arduino 101 board

In order to simplify the process of interaction with sensors, the team took advantage of the Arduino ecosystem. In particular, it was decided to use the Arduino 101 platform. Thanks to it, the NUC can interact with expansion cards for the Arduino, in addition, this choice corresponds to the design spirit, aimed at maximizing the use of open technologies. The current version of the project does not use Bluetooth, but the Arduino 101 is equipped with the appropriate module, so it was noted that this feature can be used in future versions of the project.

Here are the characteristics of the computer and the board used in building the prototype:

Characteristic
Intel NUC Kit DE3815TYKHE
Arduino 101
Processor / microcontroller
Intel Atom E3815 processor (512 KB cache, 1.46 GHz)
Intel Curie Compute Module, 32 MHz
Memory
8 GB DDR3L-1066 SODIMM (maximum)
196 KB of flash memory
24 Kb SRAM
Network Capabilities / I / O Ports
10/100/1000 Mbps integrated network adapter
14 digital and 6 analog outputs
Dimensions
190 mm x 116 mm x 40 mm
68.6 mm x 53.4 mm
Specification
Full specification
Full specification

As for sensors and other components needed to create a prototype, they are taken from the Grove Starter Kit for Arduino (manufactured by Seed Studio), which is based on the Grove Starter Kit Plus, used in Grove IoT Commercial Developer Kit.

This kit can be purchased at an affordable price, and since it contains a pre-selected set of components, its use reduces the effort required to select and purchase materials for IoT prototypes. The choice of sensors and other components for the prototype (more on this below) is dictated by the need to collect the following key data, vital for the operation of the project.


Prototype Software Specification


The team chose Yocto Linux as the operating systems for the computing devices used in the prototype, as well as the IoT Gateway Software Suite. Yocto Linux is in line with the project’s goals of using free open source software, it offers a high level of flexibility, as well as reliable control of the source code and the ability to create custom builds of embedded operating systems that are tied to the needs of a specific project. Intel IoT Gateway Software Suite, on the other hand, provides a ready-made implementation of the OS, without the need for additional configuration. In addition, this system provides Node-RED functionality for development needs. Such a combination of factors was recognized by the team as extremely useful, with the result that the Intel IoT Gateway Software Suite was chosen as the OS for the prototype gateway.

As part of the project, it was decided to develop the following applications:


â–Ť Phase number 3. Prototype creation and development


The conceptual prototype was created using the Intel NUC Kit DE3815TYKHE computer, the Arduino 101 board, and the Grove Starter Kit Plus IoT Edition component kit.


Prototype

The prototype was built as a bench model, not connected to mechanical objects, such as doors. The project team decided that it was not necessary at this stage of the work. Instead, for example, the steering angle sensor was used to simulate locking and unlocking the door, the stepping motor symbolized the garage door, and the usual button played the role of the doorbell, which will be present in the complete model of the smart home.

Here is a list of materials used at this stage of work.

Main system:


Components from the Grove Starter Kit Plus IoT Edition.


In addition, the project team concluded that the system in the model of a smart home should function even if the cloud part is not available or the connection to the Internet is unreliable.

The control application used in the prototype was written in JavaScript. It connects to IBM Bluemix, communicates with the cloud. Applications, administrative and mobile, also exchange data with the cloud to support system functions. These include opening and closing the garage door, locking and unlocking the front door, as well as sending notifications about events, such as the doorbell ringing. The mobile application is also written in JS, it is designed for web browsers. This is done in order to avoid the need to transfer the application to multiple mobile platforms.

The development environment used to create the software for this solution is the Intel XDK IoT Edition, which is included with the Grove IoT Commercial Developer Kit. You can also download it for free here . XDK allows developers to create, execute and debug Node.js applications directly on platforms based on the Intel architecture, including the Intel NUC Kit DE3815TYKHE. This environment is supported by Node-RED.

In order to work with I / O ports on the NUC, you must use the C / C ++ library MRAA, which provides the means to interact with JavaScript and Python to work with other platforms. It provides a structured and well thought-out API where the names and numbering of the ports correspond to the hardware. In addition, when developing software for this solution, the Firmata protocol was used, which allows organizing software interaction with the Arduino development environment using the capabilities of the Arduino hardware abstraction. The Libmraa library allows for improved programmatic control over I / O facilities at the NUC, simplifying the process of collecting sensor data. UPM provides special function calls that are used to access sensors.

The prototype of the smart home includes an activation button for a garage door, a button and a buzzer for a doorbell, a touch sensor that can detect whether the front door is open or closed, a steering angle sensor to simulate unlocking and locking the front door, and an LCD display with color light, which displays, closed or open garage and entrance doors. In addition, when the doorbell rings, a message is displayed. The prototype includes LEDs that are used to display information whether the garage door is closed or open.

A prototype application running in Node.js collects sensor data and displays information on an LCD display. If the message that the door is open (Door Open) is displayed on the display, the green LED lights up. If the message that the door is closed (Door Close) is displayed, the red LED lights up. In addition, the application can control the stepper motor for opening and closing the garage door, although, for the sake of simplicity, this function is not implemented in the prototype.

â–Ť Phase number 4. Creating a stable beta version


As soon as the prototype, allowing to prove the efficiency of the project concept, was completed, the team was convinced that its functionality was sufficient to implement the finished product on its basis. In the project, at this phase of its development, the following main parts can be distinguished:


Beta Component Selection


The first step at this stage is the selection of components that will be used in the finished product.

Preparing a smart home model


Since the team focused on the prototype creation option as a model, it was decided to build a large-scale model of the house and mount everything necessary on it. To create the model, the team attracted a third-party specialist with relevant experience. Here is the initial specification of the smart home model and its outline.


Sketch of a smart home model

The model of the house is made in 1/12 scale of plywood, reinforced with metal inserts. Model size is about one meter in each dimension. The roof and doors are made removable - so that during the tests it was convenient to work with devices mounted inside.

Here are the main components of the model that interest us:


At this stage other important decisions were made. They included the choice of serially produced sensors, a gateway based on the Intel architecture, a cloud service for storing and analyzing data and software technologies for a client application.

Selection of sensors and other components


Here is a list of serially produced sensors and related components that have replaced the relevant parts of the system previously taken from the Grove Starter Kit.


Gateway selection


Here are some of the factors in choosing a gateway that you plan to use in the finished product:


Dell iSeries Wyse 3290 IoT Gateway. Intel Celeron N2807 1 - 2.16 . 4 DDR3 (1600 ). (10/100/1000 BASE-T), Wi-Fi- (802.11a/b/g/n/ac) Bluetooth 4.0 Low Energy. (69 x 197.5 x 117 ) (2.34 ).

, , , . , , , – .

Intel IoT Gateway Software Suite ( ). , – . , Intel NUC, Dell iSeries Wyse, , , . , , , Intel XDK , , , .

. «» «» , « » — , .

Sensor
Is open
Is closed

Description

one
0



one
0



one
0



0
one


, ,
one
0

,
, ,
one
0

,


.




â–Ť â„–5.


, . , .


,


, . – , – .



, ( ), HTML5 JavaScript, Intel XDK IoT Edition. , , , . , :



, – , , , , . , , , .


, :



. – NFC-, , . , .

â–Ť 6.


, , . , , .




, . , , , , , , . , .


, , , . :


, , , . , : « . ». , , .


, , . . , , , .




:

, , – . , , , , - , , , .

, , . , , , . , .

â–Ť


, , . , . , , . , , , , , . .

, IoT- .

Source: https://habr.com/ru/post/396737/


All Articles