ESP8266

Basically the esp8266 provides the capability of a wifi shield.

Some differences are:
ESP8266 protocol is serial: Whatever you send to its serial line is interpreted as AT commands.
Since the normal serial line is also used to flash an Arduino, I think you should either use a MEGA (which has more than one serial port) or use soft serial to communicate with the ESP8266. One caveat is that soft serial does not work at the higher baud rates. I've had best result with the lowest baud rate (9600).

There is a shield schematic in ESP8266/Schematics/ESP8266Shield at master · Paulware/ESP8266 · GitHub that could be a replacement for an ethernet shield, but it would give you the additional wifi capability and would need AT commands to talk on the network.

No sensor is complete without a watchdog guarding against system lock-ups. I've had trouble using atmega328's internal hardware watchdog, so I will try to create one using a 555 timer. This will be similiar to the project: GitHub - mattbornski/Arduino-Watchdog-Circuit: The current Arduino library has bugs in the freelist implementation, which can lead to difficult to debug system hangs. For maximum reliability of my home automation projects, I built an external hardware watchdog., but I think I will use an npn transistor to ground the trigger line. Attached is a .jpg diagram of the idea.

555Watchdog.jpg