Even the smallest sensors are now able to send their data over what is called Internet of Things (IoT), such that every user in the world could reach it. But the more sensors we place, the less we want to change batteries! In such a context, the GRANIT team purpose is to design algorithms and architectures able to adapt to environment parameters, such as propagation channel characteristics, wireless traffic conditions or network topology while respecting applications requirements in terms of data rate, reliability, latency, and most of all, life time of involved systems.