This article demonstrates how to use multiple channels to improve communication performance in Wireless Sensor Networks (WSNs). We first investigate multichannel realities in WSNs through intensive empirical experiments with Micaz motes. Our study shows that current multichannel protocols are not suitable for WSNs because of the small number of available channels and unavoidable time errors found in real networks. With these observations, we propose a novel tree-based, multichannel scheme for data collection applications, which allocates channels to disjoint trees and exploits parallel transmissions among trees. In order to minimize interference within trees, we define a new channel assignment problem that is proven NP-complete. Then, we propose a greedy channel allocation algorithm that outperforms other schemes in dense networks with a small number of channels. We implement our protocol, called the Tree-based, Multichannel Protocol (TMCP), in a real testbed. To adjust to networks with link quality heterogeneity, an extension of TMCP is also proposed. Through both simulation and real experiments, we show that TMCP can significantly improve network throughput and reduce packet losses. More important, evaluation results show that TMCP better accommodates multichannel realities found in WSNs than other multichannel protocols.