Hi Stephen
I have been successfully using a similar set up in classrooms for a number of years. With a little care you can make it work quite well.
A few things to note:
1. There are only three wifi channels that are non-overlapping (ie do not interfere with each other) and these are Channel 1, 6 and 11.
If you use only these channels then there will be minimal interference and congestion.
2. Limit the Txpower to just what you need to adequately cover the area, there is no point blasting signal to the far reaches of the site where it will not be used.
Limiting the power makes for less interference in the areas of overlap between access points.
For the TP Link devices like the MR-3040, the "txpower" setting in the radio section of the /etc/configwireless config file can be set to values between 0 and 18 and these values correspond prettty closely to the power in dBm delivered to the antenna. The default if txpower is not specified is to run at full power.
For classrooms I use a setting of 12 as a starting point.
3. Set the maximum number of simultaneous wifi connections that each access point will support.
Commodity routers often don't have this parameter set, and the result is that the access point keeps accepting connections until it runs out of memory/cpu resources and starts dropping connections.
This is really frustrating for users, and particularly teachers in a classroom.
By setting a hard limit, you can guarantee that the router stays stable and when a client tries to connect it will be ignored by the access point in an orderly manner.
The setting for this is "maxassociations" in the AP section of the /etc/config/wireless file.
I have used a setting of 30 in classrooms and it is quite reliable, but YMMV as they say :-)
4. It may better to use different SSIDs for each access point depending on your situation.
It should work with the same SSID on all access points, but it seems that using the same SSID causes some (older?) wifi client devices to get confused.
In a multiple classroom situation, I have used the same base SSID string with just a different number on the end for each access point.
The down side of this approach if you are trying to cover one area with multiple access points (as distinct from using one access point in each adjacent classroom) is that users have to "roam" to find a free access point.
If you use the same SSID and set the maxassociations parameter on all the access points, then the wifi client will get a connection response from an access point that has free capacity, so you get a basic form of load balancing around the access points. Don't forget that you also have to set the same encryption passphrase on all the access points in this case.
Hope this helps.
Regards
Terry