# IoT Helper: A Lightweight and Extensible Framework for Fast-Prototyping IoT Architectures
## 2 Related Work  
There is a vast number of proposals to address the class of applications discussed in this paper [6; 7]. In this section, we classify first the relevant technologies and then propose a comparison of our proposal to other solutions on the market. **Embedded Systems** Modularity, interoperability and real-time orientation are considered as primary requirements for smart factories [8]. Modularity is important because each subsystem is designed to perform highly specific tasks, but, at the same time, it should be able to be combined with other subsystems in order to extend its actions. Interoperability is mandatory in order for different subsystems to exchange information among each other. Real-time data analysis is crucial in order to quickly change production configurations and to react to events. In this framework, _Embedded Systems_[9] play a central role in order for achieving a configurable and programmable architecture. Embedded systems are programmable modules typically based on low-end hardware that allow one to easily receive raw data from sensors and generate actions with the actuators. Data received by the sensors represent the _inputs_ that the system can read. The _outputs_ of the system are the commands sent to the actuators to generate actions. Thus, an embedded system can be observed as a _generic program_ that manages inputs and outputs and can be easily configurable. Arduino ([[https://www.arduino.cc/](https://www.arduino.cc/)]([https://www.arduino.cc/](https://www.arduino.cc/)), (accessed on 15 October 2021)) is a highly extensible embedded system used in most laboratory experiments with a wide range of usages [5; 10; 11] that is also characterized by very low costs in the range of USD 30 or even less. A more recent alternative is Espruino ([[https://www.espruino.com/](https://www.espruino.com/)]([https://www.espruino.com/](https://www.espruino.com/)), (accessed on 15 October 2021)). Espruino is as equally inexpensive as Arduino with respect to higher-end solutions and introduces a number of interesting features, namely the use of the JavaScript programming language in place of C/C++ and an improved Integrated Development Environment with a nice graphical editor for code. Espruino is largely compatible with Arduino shields. Tasmota ([[https://tasmota.github.io/](https://tasmota.github.io/)]([https://tasmota.github.io/](https://tasmota.github.io/)), (accessed on 15 October 2021)) is another alternative, based on ESP hardware, similarly to Espruino. Higher-range devices include Raspberry Pi ([[https://www.raspberrypi.org/](https://www.raspberrypi.org/)]([https://www.raspberrypi.org/](https://www.raspberrypi.org/)), (accessed on 15 October 2021)). Raspberry PI devices provide more flexibility with respect to Arduino-like ones both in terms of operating system, programming language and extensibility. They also have higher prices. Our proposed architecture is agnostic of the hardware so that a variety of embedded system can be used. In our deployed version, we used Arduino because the primary goals of this paper is to investigate scalability issues on inexpensive hardware. However, we have an almost complete port of the framework for Raspberry Pi, and porting to Espruino is planned as future work. **Classification of application scenarios and architectures. ** Most of the proposed solutions are domain-specific, ranging from performance evaluation of employees [12] and supply-chain management [13] to production monitoring [14] using SOA [15] architectures. Early efforts have been made to generalize environmental monitoring applications [16].