That's all way too hard if you're using Linux. Most wireless cards nowadays support monitor mode, which allows to use them to capture all packets, including 802.11 Management and Control frames, on a single channel.
If your wireless card supports this mode (chances that it does), then do the following (I assume that you are using a Debian-based distro:
$ sudo su
# aptitude install aircrack-ng
# airmon-ng start wlan0
# airodump-ng mon0
At this point, you should see a list of wireless networks and connected clients. Note the channel number on which your network/client is running. You'll need it to lock your NIC on a particular channel: now it switches all channels sequently to detect every network.
# airodump-ng mon0 -c $channel
You don't really need any of airodump-ng output, it is just used to set channel. Also you can use
iwconfig to use it or just connect to the network (yes, you can simultaneously be connected to a network and use monitor mode), but this is easiest and error-prone way.
Now you can start Wireshark and point it to
mon0 interface. You'll be able to see all packets travelling through your network. If you want to see only data packets, use this filter:
wlan.fc.type_subtype == 0x20.
As a note, I want to say that this is probably possible on Windows, but is harder and range of supported adapters is much narrower, as there are no standard API for monitor mode in Windows.