An adaptive power-aware multi-hop routing algorithm for wireless sensor networks