Building complete and functional IoT projects can be a puzzle full of surprises if you are not aware of all the building pieces that must be taken into account. The IoT market offers a wide range of technologies, products and applications. All these options are confusing when you face the design and development of a specific IoT project with specific needs. Fortunately, all IoT projects share the same building blocks from an architectural point of view. If you have a clear understanding of these building blocks, it will be easier for you to design a successful IoT system.
For this reason, Javier Muñoz Ferrara, software developer at IoTsens, explains in this article all these basic components to have a clear vision when designing a successful IoT system.
Sensors and Devices
Devices and sensors are the “thing” part of your IoT projects. These and other devices interact with the physical environment. It is not only important that they accurately read the phenomenon your application needs (air temperature, power consumption, water flow, traffic density, etc.), but also, they have to be integrated with the overall system architecture too. When selecting the devices, you must check that they support the necessary networking protocols and that your system platform can decode the message formats they send.
Device configuration is another important feature. Some devices provide configuration programs while others require internal reprogramming to change their behaviour. Finally, you must evaluate the power source the use (batteries, solar panels, AC, etc.) since it has a strong impact in the system maintenance.
Although the “i” in IoT stands for internet, you have different kinds of networks available for communications among devices and with the platform. Choosing the right networking technology depends on the characteristics and requirements of the project. It is common to use more than one technology in an IoT project. The main factors to take into account when choosing a networking technology for your IoT projects are:
Devices spread: If devices are located in the same area like a building, an industrial plant or even a neighbourhood, short-range technologies like Wi-Fi, ZigBee would be a good choice. Otherwise, If devices are widespread in a city or country, long-range technologies like LoRa or Sigfox can be the right choice. An example of LoraWan communication in cities is the deployment of 20,000 smart water meters in the city of Castellón by IoTsens.
Required data rates: Some networking protocols are not suitable depending on the amount of data that the devices send. For instance, Sigfox and LoRa do not provide enough bandwidth when a sensor must send the temperature of a room or the state of a parking lot every minute.
Network coverage: You can deploy your own network for the LoRa project including the use of third-party LoRa networks (TTN) or use an available network provided by third parties (2G, Sigfox, NB-IoT, etc.).
The software platform of your IoT projects will be in charge of managing the devices (onboarding process, monitoring, etc.) and receiving and processing the messages. It also must provide APIs for reading the gathered data. Your IoT software platform must be flexible enough to support different communication protocols (MQTT, REST, XMPP, WebSockets, etc.). Once the data is received, the platform must provide capabilities to understand both standard message formats, like MBus as well as custom formats from the devices.
Platforms are usually deployed in the cloud, but you should check if they can be deployed on-premises in case the project is big enough and investing in computing hardware is an option. In addition to basic functionalities, some platforms provide other interesting features like data mining, multitenancy and deriving data as for example IoTsens etc.
In the case of the IoTsens platform, it has been designed to be open so that it can be easily integrated with third-party systems and external developers can extend and make use of the platform’s functionalities.
All IoT projects are carried out for a purpose. Maybe the goal is receiving an alarm when a laboratory room reaches a certain temperature or optimizing the water supply of a city. In other cases, IoT projects are used for reducing the power consumption of a building or predicting the maintenance of an industrial engine. IoT applications are just software systems which use the data that is received by the devices and the functionality that they provide. Depending on the level of customization, three categories can be defined:
- IoT vertical applications, which provide out-of-the-box functionalities for a specific application domain like smart waste management, smart building monitoring, smart water metering, smart irrigation, etc.
- Toolboxes and frameworksfor building your own dashboards, reports, alarms, graphics, etc. These can be independent products which integrate with external data sources or they can be provided as a part of the IoT software platform.
- Custom software applicationswhich are developed from the ground up using standard software development technologies. These applications will use the IoT software platform APIs as the foundation for building their functionality.
End clients looking for a solution to their fit needs, engineering firms designing IoT projects and technology providers in the IoT ecosystem must know these basic building blocks well. At the end of the day, all projects will need them. In some case it can be tempting to use closed solutions which provide all these blocks using private technologies. Usually such decisions will compromise the evolution and maintenance of the project.
For all of this, it is easy to realize that the ideal situation is to work with providers that can supply all the building blocks using open and standard technologies. On the contrary, you will have to expend the necessary time to carefully build the technological puzzle for your IoT projects. In any case, having these basic visions of any IoT project will help you to build or choose the system you need.