Initially, I planned to wire a single 5050 LED (single colour for all LEDs) strip to the ESP8266, and then have a second bulb wired to the roof as a multicolour changing LEDs. After attending some hardware meetups in Hull, I discovered more about NeoPixels and decided with individually addressable bulbs they’d be a better solution.
This led me to version 2.0 that you can see in the models above, the redesign was shaped partially by the benefits of the individually addressable bulbs but also because of space constraints meaning three wires and attached resistors wouldn’t fit. The new design uses two NeoPixel rings instead meaning that only 5 cables need to run up to the roof (as the 5V line is shared).
During the build I discovered more holes needed to be drilled in the roof to help light spread out, as otherwise the tardis sheds light really poorly, I also cut down the sides of the interior plastic to help reach the windows more easily.
I flashed MicroPython on the ESP8266 to run my software, on boot the device connects to WiFi then connects to the MQTT server and waits for requests. The 3 modes allow the lamp to be manually flashed, interior colour changed or notifications sent:
lamp0,50,0- sets the lamp colour for one blink
interior0,50,0- changes the interior colour until overridden or rebooted
notify0,50,0- flashes roof and changes interior temporarily to notify