Quantity   Component name
1 × ESP8266 Any type of ESP8266 can be used, but I use the ESP-01 (see for example <a target="_blank" rel="noopener noreferrer" href="http://dx.com/p/448981">dx.com/p/448981</a>)
1 × 5-volt Relay Make sure that the relay supports the voltage and current for the lamp. I use the 250-volt 10-Amp relay <a target="_blank" rel="noopener noreferrer" href="http://dx.com/p/448813">dx.com/p/448813</a>
1 × 3.3-volt power supply Anything in the range of 2.5 to 4.0 volts is acceptable.
1 × 10K resistor Anything in the range 1K to 10K is acceptable.
1 × WiFi network with internet access.
1 × USB serial programmer Any serial programmer that supports 3.3 volts is acceptable, see for example <a target="_blank" rel="noopener noreferrer" href="http://dx.com/p/326431">dx.com/p/326431</a>. Or you can buy a specific ESP8266 programmer, see for example <a target="_blank" rel="noopener noreferrer" href="http://dx.com/p/452227">dx.com/p/452227</a>
1 × NodeMCU firmware for the ESP8266 Follow the instructions on <a target="_blank" rel="noopener noreferrer" href="http://nodemcu.readthedocs.io">nodemcu.readthedocs.io</a> to build and flash the Lua firmware to the ESP8266.