It has been found that the sensor nodes dissipate a significant proportion of their energy in redundant sensing and idle listening. The former occurs when multiple sensor nodes perform their sensing activity in the same region. The latter occurs when sensor nodes have their radios switched on awaiting incoming communication from other sensor nodes, but none is received since no sensor node is wanting to communicate with it. Researchers have proposed putting the sensors and/or the radios of sensor nodes to sleep (switch them off) so as to conserve energy. The task of scheduling when the sensors and/or radios need to be in sleep/active mode is referred to as sleep scheduling. Sensor sleeping may result in interesting events being missed by the network or may lead to a lower quality of data being sensed. Radio sleeping may lead to communication delays in the network. In this work we propose several distributed algorithms to perform sensor and radio sleep scheduling in wireless sensor networks while trying to minimize its negative impact.