Wireless sensor networks are constructed by a large number of low power sensors, deployed in an area. Every sensor node is equipped with a transducer, microcomputer , transceiver and power source. These sensors can monitor different parameters such as temperature, humidity, pressure, vibration intensity, power-line voltage, pollutant levels and vital body functions. Wireless sensor networks have been used for various applications in last few years such as civilian application areas, including environment and habitat monitoring, healthcare applications, home automation, space exploration, chemical processing, and traffic control. In contrast to traditional networks, sensor networks offer a flexible proposition in term of the ease of deployment. Therefore, it can be easily employed in harsh and inaccessible areas. When sensor networks are placed in such environments, their nodes are usually scattered randomly. Although sensor networks are a kind of ad hoc network, they are different from ad hoc networks in a number of ways, such as, the direction of data. In these networks, packets are usually route from sensor nodes to base station, which should be considered in routing protocols. To simplify managing these networks and increase their scalability, nodes are usually grouped into disjoint clusters. Clustering can be considered as an efficient technique for extending the lifetime of a sensor network. Beside this, clustering has other advantages such as reducing routing table size. Therefore, network clustering has been considered in many applications. In each of them, clustering is done with different propuses, such as load balancing, improvement of connectivity and the increasing network life time. The great role of sensor networks in different situations along with their special properties, and the advantages of clustering; clarify the importance of this subject. In this research, we aim to find a proper way to cluster nodes, select cluster heads, and route packets. The algotithm consists of two parts: clustering and routing. In the first part, the algorithm groups the network nodes into a number of clusters. In the second part, the packets are routed along network. The algorithm which is proposed in this thesis is based on calculating combitional weights. The calculated weight is used for both parts of algorithm. Our purpose is to present a balanced algorithm for clustering, which helps to improve route fail. It can also increase scalability, using multihop routing. In this algorithm, cluster heads are fairly distributed in network area, which results in and load Keywords: Wireless sensor network, clustering, ruoting, power aware routing, load balancing.