Emerging technologies such as the Internet of Things (IoT) and their anticipated massive deployment stimulate the need for developing adaptive energy efficient modulation schemes to maximize network lifetime. IoT systems are typically comprised of limited energy heterogeneous devices in the sensing layer, imposing significant challenges in developing cross-layer schemes to solve the network lifetime problem. In this paper, we present a multi-objective adaptive modulation scheme for the physical layer of a heterogeneous IoT environment. We consider channel conditions to opportunistically maximize device prioritization, energy efficiency, and spectral efficiency. The problem is modelled as a Mixed Integer Linear Program (MILP) in GAMS and is solved by CPLEX under Rayleigh fading channel conditions. Performance evaluations show that considering device heterogeneity is crucial to exploit energy savings and spectral efficiency in IoT sensing nodes.