  While specifying an IoT-based system, software developers have to face a set
of challenges, spanning from selecting the hardware components to writing the
actual source code. Even though dedicated development environments are in
place, a nonexpert user might struggle with the over-choice problem in
selecting the proper component. By combining MDE and recommender systems, this
paper proposes an initial prototype, called ResyDuo, to assist Arduino
developers by providing two different artifacts, i. e. , hardware components
and software libraries. In particular, we make use of a widely adopted
collaborative filtering algorithm by collecting relevant information by means
of a dedicated data model. ResyDuo can retrieve hardware components by using
tags or existing Arduino projects stored on the ProjectHub repository. Then,
the system can eventually retrieve corresponding software libraries based on
the identified hardware devices. ResyDuo is equipped with a web-based interface
that allows users to easily select and configure the under-developing Arduino
project. To assess ResyDuos performances, we run the ten-fold crossvalidation
by adopting the grid search strategy to optimize the hyperparameters of the
CF-based algorithm. The conducted evaluation shows encouraging results even
though there is still room for improvement in terms of the examined metrics.
