The Internet of Things is a hot topic in the IT industry at the moment with new projects being launched almost every single day. At a rapid pace, the market is being filled with connected devices that offer a new perspective on the use of the long-familiar items and allow the creation of revolutionary new solutions. However, only a small part of these IoT devices becomes popular and widely used. So, what is the secret of a successful IoT project? What should you take into account while still in the project’s planning phase to make sure your connected device becomes the next big thing in the market?
First of all, behind any successful IoT project, there is always a brilliant idea upheld by the market demand. Your product may be a truly ingenious invention but if people do not need it, the project is doomed to failure. Once you have a great idea, the next big step is to ensure its qualitative technical implementation. IoT projects are not limited to the development of connected devices but also include the creation of an entire IoT infrastructure.
Based on our experience, we came up with the six key components that any viable IoT infrastructure should contain: IoT Device, Mobile Application, Backend, eCommerce CMS, CRM, and Accounting Solution.
The hidden traps and pitfalls are inevitable when carrying out an IoT project. Working on the creation of our own IoT platform, we encountered different technical problems almost at every stage. In this article we are going to retell you about how we coped with these difficulties, being convinced that our experience will be of significant value for launching a truly successful IoT project.
1. IoT Device
A smart device or an IoT device is the key component of any IoT project. It is primarily used to detect events or changes in the surrounding environment and transmit the aggregated data for analysis. IoT devices vary a lot depending on their purpose. But irrespective of their type, to ensure the effective functioning of the entire IoT system, they should all comply with a number of established requirements.
The main objectives of IoT device development are:
- Low power consumption;
- Stable operation;
- Optimal use of communication technologies: BLE, Bluetooth, GPRS, 3G, LTE, Wi-Fi, NFC, RFID, etc.;
- High-quality components;
- Compact size;
- Optimal prime cost;
- Regulatory compliance.
In our platform, we laid the possibility of processing data received from various sensors embedded in IoT devices. Among them, one can find cameras, microphones, accelerometers, as well as sensors for tracking temperature, humidity, location, lighting, motion, and health indicators.
In cases where IoT devices send small amounts of data at a time, their designing is rather simple. Difficulties, however, may arise when there is a need to transmit large volumes of information or when there are certain regulations and security restrictions.
Our team faced these difficulties when working on a wearable device and a mobile app for one of our clients. The sensors, which we used in the project, such as cameras and microphones, were supposed to transmit large volumes of data on a regular basis. Initially, we considered using BLE as a data transmission channel. But since the speed provided by it was insufficient, we opted for Classic Bluetooth.
At that point of time, we encountered another problem. For a device to work in connection with an iPod, iPhone, or iPad, it has to undergo the MFi certification. This is a strict rule set by Apple, which examines products and even their packaging for compliance with statutory requirements. The efforts of both the manufacturer and mobile app developer are essential for the successful completion of the MFi licensing program. This is why we assisted our client with the collection of all the necessary documentation, helping in a short period of time to get the MFi member status and release the product.
2. Mobile App
Smartphones have become an integral part of our everyday life with their performance and capabilities coming close to those of PCs. By delegating some PC tasks to smartphones, we can significantly reduce the BOM cost of an IoT electronic device and simplify the interaction with users.
IoT Mobile Apps Are Used For:
- Receiving data from sensor devices and transmitting it to back-end;
- Processing, analyzing, and storing historical data;
- Displaying the real-time data from smart devices and user’s account information;
- Setting up and configuring connected devices.
Moreover, taking the advantage of all mobile platform features, we can add value to user experience and greatly extend the project’s functionality. Thanks to these capabilities, the mobile app development has become an essential component of the IoT ecosystem engineering.
To be considered in the process of mobile app development:
Many IoT projects require the transfer of large amounts of information from sensor devices in real time and in the course of a long period. In cases where such data is transmitted for analysis via smartphone, it leads to the rapid battery drain. This makes crucial the task of power usage optimization. The goal is to find a balance between the data transmission speed and the smartphone’s battery usage to enable quick but stable operation of an IoT system.
At the same time, it is important to maintain the stability and speed of information transfer from a device to a smartphone. You need to carefully design an algorithm to be employed for interaction between an app and a connected device. Among others, it has to spell out the IoT system’s responses to such irregularities as a loss of connection, data transfer errors, and a corrupted data detection.
The backend development is one of the most demanding and responsible phases of building an IoT system. The logic of data storage, processing, and presentation is formed at this stage. Once your connected devices have collected the information about the surrounding environment and have passed it via smartphone to the cloud, it has to be properly stored, analyzed, and visualized. That is the backend or server-side of your IoT solution that is responsible for performing the mentioned tasks. Making the collected data valuable for the end user, the backend constitutes the central link between all parts of the IoT system.
- Scalability and high performance;
- Integration with custom electronic accessories or mobile apps;
- Third-party systems integration;
- Advanced UI and data visualization;
- Triggering activities based on deep learning algorithms;
- High availability;
- DDoS/hackers attacks protection and data encryption.
The scalability of an IoT platform is one of the key challenges faced during its development. It is highly important to ensure the sustainable operation of the system. If the number of users increases, new servers have to automatically get involved in the processing of user’s requests. At the same time, when the load decreases, idle servers have to disconnect from the process to avoid wasting resources. To solve the scalability problem and ensure the appropriate distribution of the load on the servers, we used RightScale and AWS Load Balancer.
The choice of technologies is a question that has to be approached carefully in the process of backend development.
When creating our IoT Platform, we estimated the benefits and capabilities of both Open Source and proprietary solutions. In the end, the preference was given predominantly to Open Source technologies such as Linux, Node.js, MongoDB. There were several decisive factors behind our choice, including high reliability and security of Open Source solutions and their relatively low cost in comparison to vendor exclusive technologies.
4. eСommerce Solution
To allow users not only to learn about your project but also to buy devices and subscribe to services, you need to have a convenient and functional website. The choice for a particular eCommerce solution should be based on the objectives of your IoT project and the technical qualifications of your developers.
Our team has been previously involved in many eCommerce projects. For most of them, the OpenCart CMS happened to be the best choice. It is a perfect solution for small budgets and tight deadlines, as there is a great number of ready-made templates and integration modules in free access. At the same time, this eCommerce CMS can be easily scaled along with the growing number of customers, thus enabling the creation of a flexible and functional IoT system.
An additional advantage of OpenCart is that it can be easily integrated with various credit card processing and payment services. To fully meet the needs of our client and enable the execution of eCommerce transactions, we decided to use Vantiv. As there was no integration module for this specific payment system, we developed one by ourselves.
From our own experience, we learnt that the integration of OpenCart with billing services is a relatively simple task that can be carried out in short terms.
Nevertheless, there are some nuances of working with OpenCart: from time to time bugs and critical vulnerabilities can be found in the CMS. In the newer versions of the platform these problems are usually fixed, but an automatic upgrade may lead to the loss of custom changes. This is true for almost all ready-made solutions and has to be taken into account already at the project’s planning stage. When it comes to OpenCart, instead of directly modifying the core files, use a tool like vQmod. It will help you to avoid problems with the system and minimize the costs of its upgrade.
The implementation of a CRM solution is the next important step in designing an IoT platform. The choice for a particular CRM should be based on your company’s specific business processes, as well as the size of client base and the preferred type of interaction with customers.
For our IoT platform, we used bpm’online CRM. Its open configuration and extensive API enable the smooth integration with other components of an IoT system and the accurate synchronization of data among them. The bpm’online solution also allows to conveniently align business processes and omnichannel communications, including the integrated telephony. Easy to scale and configure, this CRM is an indispensable tool for building a reliable and powerful IoT platform.
Regardless of your monetization strategy, you will need an accounting solution. At the initial stage of your business development, when the turnover is still relatively small, it is possible to use a third-party accounting software. But over time the number of users will grow and the export of data into your accounting system will turn into tedious work taking up too much time.
The integration of an accounting solution with an IoT platform can easily solve this issue. It significantly simplifies the bookkeeping, as the accounting information is automatically uploaded to the system when a person makes a purchase or subscribes to services. Working on this part of the project, we came to a conclusion that the most convenient way is to use a ready-made accounting solution. We opted for the QuickBooks accounting software package.
IoT Platforms For True Business Agility
Counseling our clients, we often have to answer the question of what will help them to rapidly develop and deploy smart devices and software solutions for IoT. Based on our experience, we can confidently answer that the use of a multi-component IoT platform significantly accelerates the launch of a project and can be the key to its success. It will serve as your project’s basis, linking together all devices and systems and therefore enabling the required IoT features and functions.
Building our own IoT platform, we had to overcome numerous technical challenges. In the end, however, we produced a reliable and versatile solution, that is now widely used for constructing Personal Security, Healthcare, Home, and Enterprise IoT systems. Highly agile and scalable, it allows our clients to implement splendid projects, maintaining a balance between time-to-market, functionality, and price.