1 Introduction

There has been a recent progression in micro-electro-mechanical systems of smart sensors, wireless communications platforms, and digital electronics followed by a plausible construction of tiny sensor nodes, which have low energy consumption and are cost-effective sensor nodes that are capable of connecting as wireless networks [1, 2]. These nodes contain the main elements of wireless sensor networks (WSNs), and are capable of sensing and measuring environmental factors in the vicinity, such as temperature, pressure, voice, and different types of noise pollution, for data processing and transmission [35].

Crucial issues for WSNs include coverage and routing. Several routing methods have been proposed in [68]. All of these methods concentrate only on routing regardless of their coverage. Coverage concerns how the nodes can be enabled to cover an area effectively. One of the main goals is to achieve maximal coverage for an area with the least amount of energy consumed by the sensors [9]. Coverage is one of the Quality of Service parameters in networks used for surveillance [9]. One of the primary major operations performed by each sensor node is to review and process the node’s vicinity to discover incident events that are available in the environment, including the information required for use in application programs [10]. Techniques used to represent coverage retention in sensor networks are based on the quantity and order of coverage (the number of nodes providing coverage for an area), combined with energy consumption [11]. Interestingly, these techniques play a crucial role because increasing the order of coverage and supporting an order increment to \(k\)-order is crucial in WSNs for attaining reliable information about their environment [12, 13]. It is necessary to provide sensor node coverage for some applications, such as target tracking. Thus, improved coverage and support of k-coverage, which means that each point of an object region has coverage from at least \(k\) sensor nodes, is a prerequisite for applied WSNs [1317].

If all of the network targets are diagnosed with coverage sensors, but all of the gathered information do not send to the sink (is the node that has unlimited energy) (i.e., the nodes do not connect with multi-hop to the sink) connective hole will exist. It means, Target coverage in network environment is the most important tasks of the sensor nodes for receiving the information of the target status. But, target coverage is not enough and the links between the sink and sensors should be established for transmitting information that keep the network efficiency in the network lifetime. [1821]. This is the primary challenge that should be studied in protocol designs for networks, since management of energy consumption aims for optimal utilization of a battery, while the relevant data should be made available from the receiving environment to the data processing performed in an optimized wireless sensor network with minimum time consumed [11, 22]. Routing algorithms are among the main elements for designing sensor networks, and retention of network coverage is one of the critical issues in the routing protocols [2326].

In this paper, we present a method for transferring sensor information in which \(k\)-order region coverage is maintained: the method reduces communication expenses and results in a longer network lifetime and greater reliability. The rest of this paper is organized as follows. Section 2 reviews related work. Section 3 presents a system model. Section 4 presents our proposed method, and Sect. 5 presents our simulation results. Finally, Sect. 6 discusses our conclusions and future research directions.

2 Related work

This section reviews the methods that are related to coverage in a WSN. One of the most important issues in the area of sensor networks understands the conditions of area coverage (AC) by sensor nodes. Whenever the Euclidean distance between a relevant target and the localization of a sensor node is less than the coverage radius, it is under the coverage of the sensor node [13, 16, 17, 27]. Different segmentations are used for sensor networks, each one subdividing the area according to the specific protocol. Segmentations can be categorized into three groups according to their target coverage; these are AC, point coverage (PC), and barrier coverage (BC) [28]. The main objective of sensor networks with respect to area coverage is to provide complete coverage and supervision in an environment, while the aim of point coverage is to provide dispersed coverage over a specific distance in the area and barrier coverage aims at eliminating noncoverage in an area. While iterative routing protocols aim to reduce energy consumption as a cost-effective strategy, the issue of coverage is more important in the following protocols [29, 30].

Hybrid Energy-Efficient Distributed Clustering (HEED) [31, 32] is a protocol that periodically selects cluster heads according to a combination of the node’s residual energy and a secondary parameter, through constant time iterations. It uses the primary parameter, i.e., residual energy, to select an initial set of cluster heads. Unlike previous protocols that require knowledge of the network density or homogeneity of node dispersion in the field, HEED does not make any assumptions about the network such as density and size. Every node runs HEED individually. At the end of the process, each node either becomes a cluster head or a child of a cluster head.

Coverage-Preserving Cluster Head Selection Algorithm (CPCHSA): CPCHSA [33] is used for sustainable coverage in sensor networks based on the design of the Low Energy Adaptive Clustering Hierarchy (LEACH) [34] algorithm. The technique in CPCHSA changes the function of the LEACH cluster head to coordinate energy consumption along with improving coverage. Thus, the technique uses nodes that are available in less congested areas for cluster heads due to the high rate of cluster head energy consumption that arises from the aggregation of data and the transfer of data to the sink.

The coverage area in the CPCHSA method is based on the estimation of neighboring nodes according to the received signal potential, and the precise coverage neighbors are not determined. Consequently, the results are merely an estimated range, which is reliable in distribution and high congestion modes. The algorithm functions with random numbers, and it is possible to encounter cluster heads with no further physical distribution in the network.

Energy-Aware Routing Protocol (EAP): The EAP protocol represents clusters for the routing algorithm; thus the protocol features cost-effective energy consumption for inter-network or in-network communication to create a balance of energy consumption in the entire resulting network. EAP provides an algorithm for resolving network challenges that uses the coverage available in clusters under the power control of a radio transmitter, so that nodes apply more potential for remote (far) distances, but less for close distances. A cluster head is initially appointed in each period, and EAP’s representation algorithm is used for randomly chosen maintenance without a guaranty of network coverage. Whenever sufficient density is found in a distribution of nodes, there is a trend of a convenient balance of coverage [35]. It means, if the nodes density is high in the network, sensing nodes or coverage nodes have been selected with suitable distribution in the network and it is not related to the specific area of the network. Also, in the proposed method, the communicative and coverage nodes are considered fixed, and we try to change the cluster head in time interval to decrease energy consumption and increase network lifetime. Moreover, we use single-hope for transmitting information to the cluster heads.

Priority-Based Energy-Aware and Coverage Preserving (PBEACP): The PBEACP [36, 37] algorithm is a technique for wireless sensor network routing that is based on a modification of the LEACH method; thus selection of cluster heads is crucial for improving/controlling energy consumption and reinforcing network coverage by convenient energy distribution in the line of a geographical distribution of nodes. Nodes with more neighbors are selected as candidates for cluster head in the PBEACP method, by a calculation of node density in the placement of nodes.

The PBEACP protocol uses the CPCHSA [33] method to distinguish neighboring nodes and the potential of received signals, but it is useless for the precise placement of coverage neighbors and does not provide the required precision for network coverage like CPCHSA does. But, in the proposed method, the direction and angle of the nodes related to each other are determined.

3 System model

In this paper, it is assumed that all sensors are fixed and all nodes are aware of their proper placement, targets, and sink. For example, we want to transmit the information (by the help of the heating sensor nodes that we were distributed and sent them by airplane in the military zone) of some gates (that are targets) of the underground military stations that are on the ground, and group of sensors near targets report the heating information of their environments based on their diagnosis radius. Sink nodes are free of any energy constraints and have a fixed placement, and all sensors are aware of this situation. Each sensor has a sensing range radius and two communication ranges that are greater than or equal to the sensing radius, nodes’ communicative radiuses are greater than their sensing radiuses, with double the range covered, and all nodes are synchronized and homogenous. Synchronized means, for instance, we have 100 network sensing nodes, all of them transmit information to each other in 1 s. All the information is transmitted with a Hello message and in one specific period. Homogenous means, all sensor nodes are organized in one model, architecture and structure.

Number of targets are placed in the environment. The sensors provide the required information for those targets and transfer it to the sink to improve network quality (which here means network age) by retaining coverage and the necessary links through considering the target and sensors positions. Initially, the available sensors are divided into coverage nodes that receive and post the environmental information and communicative nodes with the task of transferring information received from event registry nodes to the sink by creating a route. The network is then subject to clustering and selection of active nodes (i.e., after making clustering, k-coverage nodes activate and the rests of coverage nodes in the cluster go to the idle status) in addition to establishing alternative paths from the origin to the sink as long as the network is periodic, to maintain a route to the sink that can be used for information transfers.

This paper provides a number of sporadic targets in an environment with a linkage between coverage nodes and the sink by retaining k-coverage, with the coverage nodes of each target clustered in a way that will meet that target. One node is appointed as the head of a cluster of coverage nodes, in addition to the \(k\)-1 sensor nodes that serve as the coverage nodes. In each cluster, \(k\) nodes are set in active mode, and the remaining available nodes in that cluster idle until the end of the time period for processing of all nodes of this cluster. In this way, the cluster head provides the sink with relevant information.

The nodes in crucial areas (sensing radius \(R_\mathrm{s}\) from each target) that are used for coverage consequently also reduce the burden of nodes in the crucial areas, as nodes stationed outside of those areas transfer the information to the sink. As a result, less energy is consumed by the sensor nodes around each target, and the network lifetime is improved.

Figure 1 depicts the coverage of discrete targets (targets are far from each other) by sensor nodes and the formation of clusters in the vicinity of the targets. This is an example of point coverage of discrete targets.

Fig. 1
figure 1

An example of point coverage for discrete targets

The geographical position of nodes is calculated by a global positioning system (GPS). The initial structure of each sensor is shown in Table 1. To furnish each target with k-coverage and the assumed high density of sensors: the greater the value of \(k\), the more appropriate is the density. Indeed, sensors are unable to change their sensing and communicative radius.

Table 1 Initial sensor information

where ID (\(s_{i})\); the node \(s_{i}\) identity, GPS (\(s_{i})\); its geographical position of node \(s_{i }\) (while sensors are located and settle down in their locations, identify their positions by GPS and save it in their database), the geographical positions of the sink node [GPS(sink)] (we assume this filed is defined), energy residue [\(E_\mathrm{r}\) (\(s_{i})\)], current status [Status (\(s_{i})\)], and the targets (\(t_{0}\ldots t_{k})\) are recorded (here, we assume these targets are defined) in the Table 1. The placement of the sink node is crucial; otherwise it might be linked to the network by sensor nodes as depicted in Fig. 2a and cause diminishing node energy and a communicative hole [38]. It is possible to improve the network lifetime and delay time by localizing the sink as in Fig. 2b; this requires placing the sink at a proper distance from the sensors, which reduces the tree height to 3 and raises the root order to 5.

Fig. 2
figure 2

a Location of sink at an improper distance from sensors. b Location of sink at a convenient distance from sensors

Let the range of sensor node \(s_{i}\) be the circular area with Coverage radius \(R_\mathrm{si}\) (i.e., this range illustrates the effective range or coverage range of communication with other nodes as shown in Fig. 3, here \(R_\mathrm{s}\) = \(R_\mathrm{si}\), for each i). The sensor nodes’ binary coverage model, \(\mathrm{cov}({{t}_{j}}, {{s}_{i}})\), is defined by Eq. (1):

$$\begin{aligned} \mathrm{cov}({t}_j ,{s}_i )=\left\{ {\begin{array}{l@{\quad }l} 1&{}\mathrm{if}\,{d}({{t}_j} ,{{s}_i} )\le {{R}_s} \\ 0&{}\mathrm{otherwise}. \\ \end{array}} \right. \!, \end{aligned}$$
(1)

where d(\(t_{j}, s_{i})\) is the Euclidean distance between sensor node \(s_{i}\) and target \(t_{j}\). In the binary detection model (i.e., when detecting the targets), an explicit target is defined in the node coverage area. Each node \(s_{i}\) establishes a communication range with the threshold distance defined as the communicative radius \(R_\mathrm{ci}\). Communication shall be established as single-hop or one-hop whenever the Euclidean distance between two nodes \(s_{i}\) and \(s_{j}\) is less than or equal to the communicative radius. Figure 3 depicts the coverage provided by sensor \(s_{i}\)’s communicative radius besides coverage radius \(R_{\mathrm{si}}\).

Fig. 3
figure 3

Coverage radius \(R_\mathrm{si}\) and Communicative radius \(R_\mathrm{ci}\) for node i

Sensing/coverage neighbors Set of Target t \(_{j}\): In Principle, according to the proposed model, each sensor node will identify all targets in its coverage area. Hence, the coverage neighbor set of target \(t_{i}\) includes all of the sensor nodes that cover/sense the target \(t_{j}\) in their coverage area, as defined by Eq. (2). In other words, all sensing nodes whose Euclidean distances to target \(t_{j}\) are less than \(R_{\mathrm{si}}\). For example, in Fig. 4, sensing neighbors set of target \(t_{j}\) includes {1, 2, 3} considering the target is denoted as the black star.

$$\begin{aligned} {N}_\mathrm{s} ({t}_j )=\{{s}_i \left| \,\,{d({t}_j ,{s}_i )<{R}_\mathrm{s} \}} \right. , \end{aligned}$$
(2)

Communicative neighbors set: The communicative neighbors of sensor \(s_{i}\) are the set of sensor nodes inbound of node \(s_{i}\) for the exchange of information, as defined by Eq. (3). In other words, the communicative neighbors of sensor \(s_{i}\) are all the sensors whose Euclidean distance from the sensing node \(s_{i}\) is less than communicative radius (\(R_{\mathrm{ci}}\) or \(R_{\mathrm{c}}\) for all i). A node \(\mathrm{s}_{i}\) is able to interact with its communicative neighbors and transfer/receive information. For example, in Fig. 5, the communicative neighbors set of node 1 is the set {3, 4, 6} [i.e., the internal circle of the node 1 intersected by the internal circle of these nodes: check the blue shaded areas and its intersection by the internal circle of node 1 (communicative radius) of node 3, 4, and 6].

$$\begin{aligned} {N}_\mathrm{s} ({s}_{i})=\{{s}_{j} \left| {\,{d}({s}_{i} ,{s}_j )<{R}_\mathrm{c} \}} \right. , \end{aligned}$$
(3)
Fig. 4
figure 4

Example of coverage neighbors set

Fig. 5
figure 5

Example of communicative neighbors set

4 Proposed method

In this section, we explain our proposed method in detail. Informally speaking, we use the sink’s geographical position as the coordinate origin for the Cartesian coordinate vectors (always, we have one sink and its position considered as a origin of our Cartesian coordinate vector). Thus, the target and sensor positions shall be defined by the geographical location of sensors and targets relative to the sink’s geographical position. The algorithm consists of three phases:

  • Phase I: Collection and processing of primary information.

  • Phase II: Creation of coverage clusters for targets and selection of cluster heads.

  • Phase III: Selection of active transmitting nodes for information transfer to the sink.

4.1 Phase I: collection and processing of primary information

In this phase, the primary required information to be used for the following phases is gathered that consists of sensing status, the initialized energy for each sensor node and the position of each sensor. We assume that as a default, all sensor nodes are in an idle communicative position, so that the initial value of the Status field is 0. Each sensor node’s Status field (\(s_{i})\) shall be set in one of the positions specified in Table 2:

Table 2 Sensor Positions/status

Each sensor updates its target table by updating the initial sensor information table (Table 1) by processing its target table as follows: if it covers a target, then it transforms from communicative to coverage position and set its status field to 1, otherwise it retains the status value 0. The nodes’ with state 1, try to fill their Table 3 by the information they gain from the Table 1. Specifically, \(D_{\mathrm{sink}}(t_{k})\) is the Euclidean distance between sink from the \(t_{k}\) that is calculated and added to the Table 3 of the node i, also, d(\(s_{{i}},t_{k})\) is Euclidean distance between node i or \(s_{i}\) from the \(t_{k}\) that is calculated and added. Last two fields come directly from Table 1. In the records of Table 1, the nodes whose Euclidean distances from the \(t_{k}\) are less than or equal to \(R_{\mathrm{c}}\) are inserted into the Table 3 (e.g., if each node in its coverage radius has \(t_{k}\), it is added into the Table 3 as \(s_{{i}}\) and all other parameters are calculated for this record). The coverage target table is depicted in Table 3. This table includes the coverage target’s distance to the sink denoted as \(D_{\mathrm{sink}}\) (\(t_{k})\), the distance of the sensor to the target denoted as d(\(s_{i},t_{k})\), the target’s position [GPS (\(t_{k})\)], and the target’s identity or ID (\(s_{i})\).

Table 3 Target Table for node i (\(s_{{i}})\)

Each sensor node then transmits its identity [ID (\(s_{i})\)], coordinates [GPS (\(s_{i})\)], residual energy [\(E_{\mathrm{r}}\) (\(s_{i})\)], current status [Status (\(s_{i})\)], and its coverage target identity [ID (\(t_{k})\)] to single-hop neighbors with a hello message. Whenever a sensor fails to cover a target, the ID (\(t_{k})\) will be null. The hello message format is depicted in Table 4.

Table 4 Hello message

On the top of the hello message a sensor node updates its neighbors table. The format of sensor \(s_{i}\)’s neighbors table, with \(s_{j}, j = 1 \ldots m\) (the number of node \(s_{i}\)’s neighbors), is depicted in Table 5.

Table 5 Sensor \(s_{i}\) neighbors table (node \(s_{j}\) is a neighbor)

where sensor \(s_{j}\)’s neighbors table consists of \(s_{j}\)’s identity [ID (\(s_{j})\)], \(s_{j}\)’s coordinates [GPS (\(s_{j})], s_{j}\)’s residue energy [\(E_{\mathrm{r}}(s_{j})\)], \(s_{j}\)’s sensor status [Status (\(s_{j})\)], the identity of the target covered by \(s_{j}\) [ID (\(t_{k})\)], the distance to sensor \(s_{i}\)[d (\(s_{j}, s_{i,})\)], and the distance to \(s_{j}\)’s sink [\(D_{\mathrm{sink}}(s_{j})\)]. At the end of this phase, each node is aware of its neighbors’ details to apply the required information in the following phases.

In a nutshell, each sensor node contains three tables: initial sensor information Table (Table 1), Target Table (Table 3) and Neighbors Table (Table 5). Table 3 is established based on the position/status of the current node and the targets positions.

Algorithm 1 presents pseudocode for Phase I.

figure a

* Here, we calculate the time needs for each target, which is defined as time taken to find the positions (Table 1) + time for updating the targets table (Table 3) + time taken to send Hello message to the sensor nodes neighbors (one-hop) (Table 4)

4.2 Phase II: creation of coverage clusters for targets and selection of cluster heads

In this phase, a cluster is initially created for each target. Members of the cluster are nodes located within the maximum distance \(R_{\mathrm{c}}\) from the target whose coverage includes the target. Then the cluster head is nominated as follows.

In the first step, each node creates a coverage neighbors record from its coverage target. It is best to assign a cluster head for each target to provide a specific mechanism for transferring the collected information to the sink, i.e., node 1 processes its neighbors table and adds the neighbors that have similar object coverage nodes to node 1 to node 1’s coverage neighbors table (or Table 6). The coverage neighbor table format for target \(t_{k}\) for node \(s_{i}\) is shown in Table 6.

Table 6 Coverage neighbors table format for target \(t_{k}\) for node \(s_{i }\)(i.e., here, \(s_{j}\) is one of \(s_{i}\)’s neighbors that has the same \(t_{k})\)

where \(\theta ({t}_k, {s}_j )\) is the angle of the sensor node to the target node, CHeff(\(t_{k})\) is the fitness function of the cluster head (CHeff is the acronym of Cluster Head Efficient), and d(\(s_{j},t_{k})\) is the distance of the sensor node from the target node. The sensors that are in the coverage table for each target node make a cluster with the name of that target.

Now, we explain the mechanism that helps us to select the cluster head for each target node. Then, we will be able to transmit the information that is gathered by the covering sensors to the sink node.

In the second step, a fitness function is used to identify the cluster head, based on Eq. (4). The values \(\alpha 0\) and \(\alpha 1\) define the impact strength coefficients (probabilities) of each of the parameters for the cluster head fitness function (each of them is in the range[0,1], where 0 means that the parameter has no effect on the cluster head fitness function and 1 means the parameter has full effect on the cluster head function); these values are assumed to be 0.7 and 0.3, respectively (we consider the residual energy of each node to be more important than the distance of that node to the target node). The node with the highest value is defined as the cluster head. If the assigned node has no alternative, a timed loop will indicate that no message has been received from its neighbors and either it will change its position to cluster head (change its value to 4) or it will provide a convenient message to its coverage neighbors concerning the relevant target; otherwise it waits to receive messages from its coverage neighbors and updates the information in the coverage table. Here, \({E}_{\max }\) is the total energy that is considered for each node. Note that, if we have multiple nodes with the same CHeff, our algorithm will select the node that has the smallest \(D_{\mathrm{sink}}(s_{i})\).

$$\begin{aligned} \mathrm{CHeff}({t}_k )=\alpha _0 \frac{{E}_\mathrm{r} ({s}_{i} )}{{E}_{\max } }+\alpha _1 \frac{{D}_{\mathrm{sink}} ({t}_k )}{{D}_{\mathrm{sink}} ({s}_i )}. \end{aligned}$$
(4)

In the third step, it is necessary to know the angle of each node with respect to the coverage target to find the proper locations of other k-1 nodes. Cluster head selects active coverage node by Eq. (5). Equation (5) is the usual formula for calculating the angle of each coverage target:

$$\begin{aligned} \theta ({t}_k ,{s}_j )=\left\{ {{\begin{array}{l@{\quad }l} {\pi +\tan ^{-1}\left( {\frac{y_\mathrm{si} -y_{t_k } }{x_\mathrm{si} -x_{t_k } }}\right) } &{}{(x_\mathrm{si} -x_{t_k } )<0} \\ {\tan ^{-1}\left( {\frac{y_\mathrm{si} -y_{t_k } }{x_\mathrm{si} -x_{t_k }}}\right) }&{}{(x_\mathrm{si} -x_{t_k } )>0}\\ \end{array} }} \right. , \end{aligned}$$
(5)

Figure 6 shows the location of each sensor in the neighbor of each target node.

Fig. 6
figure 6

Location of each sensor in the neighbor of each target

In principle, assume that the cluster head is in the bisector of sector \(A_{0}\), it is in sector \(\left[ {((\theta -2\pi )/2k)\mathrm{mod} 2\pi ,((\theta +2\pi )/2k)\mathrm{mod} 2\pi } \right] \). Consider that the circumference of the target that is segmented into \(k\)-1 sectors is used to calculate the bisection of each sector. Interestingly, we select each node in each bisector as an active coverage node and change its status field to 3. The bisector of sectors \(A_{j}, B_{s}(A_{j}),\quad j = 1,2\ldots ,*\) is calculated as in Eq. (6):

$$\begin{aligned} {B}_\mathrm{s} ({A}_j)=\left( {\theta +\left( j*\frac{2\pi }{k}\right) }\right) \mathrm{mod} \quad 2\pi \quad {j}=1,2,\ldots ,{k}-1, \end{aligned}$$
(6)

We use the coverage fitness function to appoint the coverage node for each sector, where the node with the highest value is assigned to be the sector coverage node. In the coverage fitness function or coverage efficient function denoted as \(\mathrm{cov}_\mathrm{Eff}\ \)and expressed in Eq. (7), values \(\beta _{0}, \beta _{1}\), and \(\beta _{2}\) are the impact strength coefficients (probabilities) applied to the parameters in the cluster head fitness function; the relevant values are 0.6, 0.2, and 0.2, in that order. Figure 7 depicts a target and closed sectors.

$$\begin{aligned} \mathrm{cov}_{\mathrm{Eff}} ({s}_i )={\beta _0} \frac{{E}_\mathrm{r} ({s}_i )}{{E}_{\max } }+{\beta _{1}} \frac{1}{\left| {{B}_\mathrm{s} (\sec _j )-\theta ({t}_k, {s}_i )} \right| +\varepsilon }+{\beta _{2}}\frac{\mathrm{d}({s}_i, {t}_k )}{{R}_{\mathrm{si}} }, \end{aligned}$$
(7)

where \({E}_{\max }\) is the total energy that is considered for node \(s_{i}\). Obviously, \({B}_\mathrm{s} (\sec _j )\)is defined in (6), \(R_\mathrm{si}\) is coverage radius for node \(s_{i}\), \(\theta ({t}_k ,{s}_j )\) is angle of the sensor node to the target node, d(\(s_{j},t_{k})\) is the distance of the sensor node from the target node, \(\varepsilon \) the fault tolerance parameter and \(E_{\mathrm{r}}\) (\(s_{i})\) is \(s_{i}\)’s residual energy.

Fig. 7
figure 7

Target and closed sectors

The cluster head sends a message to each coverage node following their nomination and waits define duration to receive a confirmation message; thus the target has coverage of order \(k\), and its information is subsequently transferred to the cluster head by the coverage nodes and is finally received by the sink. The coverage nodes with a status value of 1 then enter sleep mode following termination of this stage until the next stage. In a nutshell, cluster head selects active coverage node. Particularly, cluster head is responsible to find active coverage node and set the active coverage node statues to 3. Note that, this could lead to multiple nodes covering a particular sector, but the only active node is the node that receives an active message from the cluster head.

Pseudocode for Stage II is provided in Algorithm 2.

4.3 Phase III: selection of active transmitting nodes for information transfer to the sink

This stage is implemented concurrently with step 3 of Phase II to select the next route for sending information to the sink. Each node evaluates its neighbors for sending information to the next hop node using the neighbors’ table information and communication fitness function (or coverage efficient function) values. The node with the highest value (i.e., these values are achieved within coverage efficient function) is nominated for packet transmission. To transmit packets from the cluster head to the sink, there should be an available route between them, which can be found by eliciting information using the hop-to-hop method.

In the hop-to-hop method, each node uses information it receives from the upstream nodes to select an appropriate node for the next hop. The next-leap node (or next hop node) should be selected from the communicative tables of each node’s neighbors. The selection is made as follows.

First, it is necessary to determine whether a communicative and active node is available in the table. If one is found and in addition its distance to the sink node is less than the distance of the current node to the sink node, we select this node as the next-leap node; otherwise, if the distance is greater than the distance to the sink, the communicative fitness function [shown in Eq. (8)] will be used for nomination. In this case, the node with the greatest value will be chosen for the next-leap node.

figure b

This procedure is repeated until the sink is reached. So that there always a route exists for transmission from the cluster head to the sink [39].

The reason for using the distance from the sink in the fitness function for coverage is to prevent deviation in the main route for packets to the sink. In addition, it is used for finding the fewest leaps in establishing a route to the sink.

Second, after selecting the next-leap (next hop node), that node is notified by a special message that it has been selected. Then the node changes its status to 2 and announces to its single-hop neighbors that it is an active communication node. Finally, this node selects the next node based on this same method, and this continues until the sink node is reached.

Next, after finishing an each iteration of the loop, as the next iteration commences, the nodes that had been activated in the previous iteration change their status to the normal state. Also, these nodes send their residual energies information back to their single-hop neighbors so that they can update their neighbors table. Equation (8) shows the communicative fitness function or communicative efficient function denotes \(\mathrm{comm}_{\mathrm{Eff}} \). This function shows the communicative value for \(j\)th neighbor node (\(s_{j})\) of current node \(s_{i}\). Each node knows the number of its active neighbors. The maximum degree of each node is \(m\). This value helps the node to find better neighbors based on their proximity to the sink, high residual energy, and the longest available distance based on the current node’s communicative radius. This is shown in detail in Eq. (8).

$$\begin{aligned} \mathrm{comm}_{\mathrm{Eff}} ({s}_j )\!=\!\gamma _0 \frac{{E}_\mathrm{r} ({s}_j )}{{E}_{\max }}\!+\!\gamma _1 \frac{{D}_{\mathrm{sink}} ({s}_i )}{{D}_{\mathrm{sink}} ({s}_j )}\!+\!\gamma _2 \frac{\mathrm{d}({s}_i, {s}_j )}{{R}_\mathrm{c} }\quad j=1,2,\ldots ,{m},\qquad \end{aligned}$$
(8)

where \(\gamma _0 ,\,\gamma _1 \) and \(\gamma _2 \) define as the impact strength coefficients (probabilities) or the contribution of each parameter to the communicative fitness function; their values are 0.6, 0.2, and 0.2, respectively. \({E}_{\max } \) is the total energy that is considered for node \(s_{j}\). \(R_{s}\) is coverage radius for each node, d(\(s_{i},s_{j})\) is the distance of the sensor node \(s_{i}\) to the its neighbor node \(s_{j}, D_{\mathrm{sink}}(s_{j})\) is the distance of the sensor node \(s_{j}\) to the sink, \(R_{c}\) is communicative radius of each node and \(E_{\mathrm{r}}\) (\(s_{j})\) is \(s_{j}\)’s residual energy. In a nutshell, the cluster head picks a next hop to forward based on the comm\(_{\mathrm{Eff}}\) value among neighboring nodes, and the selected node then picks another node and so forth.

Algorithm 3 provides pseudocode for Phase III.

figure c

In the following example, we describe aforementioned algorithm (e.g., Algorithm 3) in various figures below.

We have filled Table 7 based on the value obtained in Tables 1, 2, 3, 4, 5, 6 and calculated comm\(_{\mathrm{Eff}}\) based on Eq. (8). In the Fig. 8a, each node with orange color has data to transmit to the sink; this node is interested to select a next node among its communicative neighbor’s nodes. For selecting next hop among nodes (the nodes with blue colors) that are in communicative radius (the dotted circle in the Fig. 8a), the node with maximum comm\(_{\mathrm{Eff}}\) is selected as a next node and the information transmitted to it.

Table 7 Connectivity table format for node \(s_{i}\)
Fig. 8
figure 8figure 8figure 8

An example of selection of active transmitting nodes for information transfer to the sink

The node 50 (i.e., it is the cluster head or is the Intermediate node in the path of sending packets to the sink) tries to send the information to the sink and it has 6 choices (these choices are related to the communicative neighbors node with one hop such as node 46,47,51,61,62, and 66). Regarding the value comm\(_{\mathrm{Eff}}\) in Table 8, we select the node 61 for the next step of sending information.

Table 8 Table 7 values for the Fig. 8a

In Fig. 8b, node 61 has 7 choices based on its neighbors (i.e., nodes 65, 62, 60, 50, 46, 76, 66). Regarding the value comm\(_{\mathrm{Eff}}\) in Table 9, we select the node 59 for the next step of sending information. Also, in Fig. 8c, node 65 has 7 choices based on its neighbors (i.e., nodes 59, 60, 61, 66, 75, 76, 80). Based on the value comm\(_{\mathrm{Eff}}\) in Table 9, the node 61 is selected as the next hop transmitting data. Moreover, in Fig. 8d, node 59 has 7 choices based on its neighbors (i.e., nodes 34, 44, 58, 60, 65, 74, 75). Based on the value comm\(_{\mathrm{Eff}}\) in Table 9, node 58 is selected as the next hop for transmitting data. In addition, in Fig. 8e, node 58 has 7 choices based on its neighbors same before (i.e., nodes 34, 45, 57, 59, 73, 74, and 77). Based on the value comm\(_{\mathrm{Eff}}\) in Table 9, the node 45 is selected as the next hop for transmitting data. Next, in Fig. 8f, node 45 has 8 choices based on its neighbors (i.e., nodes 29, 31, 32, 34, 52, 57, 58, and 73). Based on the value comm\(_{\mathrm{Eff}}\) in Table 9, node 52 is selected as the next hop for transmitting data. Finally, in Fig. 8g, due to the fact that node 52 is able to reach directly to the sink, it delivers the data directly to the sink.

Table 9 comm\(_\mathrm{Eff}\) for node 50, 61, 65, 59, 58, 45

5 Performance evaluation

5.1 Experimental setup

Since implementation of these techniques is expensive and time-consuming, a simulation was used to evaluate their performance. This section presents an evaluation through a simulation and provides the relevant results.

Glomosim is used for special network simulations, with TCP, routing, and multicast protocols in a wireless network and satellites [40]. Glomosim can simulate myriad nodes using C functions and Parsec. Glomosim is free open-source code which can be assembled and run on Linux- and Windows-based operating systems [40].

Our simulations assumed an environment spanning (TERRAIN-DIMENSIONS) 200 \(\times \) 200 sq m, with 1,000 sensor nodes deployed randomly in that space, including random nodes. We consider each node radius \(R_{s}\) to have a uniform distribution between [4, 6] m. As we see, each node is able to cover several nodes based on its radius, also, \(R_{\mathrm{c}}\) is considered one meter (fixed) larger than its \(R_{\mathrm{s}}\) for each node. The nodes receive object information and transfer it through cluster heads and communicative nodes to a sink location situated at the center of the environment. The simulation parameters are listed in Table 10.

Table 10 The simulation parameters

Specifically, the objects are varied in their circumstances; the initial energy of the sensors is 10,000 mJ while the transmitted energy is 10 mJ across the greatest distance; and there is 5 mJ for each supervisory action.

5.2 Experimental results

The proposed algorithm is compared with the EAP technique with respect to objects, links, and energy consumption. The coverage and relevant results are presented. Compared with the two classic protocols for sensor networks, HEED [32] and LEACH [34], the performance of EAP [31, 35] is more optimized due to its network coverage and information transfer. Each test was carried out in different conditions and with different settings. The graphs that are displayed depict the average of the several test results. In conclusion, we use EAP because it pays close attention to clustering, energy-efficiency and energy consumption of nodes in whole networks, and each node uses broadcasting and has residual energy, it supports in-network, it extends LEACH [34] algorithm and makes a good balance between network parameters such as connectivity, coverage and power consumption.

To demonstrate the range of diversity of active sensors in connection with the proposed technique, the number of targets is varied from 1 to 10 in these simulations, and this was used to calculate the number of active sensors.

For comparing the proposed technique with the EAP technique, the range of coverage was assumed to be in status (position number) number 4 (i.e., according to Table 2), since the range of coverage affects the simulation results. Figure 9 shows the number of active nodes as a function of the targets’ number. The number of active nodes in the proposed technique is higher than in the EAP technique, and the communicative radius of sensors remains at the highest value. This decreases the proposed technique’s rate of energy consumption in the network, because we are able to use the k-coverage again to transmit information to the sink with the help of other nodes that are in the coverage area.

Fig. 9
figure 9

Number of active nodes proportional to the number of targets

The percentage of delivered packets is shown in Fig. 10.

Fig. 10
figure 10

Percentage of delivered packets that are received in the network (lifetime in ms)

Delivered ratio means the ratio of the (received) delivered packets in sink into produced and transmitted packets over times. The proposed method has better performance by increasing the time than does EAP, because the packets are transferred to the sink by creating a route through the cluster head and multi-hop transferring in the proposed technique, but it takes the packets longer to reach the sink due to the delivery of packets to the sink as multi-hop transfers in EAP. Furthermore, in the proposed method, the range of delivered messages is 100 % when there is little congestion at the communication nodes, but the range is reduced over time with the range reaching 93 % at the termination of the network’s life, whereas the EAP technique successfully delivers approximately 86 % of the packets by the end of the network lifetime.

In Fig. 11, because the EAP technique increases the communicative radius to communicate with clusters, the energy consumption in the cluster head node increases. However, the proposed technique results in less energy consumption than the EAP technique because the least number of sensors are used for communication between cluster heads and for information. The coverage nodes do not need to distribute the entire information toward their neighbors, and consequently the range of energy consumption is better than for the EAP algorithm.

Fig. 11
figure 11

The range of energy consumption in the network (mJ/ms)

Figure 12 depicts the range of energy consumption for different available nodes in the network in the proposed technique. The graph shows the demonstrated energy range for three categories of nodes:

  • Nodes that participate in the coverage process.

  • Nodes that only take participate in information transmission.

  • Nodes that only assume the role of coverage cluster head.

Fig. 12
figure 12

Residual energy for different categories of nodes in the proposed technique (J/ms)

The energy consumption in available coverage nodes is less and has the smallest range of energy consumption due to a failure of information transmission and a lack of complete information about neighbors at the beginning of the algorithm.

The cluster head nodes spend more energy than the coverage nodes due to the information received by coverage nodes and the information transferred to communicative nodes; the information transmitted to the sink consumes maximal energy in the network due to the amount of information transferred to the sink.

6 Conclusion and future research

Regional coverage is one of the main characteristics in a wireless sensor network, with the main aim being to achieve the maximum coverage in the area with the least energy consumption by the sensors. The initial and main operation of each sensor node is to review its vicinity to provide the required information for operating purposes. The routing protocol for coverage should provide low energy consumption to increase the network lifetime and the warranty of network connection. High coverage is advantageous for promoting error tolerance and the validity of received information. Our simulation results and comparison of the routing algorithms’ retention of coverage prove that the proposed algorithm preserves the network with its low energy consumption.

The paper reviews the relevant characteristics of sensor nodes, the functions and applications represented, as well as the types of sensor and their structures and the constraints they encounter. The constraints of these networks are energy limitations, network lifetime, and network coverage. Therefore, relevant strategies are provided to control the network coverage. The proposed technique is a rapid reduction of nodes around the sink. Only a few nodes are used around the sink in spite of a high node density assumed in the environment. These nodes assume the burden of relaying information to the sink resulting in a reduction of energy consumption in the nodes. One way to address this challenge is the enervation of the sink in the environment.

It is plausible to increase the range of coverage by \(k\) nodes to upgrade the tolerance against faults in the future, but that strategy is insufficient because the connection of the sink with an object or part of the network is vulnerable to de-linkage in the case of a discrepancy along the route or a discrepancy of the supervisory node. Therefore, it is desirable to provide a convenient strategy for upgrading the network’s resistance to network discrepancy. Specifically, we mention that, if a hole exists, we try to find another path around hole to bypass the hole and it might be a longer path. In the worst case, if our network breaks into two completely isolated sub-networks, no algorithm can find a path.