  The IoT ecosystem is able to leverage vast amounts of data for intelligent
decision-making. Federated Learning (FL), a decentralized machine learning
technique, is widely used to collect and train machine learning models from a
variety of distributed data sources. Both IoT and FL systems can be
complementary and used together. However, the resource-constrained nature of
IoT devices prevents the widescale deployment FL in the real world. This
research paper presents a comprehensive survey of the challenges and solutions
associated with implementing Federated Learning (FL) in resource-constrained
Internet of Things (IoT) environments, viewed from 2 levels, client and server.
We focus on solutions regarding limited client resources, presence of
heterogeneous client data, server capacity, and high communication costs, and
assess their effectiveness in various scenarios. Furthermore, we categorize the
solutions based on the location of their application, i.e., the IoT client, and
the FL server. In addition to a comprehensive review of existing research and
potential future directions, this paper also presents new evaluation metrics
that would allow researchers to evaluate their solutions on
resource-constrained IoT devices.
