A novel adaptive and distributed fair scheduling (ADFS) scheme for wireless sensor networks (WSN) in the presence of multiple channels (MC-ADFS) is developed. The proposed MC-ADFS increases available network capacity and focuses on quality-of-service (QoS) issues. When nodes access a shared channel, the proposed MC-ADFS allocates the channel bandwidth proportionally to the packet's weight which indicates the priority of the packet's flow. The packets are dynamically assigned to channels based on the packet weight and current channel utilization. The dynamic assignment of channels is facilitated by use of receiver-based allocation and alternative routes. Moreover, MC-ADFS allows the dynamic allocation of network resources with little added overhead. Packet weights are initially assigned using user specified QoS criteria, and subsequently updated as a function of delay and queued packets. The back-off interval is also altered using the weight adaptation. The weight update and back-off interval selection ensure global fairness is attained even with variable service rates.