Nearly at the assembly stage, I have been working on an ESP8266 and Arduino/FastLED contraption called a FamiLamp.
It is a capacitive-touch IoT lamp, designed to keep people in touch over the Internet.
It can register itself on your local wifi network, and communicates by Twitter/mqtt to share FasLED mode, colours, etc. across the Internet.
Originally it was going to be ESP-only, but it has proven to be too difficult to achieve, so I am using the ESP for the web stuff and the Arduino for the LED stuff.
I have made a custom PCB which will, after debugging, be available for download.
The idea behind it was John Harrison’s ‘filimin’ on kickstarter, but I felt his design was far too expensive. His wifi module alone costs more than my entire build (under $20 each lamp).
My basic costs are: ESP - $2.50, Arduino pro mini - $3, LEDs, caps, resistors, ldo, etc. $2, PCB - $3.50, acrylic sheet , copper foil, paint and wood, $5.
Breakthrough afternoon with MQTT and ESP8266. Now I need some advice on which animation to use.
The criteria are:
4 APA102C LEDS in a square, in a 150x150x300mm square lamp of diffused acrylic.
I would like to fade the animation over time
I would like a ‘rangey’ palette - something that moves around a bit - like Fire 2012 Palette (which was going to be my test animation - but with 4 leds, I don’t know if it will suit - I haven’t even soldered up a test set, yet.
…but what do I know - I am prepared to be led (gettit?).
As it stands right now:
I have a fully-functioning ESP8266
It creates its own AP with a standard password (password!)
It generates a webpage which, after you enter your local AP SSID and password will restart and join your AP
It then gets a DHCP address and registers the MQTT client with the broker and subscribes to the hard-coded topic (a 256-bit word, to prevent overlap).
I haven’t done the arduino interface yet, but it is going to be basic - ttl to ttl using the hardware uarts, implementing a capacitive switch and a random colour generator which will both feed the FastLED animation and push up through MQTT to feed the rest of the lamps subscribing to that topic.
My code is dire and I am doing my best to streamline it - I was getting a lot of ‘out of memory’ errors. I am learning Lua as I go and keep finding new bits in NodeMCU that I can use. I would love to compile a new kernel without all the extraneous i2C/SPI/etc. that I won’t be using, to gain some more programming space, but that’s going to have to wait till later - when I can at least stand in the Lua paddling pool with the toddlers.