Using energy harvesting WSNs (EH-WSNs) are attractive as they can be solely powered by ambient energy sources. Multi-hop routing is important to achieve wide coverage as the transmission range of each node is limited. In this paper, we propose an adaptive opportunistic routing (AOR) protocol for multi-hop EH-WSNs that achieves high throughput using a regioning scheme that adapts to network conditions and energy availability. We evaluate AOR using extensive simulations incorporating experimental results from the characterization of different types of energy harvesters. The results show that AOR increases throughput in both monitoring and event-driven WSNs with different node densities and energy harvesting rates compared to traditional opportunistic routing protocols and other non-opportunistic routing protocols. We have also implemented AOR on a testbed of 20 energy harvesting sensor nodes and results show that AOR works well in EH-WSNs.