# Energy-Aware Wireless Sensor Networks for Smart Buildings: A Review
## 3 Hardware Layer
### Radio Frequency Module  
The communication unit consists of a wireless communication channel where Radio Frequency communication is based on electromagnetic waves. The radio link between two communication units specifies the modulation scheme, the frequency spectrum, and the RF power [20]. Here we present the most used RF module, which is the XBee device, then we refer to the energy-aware modulation techniques.  
Nowadays, XBee RF modules from Digi are widely used in WSN. They were designed to meet IEEE 802.15.4 [21] standards to support the need for energy-efficient sensors. The module operates within the ISM 2.4-GHz frequency band. Table 2 illustrates the key features of the XBee and XBee Pro RF modules [22]:  
These RF modules have five modes of operation: command mode, transmit mode, receive mode, sleep mode, and idle mode [23]. When the module is set to Idle mode, it does not send or receive data. The module shifts to the transmit mode when the data are received in the DI Buffer, and it shifts to receive mode when valid RF data are received through the antenna. The device goes to sleep mode when the sleep mode condition is met. The command mode is the mode through which the communication with the module is done to configure it. Since the scope of this paper is energy efficiency in IoT devices, we only focused on the advantages of the sleep mode and how it works to reduce energy consumption.  
Two conditions must be met to enable the XBee to enter the sleep mode: First, pin 9 must be asserted while the module is in a pin sleep mode (where the SM parameter equals 1, 2, or 5). Second, the module is idle for a preconfigured amount of time. This amount of time can be defined by the ST (Time before Sleep) parameter during the configuration of the XBee RF module. Table 3 illustrates the power consumed during the different sleep modes of the XBee.  
then be sent. Another wake-up mode is Pin Doze, which is faster but with higher power consumption.  
The Cyclic Sleep Mode allows modules to listen to any incoming RF data. When the SM parameter is set to '4', the module is put to sleep; then, it wakes up once a cycle to receive any data coming from a Cyclic Sleep Coordinator. The module sends a pull request to the coordinator at a specific interval configured by the SP (Cyclic Sleep Period) parameter. The CTS will go low each time the module wakes up. The coordinator will transmit any queued data addressed to that module. If no data are put in the queue for that module, the coordinator does not transmit any data. At this time, the module will go to sleep for another cycle. If queued data are sent back to the module, it will stay awake for a while to allow for back and forth communication until the ST (Time before Sleep) timer expires. The cyclic sleep coordinator is always awake (SM = 6).  
Cyclic Sleep Remote mode (Pin Wake-up SM = 5): This mode wakes up a remote sleeping module through RF interface or Pin9 de-assertion. It works as the previous mode with the addition of a pin-controlled wake-up at the remote module. The module will wake when a low is detected and then sets CTS low when ready to transmit or receive data. Any activity will reset the ST so that the module will go back to sleep when no signal is detected before the expiration of the timer. The module goes back to sleep based on the ST time, not the state of the pin.