Tradeoffs of XBee vs. Wifi for remote sensor & camera
A WiFi network is designed to maintain a continuous connection.  Thus all devices that are going to communicate must either burn a substantial amount of energy keeping the connection alive, or must spend a considerable length of time (typically 10-30 seconds) establishing a connection every time they want to communicate.

When using xBee, if there's a "base station" that's powered on continuously, units that want to communicate with that base station can power up, communicate, receive a reply, and power back down, often in less than 100ms.  For some kinds of sensor monitoring, the difference between powering something up for 15 seconds vs 100ms can be pretty huge.  For that to work well, though, it's necessary to either have a base units that's "always on", or else have the remote units know when the base units are going to be on.  Digi modules include a mode ("synchronous sleep mode") which is in theory supposed to automate the latter, but it requires that all modules on a network always power up for the same length of time regardless of whether they have anything to say.  Worse, the logic for lost nodes trying to rejoin the network, if enabled, is so atrocious as to be almost comic: a unit which is trying to find a network which is powered on for 5 seconds every minute may spend hours turning its radio on for longer and longer periods, up to 55 seconds per minute, and yet consistently avoid having the radio on when the network is awake.