Sensor nodes are characterized by a small size, a low cost, an advanced communication technology, but also a limited amount of energy. Energy efficient strategies are required in such networks to maximize network lifetime. In this paper, we focus on a solution integrating energy efficient routing and node activity scheduling. The energy efficient routing we propose, called EOLSR, selects the route and minimizes the energy consumed by an end-to-end transmission, while avoiding nodes with low residual energy. Simulation results show that EOLSR outperforms the solution selecting the route of minimum energy as well as the solution based on node residual energy. Cross-layering allows EOLSR to use information from the application layer or the MAC layer to reduce its overhead and increase network lifetime. Node activity scheduling is based on the following observation: the sleep state is the least power consuming state. So, to schedule node active and sleeping periods, we propose SERENA that colors all network nodes using a small number of colors, such that two nodes with the same color can transmit without interfering. The node color is mapped into a time slot during which the node can transmit. Consequently, each node is awake during its slot and the slots of its one-hop neighbors, and sleeps in the remaining time. We evaluate SERENA benefits obtained in terms of bandwidth, delay and energy. We also show how cross-layering with the application layer can improve the end-to-end delays for data gathering applications.