<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>SEBD</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Lightweight Extensible Frameworks for IoT Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>(Discussion Paper)</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Giansalvatore Mecca</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michele Santomauro</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Donatello Santoro</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Enzo Veltri</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Università degli Studi della Basilicata (UNIBAS)</institution>
          ,
          <addr-line>Potenza</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2023</year>
      </pub-date>
      <volume>31</volume>
      <fpage>02</fpage>
      <lpage>05</lpage>
      <abstract>
        <p>The current trend of automation and data exchange in manufacturing technologies is often called Industry 4.0 or the Fourth Industrial Revolution. This new era of industrialization is characterized by integrating cyber-physical systems, the Internet of Things (IoT), artificial intelligence (AI), and big data analytics to gain a competitive advantage. In this aspect, the data generated by IoT devices and other sensors has a huge impact on businesses. These insights can be used to optimize production processes, reduce downtime, and improve product quality. Furthermore, data analytics can help companies to identify new market opportunities, develop new products, and improve customer experiences. Nevertheless, even with the extensive accessibility of tools and technology, creating intelligent applications within the industrial framework still poses a challenging and costly undertaking. This paper proposes a lightweight framework that can facilitate the adoption of IoT and IIoT solutions in industry and domotics. The framework is designed to be extensible, scalable and declarative, thus allowing for a wide range of configurations with minimal user efort. We successfully adopted the system in real-life use cases to prove its applicability. We consider this a significant contribution because it paves the way for more widespread adoption of IIoT-enabling technologies in the industry.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;embedded-system control</kwd>
        <kwd>Internet of Things</kwd>
        <kwd>open-source software</kwd>
        <kwd>smart manufacturing</kwd>
        <kwd>Big Data</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>
        Industry 4.0 brings smart factories at the center of the technology spectrum [
        <xref ref-type="bibr" rid="ref1 ref2">1, 2</xref>
        ]. Usually, a
smart factory integrates diferent systems to enable machine–machine and human–machine
cooperation. A key enabling technology in this framework is the so-called Internet of Things
(IoT) or, even better, its industrial counterpart, called Industry Internet of things (IIoT) [
        <xref ref-type="bibr" rid="ref3 ref4">3, 4</xref>
        ]. IoT
and IIoT share two fundamental aspects: ) on the one side, they share the common feature
of potentially generating big data, i.e., very large quantities of data that need to be collected,
processed and analyzed often in near real-time, thus imposing strict requirements in terms of
timing, frequency of operations and throughput. In fact, these architectures are considered
paradigmatic sources of Big Data [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Therefore, it is crucial that frameworks conceived for
these tasks are able to scale to such large volumes of data. ) On the other side, we notice that
in both the larger context of IoT applications and in the more specific one of industrial IoT there
is a strong need for generic tools that allow for quick integration of existing machinery.
      </p>
      <p>This is true in domotics, where appliances are often not IoT-enabled and, therefore, require
tools that can bridge the gap toward the goal of integration and remote control. However, it is
especially true in industry. In fact, industrial machinery is not always equipped with sensors
and/or actuators. Even when some sensors/actuators are available, they may not exhaust the
needs of all possible IIoT scenarios. Sensors tend to be expensive and often dificult to configure
when available. Finally, industrial sensors are usually not cloud-enabled and fail to meet the
Big Data requirements discussed above.</p>
      <p>
        Consequently, IIoT applications tend to be complex monolithic projects with high investments
and increased design time. To facilitate the adoption of these technologies, we introduce IoT
Helper [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], an easy-to-go framework that allows for quick prototyping in terms of
IoT/IIoTenabled applications. IoT Helper enables monitoring and controlling embedded devices. The
framework is based on a generic architecture that can be used with many classes of sensors and
actuators. Thus, the framework can be efectively used to facilitate the development of intelligent
applications in domotics and industry. It requires minimum configuration and virtually no
application logic to remotely access the data and control devices. So, application developers
can focus on developing higher-level applications that use data collected by IoT Helper to
gain insights. IoT Helper is cloud-enabled by default, using the publish-and-subscribe protocol
for decoupling the production of data from its consumption and may leverage public-cloud
platforms to scale to very large volumes of data. At the same time, coherently with its agile
inspiration, it also allows for on-premise deployments that can be preferred in some scenarios
due to data protection and privacy concerns.
      </p>
      <p>In the paper we present two concrete application scenarios: The first one is a typical domotics
application for controlling the fan of a fireplace extractor chimney. The second one is a complex
industrial application with respect to monitoring welding pliers of a robot arm.</p>
    </sec>
    <sec id="sec-2">
      <title>2. System Architecture</title>
      <p>This section introduces the IoT Helper architecture for monitoring and controlling embedded
devices. The flexibility of the approach allows for a very straightforward integration of such
devices into cloud-computing architectures easily, but it can also be used in fog-computing or
even edge-computing solutions.</p>
      <p>
        Figure 1 shows the core of our proposed architecture. It is composed of the following: ) An
Embedded System [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] that acts as the main controller of sensors and actuators deployed in the
solution; ) a Configuration Module that allows users to configure and customize the various
sensors and actuators; )a Generic Firmware to manage operations, also called commands on
connected devices; and ) a Message Broker module that decouples the embedded system from
external processors in order to scale up to large volume of data.
      </p>
      <p>
        At the core of the Embedded System is the Arduino module [
        <xref ref-type="bibr" rid="ref10 ref8 ref9">8, 9, 10</xref>
        ]. Sensors or actuators
can be plugged into its shield. Moreover, it is possible to re-engineer the shield to customize the
hardware to the specific scenario with industrial components.
      </p>
      <p>To achieve high extensibility and improve usability, the Embedded System needs to be easily</p>
      <sec id="sec-2-1">
        <title>Publish</title>
        <p>Embedded System
Sensors and Actuators
Message
Broker
messagesSubscribe
Generic
Firmware
Publish
messages</p>
      </sec>
      <sec id="sec-2-2">
        <title>Subscribe</title>
        <p>Configuration</p>
        <p>Module
Communication</p>
        <p>Library
Quality Control</p>
        <p>System
Communication</p>
        <p>Library
Predictive Maintenance</p>
        <p>System
configurable. We model sensors as generic inputs and actuators as generic outputs. The list of
the sensors and actuators defines the interface of the embedded system, which can be observed
as a black box. An external system that wants to communicate with the Embedded System needs
to know only its interface without knowing the actual implementation, which might change
over time. This approach allows for the creation of loosely coupled systems.</p>
        <p>For example, suppose that we want to collect data from an analog temperature sensor and to
control the electrical relay of an air conditioner. The interface of the Embedded System is an
analog input temp, and a digital output ac. An external system, such as a mobile application that
wants to read the sensor and control the actuator, will send a generic message "read input temp"
or "change the output of ac to 1" without knowing any details about the physical connections on
the embedded system or the actual circuitry of the sensors. As a consequence, we can change
how the embedded system physically controls air conditioning from an electrical relay to an
infrared actuator, keeping the interface unchanged without changing the user application.</p>
        <p>The Configuration Module describes the inputs and the outputs managed by the embedded
system. Each input is represented by the following: (i) the type, i.e., if it is analog or digital;
(ii) a unique ID used in the firmware for controlling it; (iii) a description that is useful for
documentation and human interpretation; and (iv) the pin(s) where it is connected to the
embedded system. Each output is represented in the same manner as the input; however, in
addition, since it represents an actuator, we also store information about the allowed values.</p>
        <p>Table 1 contains a sample configuration. In this example, we have one temperature sensor
with the name "1". In addition, we have two actuators: a digital LED 1 that can be switched
on and of (values 0 or 1); and an analog fan controller 2 that accepts values from 0 (of) to 6
(maximum speed).</p>
        <p>The Configuration Module also allows for specifying network parameters in order to connect
the Embedded System, typically to a WiFi network. All of the configurations are stored on file
on an external SD card.</p>
        <p>The basic operations executed on the inputs and output are as follows: (a) read an input value
as the state of a sensor or actuator and (b) change the value of an output, i.e., execute an action
on an actuator. Generic Firmware executes such operations with the following commands:
• Read—read values of inputs 0 . . . . For example, read temperature and humidity values
from the respective sensors.
• RepeatRead—read of inputs 0 . . .  each  milliseconds. This is useful when we need
continuous read operations with a fixed frequency. This command accepts a parameter 
representing time in milliseconds. This command is used to regularly collect data from
the Embedded System and allows one to minimize the number of requests sent to the
system.
• Write—change values of output 0 to 0, . . .  to . For example, switch the LED on
and set the speed of the fan to four.
• TimedWrite—change values of outputs after a fixed delay . For example, switch of the
fan in two hours.</p>
        <p>When the system starts, the Generic Firmware runs some initialization operations: (1) it reads
the configuration file, (2) it configures input and output pins, (3) it starts the WiFi connection, (4)
it initializes the connection with the Message Broker and (5) it starts a timer for timed commands.</p>
        <p>After initialization, Generic Firmware waits for commands and executes them. Each command
is received as a request message and generates a response, as discussed in Section 2.1.</p>
        <p>The final model we discuss is the Message Broker. It handles the exchange of messages
among client apps and the Embedded System, according to the formats described in Section 2.1.</p>
        <p>
          We adopt a Publish and Subscribe (P&amp;S) communication model [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ]. The Message Broker
stands at the core of this protocol by decoupling the involved parties, i.e., the message sender
(publisher) from the message receiver (subscriber). The publisher and the subscriber, therefore,
do not need to establish a direct point-to-point connection. We can either have multiple
publishers that publish messages to one subscriber or multiple subscribers that receive messages
from one publisher at the same time. The broker is responsible for message routing and
distribution.
        </p>
        <p>The main benefits of the P&amp;S approach are that the embedded systems do not know any
other external application but communicates only with the message broker. Adding new
subscribers will not need to modify the publisher’s behavior when they join the architecture. In
addition, publishers and subscribers do not need to be online and ready simultaneously. Still,
the embedded system can publish new data as soon as they are ready without waiting for the
clients. This allows achieving better performance in real-time applications. Finally, the only
component that needs to be reachable is the Message Broker. This can be easily obtained by
installing the module on a public server or by using a cloud solution.</p>
        <p>In our architecture, we used two channels: (i) the data channel that manages read operations,
i.e., this channel is used to publish sensors data from the embedded system to the broker; and (ii)
the command channel that stores commands that come from external systems or devices to the
embedded system. In essence, from the point of view of the embedded system, it registers itself
as a subscriber to the data command channel because it needs to receive messages, process them
using Generic Firmware, and execute the corresponding operations. Generic Firmware also
registers itself as a publisher to the data channel because it sends out input values. The Message
Broker registers itself as a publisher in the command channel because it dispatches messages to
the embedded system and registers itself as a subscriber to the data channel in order to receive
data from the embedded system. The complete architecture is depicted in Figure 1.</p>
        <p>Any other external system, such as a database, a monitoring system or an anomaly detection
system, can be easily added to the data and command channels. The external device registers
itself as a publisher for the command channel and subscriber for the data channel. In this manner,
it can send messages to the embedded system and receive data from the sensors. Of course, any
other embedded systems can be plugged into the network using the same mechanism.</p>
        <sec id="sec-2-2-1">
          <title>2.1. Data Model</title>
          <p>Communication between the embedded system and other devices difers depending on the type
of interaction. Data and command channels physically separate messages exchanged by the
systems. This brings significant advantages in terms of simplicity, scalability and performance.</p>
          <p>The command channel is the one used to send requests to sensors or actions to the actuators.
Data format contains the following: (1) the command typology and (2) sensors/actuators
involved. The format of a request is the following:
/COMMAND_NAME/LIST_OF_SENSORS_ACTUATORS&amp;TOKEN
where
• COMMAND_NAME represents the requested action that we have already discussed, and the
values are read, repeatedRead, write and timedWrite;
• LIST_OF_SENSORS_ACTUATORS represents the name of sensors and actuators to which
we want to send the action. Sensors or actuators are separated by the special character
"&amp;." Moreover, the name used is the one used in the configuration step;
• TOKEN represents a key to match diferent request–response pairs. Since communication
is asynchronous, there is the need to correlate the response to the request. In real-life
scenarios, multiple clients might send requests simultaneously, and since they will wait
for the response on the same channel, they need to filter the response. For this reason, in
the request, the client generates a unique (or random) token that will be included in the
response.</p>
          <p>Commands cannot be mixed, i.e., send read and write operations cannot be combined at the
same time. For example, we have the following commands:
#1 /READ/I1&amp;I2&amp;TOKEN=T001;
#2 /WRITE/O1=1&amp;02=255&amp;TOKEN=T002;
#3 /TIMEDWRITE/TIMER=100&amp;O3=1&amp;TOKEN=T018.</p>
          <p>Command #1 represents a reading example from two sensors (1 and 2) associated with a
unique token  001. For example, 1 and 2 could be, respectively, temperature and humidity
sensors. Command #2 represents a written example to two actuators (1 and 2). For each
actuator, we specify the value to send. With respect to digital actuators, the admitted values are
zero or one (such as 1). For analog actuators, the admitted values depend on the actuators
themselves. 2 is an example of an analog actuator, and we send a value of 255. Finally,
command #3 represents a timedWrite operation on actuator 3. The operation is executed
after 100 seconds. For each of the above commands, a token identifies the corresponding request
generated from the client.</p>
          <p>After command execution, the response is published on the data channel. The response
depends on the request type. If the command is a read type, then the response contains raw data
acquired by sensors. If the command is a write type, then the response contains information
about the received message. Figure 2 contains example of possible responses.
{ " d a t a " :</p>
          <p>{
}
" I 1 " : 2 3 ,
" I 2 " : 0 . 6 7
} ,
" t o k e n " : " T001 " ,
" timestamp " : " 2 0 2 1 0 5 0 6 T13 : 3 8 : 0 0 "
{ " d a t a " :</p>
          <p>{
}</p>
          <p>" r e s u l t " : " SUCCESS "
} ,
" t o k e n " : " T002 " ,
" timestamp " : " 2 0 2 1 0 5 0 6 T13 : 3 9 : 4 1 "</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Use Cases</title>
      <p>This section presents two real use cases: a small application for monitoring and managing the
fan of a fireplace extractor chimney and an industrial application used in the ICOSAF project
(PON R&amp;I 2014–2020) to control a resistance spot welding process.</p>
      <sec id="sec-3-1">
        <title>3.1. Fan Control Scenario</title>
        <p>We deployed this app for a small factory that produces extractor chimneys. The final goal was
to turn their traditional chimneys into smart appliances by allowing remote control from a
mobile application. The deployed architecture is shown in Figure 3.</p>
        <p>Since the product was designed to be used by final users, we had several conditions to meet:
1) The additional hardware cannot be expensive in order to avoid a significant increase in the
market price of the chimney; 2) The chimney needs to be accessible both at home, i.e., from the
local WiFi network, or from outside, i.e., from the internet; 3) Configuration and installation
steps need to be as easy as possible, without the need of an IT expert.</p>
        <p>Since the chimney has six fan speeds, we represented them as six actuators on the Embedded
System. In addition, we connected two sensors to monitor temperature and humidity in the
proximity of the chimney. This allows us to create simple rules to change the speed of the
fan based on the chimney status. For example, “turn on the chimney when the temperature is
higher than 28 ∘ C.”</p>
        <p>For the Embedded System, we used Arduino Mega 2560 because it has a good balance
between RAM size (256 KB) and price. To enable system discovery over the network, we used
the Zero Configuration Network protocol by using a Bonjour implementation for Arduino
(https://github.com/adafruit/Adafruit_CC3000_Library).</p>
        <p>For the Message Broker, we opted for Software-as-a-Service (SaaS) solution, PubNub. This
provides two important benefits: (a) since it is based on cloud architecture, it ofers potentially
unlimited scalability, and (b) it reduces the costs of dedicated hardware and maintenance.</p>
        <p>Finally, for the remote control, we implemented diferent client versions: a Java desktop
application and two mobile versions (one for Android devices and one for iOS devices).</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2. Quality Control Scenario</title>
        <p>We also tested the efectiveness of the approach in an Industry 4.0 scenario. The experiments
were conducted with Centro Ricerche FIAT (CRF) within the activities of the “Integrated
Collaborative System for Smart Factory (ICOSAF)” Project.</p>
        <p>
          The main goal of the experiment was to support quality assessment on Resistance Spot
Welding (RSW) used to assemble car body parts. A typical car contains more than 5000 welding
spots of diferent materials and thicknesses. Assuring the quality of this process is crucial to
guarantee the solidity of the assembled vehicle. Several ofline and online tests were proposed
to evaluate the quality of the final welded workpieces [
          <xref ref-type="bibr" rid="ref12 ref13 ref14">12, 13, 14</xref>
          ].
        </p>
        <p>The quality control process starts with an operator that places a welded workpiece on a
custom workbench. This bench is designed so that all the welding spots are reachable by
a collaborative robot (cobot) provided with an ultrasound probe that will read the dynamic
resistance curves of the spots. Before starting the probe, it is important to verify the correct
placement of the workpiece. Since it has a very flexible and uneven shape, it is hard to fasten with
clamps. Reading data from a misplaced location will generate dirty data that might negatively
impact the quality check algorithm.</p>
        <p>
          To overcome this problem, we placed several digital position sensors in correspondence with
the contact points between the shape and the bench, as shown in Figure 4a. These sensors are
then wired connected to an Arduino Mega 2560 that runs IoT Helper. The operator will check
the sensors interacting with a custom controlling software that will communicate with Arduino
using our library. Using an HMI, the operator starts the process. The controlling software will
publish a READ command for all sensors to the Message Broker. After receiving the sensor
states, if all of them are evaluated as pressed, the cobot is started. The dynamic resistance
curves of the welding spots are then read and stored in order to be processed using quality
assessment techniques. From the architectural point of view, we adopted a hybrid approach by
using edge computing to control the sensors and the cobot while dynamic resistance curves are
processed on a cloud architecture. Since the company has strict security policies, we cannot use
a SaaS solution for the Message Broker, so we opted to deploy a local Message Broker based on
the MQTT protocol [
          <xref ref-type="bibr" rid="ref15 ref16 ref17">15, 16, 17, 18</xref>
          ]. The MQTT Broker was installed using a docker image on a
Raspberry Pi connected to the same local network of the Arduino. The complete architecture
is described in Figure 4b. These scenarios prove that our architecture can be applied within a
wide range of cases and can not only be adopted to deploy rapid and afordable data collection
in the control scenario but also in industrial and commercial cases.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4. Conclusions</title>
      <p>We presented IoT Helper, a lightweight, generic framework for IoT and IIoT applications. As
discussed, the main contribution of IoT Helper consists in the generic architecture that allows
users to quickly prototype smart applications both in domotics and industrial scenarios. We
introduced two such scenarios in which the framework has been tested with success and
reported experimental data that show how, despite the high flexibility and low costs that come
with the framework, it was able to handle a large volume of data and scale up nicely to real-time
applications.</p>
      <p>IoT Helper was conceived to simplify data collection, and it fits nicely into data analytics
application scenarios. We believe that such a framework could be used also in medicine to
collect data for ML algorithms [19, 20]. An interesting direction to extend the framework
would be to integrate basic analytics features into the firmware in order to enrich and improve
the generation of indicators during usage and possibly predictions based on simple machine
learning models in order to push analytics to the edge of the architecture. This would have
clear benefits in terms, for example, of anomaly detection and robustness of the solution.
Systems Software and Middleware and Workshops (COMSWARE’08), IEEE, 2008, pp.
791–798.
[18] M. Bender, E. Kirdan, M.-O. Pahl, G. Carle, Open-source mqtt evaluation, in: 2021 IEEE
18th Annual Consumer Communications Networking Conference (CCNC), 2021, pp. 1–4.
doi:10.1109/CCNC49032.2021.9369499.
[19] P. Lapadula, G. Mecca, D. Santoro, L. Solimando, E. Veltri, Greg, ml – machine learning
for healthcare at a scale, Health and Technology 10 (2020) 1485 – 1495. doi:10.1007/
s12553-020-00468-9.
[20] P. Lapadula, G. Mecca, D. Santoro, L. Solimando, E. Veltri, Humanity is overrated. or
not. automatic diagnostic suggestions by greg, ml, Communications in Computer and
Information Science 909 (2018) 305 – 313. doi:10.1007/978-3-030-00063-9_29.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Sanders</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Elangeswaran</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. P.</given-names>
            <surname>Wulfsberg</surname>
          </string-name>
          ,
          <article-title>Industry 4.0 implies lean manufacturing: Research activities in industry 4.0 function as enablers for lean manufacturing</article-title>
          ,
          <source>J. Ind. Eng. Manag. (JIEM) 9</source>
          (
          <year>2016</year>
          )
          <fpage>811</fpage>
          -
          <lpage>833</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>M. M. Mabkhot</surname>
            ,
            <given-names>A. M.</given-names>
          </string-name>
          <string-name>
            <surname>Al-Ahmari</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Salah</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Alkhalefah</surname>
          </string-name>
          ,
          <article-title>Requirements of the smart factory system: A survey and perspective</article-title>
          ,
          <source>Machines</source>
          <volume>6</volume>
          (
          <year>2018</year>
          )
          <fpage>23</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>E.</given-names>
            <surname>Sisinni</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Saifullah</surname>
          </string-name>
          , S. Han,
          <string-name>
            <surname>U</surname>
          </string-name>
          . Jennehag,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gidlund</surname>
          </string-name>
          ,
          <article-title>Industrial internet of things: Challenges, opportunities, and directions</article-title>
          ,
          <source>IEEE Trans. Ind. Inform</source>
          .
          <volume>14</volume>
          (
          <year>2018</year>
          )
          <fpage>4724</fpage>
          -
          <lpage>4734</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>H.</given-names>
            <surname>Boyes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hallaq</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cunningham</surname>
          </string-name>
          , T. Watson,
          <article-title>The industrial internet of things (iiot): An analysis framework</article-title>
          ,
          <source>Comput. Ind</source>
          .
          <volume>101</volume>
          (
          <year>2018</year>
          )
          <fpage>1</fpage>
          -
          <lpage>12</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>H.</given-names>
            <surname>Cai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Xu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Jiang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A. V.</given-names>
            <surname>Vasilakos</surname>
          </string-name>
          ,
          <article-title>Iot-based big data storage systems in cloud computing: Perspectives and challenges</article-title>
          ,
          <source>IEEE Internet Things J</source>
          .
          <volume>4</volume>
          (
          <year>2017</year>
          )
          <fpage>75</fpage>
          -
          <lpage>87</lpage>
          . doi:
          <volume>10</volume>
          . 1109/JIOT.
          <year>2016</year>
          .
          <volume>2619369</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G.</given-names>
            <surname>Mecca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Santomauro</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Santoro</surname>
          </string-name>
          , E. Veltri,
          <article-title>Iot helper: A lightweight and extensible framework for fast-prototyping iot architectures</article-title>
          ,
          <source>Applied Sciences</source>
          <volume>11</volume>
          (
          <year>2021</year>
          ). doi:
          <volume>10</volume>
          . 3390/app11209670.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>S.</given-names>
            <surname>Heath</surname>
          </string-name>
          ,
          <source>Embedded systems design, Elsevier</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>A. D'Ausilio</surname>
          </string-name>
          ,
          <article-title>Arduino: A low-cost multipurpose lab equipment</article-title>
          ,
          <source>Behav. Res. Methods</source>
          <volume>44</volume>
          (
          <year>2012</year>
          )
          <fpage>305</fpage>
          -
          <lpage>313</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>O.</given-names>
            <surname>Pineño</surname>
          </string-name>
          ,
          <article-title>Arduipod box: A low-cost and open-source skinner box using an ipod touch and an arduino microcontroller</article-title>
          ,
          <source>Behav. Res. Methods</source>
          <volume>46</volume>
          (
          <year>2014</year>
          )
          <fpage>196</fpage>
          -
          <lpage>205</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>G. M.</given-names>
            <surname>Spinelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Z. L.</given-names>
            <surname>Gottesman</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Deenik</surname>
          </string-name>
          ,
          <article-title>A low-cost arduino-based datalogger with cellular modem and ftp communication for irrigation water use monitoring to enable access to cropmanage</article-title>
          ,
          <source>HardwareX</source>
          <volume>6</volume>
          (
          <year>2019</year>
          )
          <article-title>e00066</article-title>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>P. T.</given-names>
            <surname>Eugster</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Felber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Guerraoui</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.-M. Kermarrec</surname>
          </string-name>
          , The many faces of publish/- subscribe 35 (
          <year>2003</year>
          )
          <fpage>114</fpage>
          -
          <lpage>131</lpage>
          . URL: https://doi.org/10.1145/857076.857078. doi:
          <volume>10</volume>
          .1145/ 857076.857078.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>C.</given-names>
            <surname>Capezza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Centofanti</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Lepore</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Palumbo</surname>
          </string-name>
          ,
          <article-title>Functional clustering methods for resistance spot welding process data in the automotive industry</article-title>
          ,
          <year>2020</year>
          . arXiv:
          <year>2007</year>
          .09128.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>R.</given-names>
            <surname>Raoelison</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fuentes</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Rogeon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Carré</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Loulou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Carron</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Dechalotte</surname>
          </string-name>
          ,
          <article-title>Contact conditions on nugget development during resistance spot welding of zn coated steel sheets using rounded tip electrodes</article-title>
          ,
          <source>J. Mater. Process. Technol</source>
          .
          <volume>212</volume>
          (
          <year>2012</year>
          )
          <fpage>1663</fpage>
          -
          <lpage>1669</lpage>
          . doi:https://doi.org/10.1016/j.jmatprotec.
          <year>2012</year>
          .
          <volume>03</volume>
          .009.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Óscar</given-names>
            <surname>Martín</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Pereda</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. I.</given-names>
            <surname>Santos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Galán</surname>
          </string-name>
          ,
          <article-title>Assessment of resistance spot welding quality based on ultrasonic testing and tree-based techniques</article-title>
          ,
          <source>J. Mater. Process. Technol</source>
          .
          <volume>214</volume>
          (
          <year>2014</year>
          )
          <fpage>2478</fpage>
          -
          <lpage>2487</lpage>
          . doi:https://doi.org/10.1016/j.jmatprotec.
          <year>2014</year>
          .
          <volume>05</volume>
          . 021.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15] ISO/IEC 20922,
          <string-name>
            <surname>Information</surname>
          </string-name>
          technology - Message
          <source>Queuing Telemetry Transport (MQTT) v3.1</source>
          .1,
          <string-name>
            <surname>Standard</surname>
            , International Organization for Standardization, Geneva,
            <given-names>CH</given-names>
          </string-name>
          ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>R. A.</given-names>
            <surname>Light</surname>
          </string-name>
          ,
          <article-title>Mosquitto: Server and client implementation of the mqtt protocol</article-title>
          ,
          <source>J. Open Source Softw</source>
          .
          <volume>2</volume>
          (
          <year>2017</year>
          )
          <fpage>265</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>U.</given-names>
            <surname>Hunkeler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H. L.</given-names>
            <surname>Truong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Stanford-Clark</surname>
          </string-name>
          ,
          <article-title>Mqtt-s-a publish/subscribe protocol for wireless sensor networks</article-title>
          ,
          <source>in: 2008 3rd International Conference on Communication</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>