## 1 Introduction  
A typical wireless sensor network (WSN) [1] consists of large numbers of low-power and cheap sensor nodes with limited sensing, processing and communication abilities. When randomly deployed in sensor field, these sensor nodes can automatically self-organize into an ad hoc network [2]. Wireless sensor networks (WSNs) are widely used in many domains, such as environmental monitoring [3], target tracking [4], security surveillance [5] and disaster management [6], for the purpose of information gathering about the diverse phenomena of interest. WSNs usually are deployed in hostile or harsh environments and work in an unattended fashion [7]. In addition, most sensor nodes in the network are driven by battery which has finite stored energy. It is inconvenient to replace or recharge the battery once its energy is exhausted. Battery life is the vital factor that restricts the lifetime of sensor nodes or network [8]. In addition, as data transmission or reception contributes the majority of energy dissipation of sensor nodes [9], an energy-efficient routing protocol is essential to conserve the energy of nodes in the network. Routing protocol has been extensively studied in the past decade and can be divided into two categories [10]: flat routing and hierarchical routing or clustering routing. All sensor nodes have the same functionalities and behave according to the same rules in flat routing [11]. The idea of clustering [12] is to group the network into several clusters, and a node in each cluster is selected to be the cluster head (CH). The responsibilities of each CH are receiving data from other normal nodes, aggregating this with its own data and forwarding the aggregated data to base station (BS). In addition, since the majority of sensor nodes only need to transmit their data to the corresponding CH for a short distance, the energy consumption of the network can be reduced effectively. WSN technology plays a critical role for the realization of Internet of Things (IoT) [13]. In addition, Cisco has predicted that 50 billion new connections will be made in this IoT by the year of 2020 [14]. Then billions of sensor nodes will consume a significant amount of energy to execute data collecting and transmitting tasks. Once these sensors run out of energy, a lot of electronic waste will be produced which may bring a big challenge to the environment [15; 16]. Because of the potential economic benefits and expected environmental sustainability, harvesting ambient energy resource from the environment to power WSNs is a promising technique [17]. Sensor nodes equipped with energy harvesting devices, such as solar panel, thermal energy harvester and microbial fuel cell, can harvest additional energy from the ambient environment [18; 19]. We call this kind of sensor an _Energy Harvesting Sensor_ (EH-Sensor) and refer to the WSN consists of EH-Sensors as the _Energy Harvesting Wireless Sensor Network_ (EH-WSN) [20]. Such EH-WSN is very adapted to green IoT or smart city applications [21; 22; 23], since it can operate for extended durations with minimal installation costs. The battery of EH-Sensors generally acts as a limited-capacity buffer of energy [24], and an energy-efficient routing protocol is also necessary to manage the energy in EH-WSNs. There are typically two types of EH-WSNs [25]. One treats harvested energy as a supplement to the battery to maximize the lifetime of WSNs. The other is using harvested energy as the only source to WSNs for perpetual network operation. In [26], a solar aware routing protocol similar to directed diffusion is proposed, which prefers to route data via solar-powered nodes. The solar energy is treated as a supplement of sensor nodes' energy source for improving the network lifetime. In addition, the network will end inevitably at last.