ESP8266 ESP-12 Neopixel Strip

I found it very hard to find much of the code so I spend a couple of days writing a sketch to control a neopixel strip over an ESP8266 ESP-12 device. Posting here in case anybody finds any of the functions useful, in particular I had to re-write some of the Adafruit Neopixel examples to use millis() instead of delay() and included a couple of my own ones. I’ve fleeced a bit of this code from other people and the images from various sites. It’s pretty loose at the moment, needs some tweaking on some of the functions. Feel free to borrow, modify as you see fit. I’ve commented a good bit at the start and then got side tracked but it should be simple enough to understand. It should also be simple enough to set it up as a wifi host rather than a client.

As the code is too big (9000 chars is the limit in the forum) I’ve attached it here. Would have been useful to post

ESP8266WifiClientWebserverNeo.ino (27.7 KB)

suffer from 'writeLEDS' was not declared in this scope :( What should I do?

Check out the NeoEffects Library on GitHub.
It uses millis() with AdafruitNeoPixel library to provide multiple concurrent effects on a ‘strip’.
https://github.com/HiFashionTech/NeoEffects_library

Unfortunately newer versions of the ESP8266 require function prototypes https://en.wikipedia.org/wiki/Function_prototype

So you can stick in the prototypes of each of the functions just before void setup()

//function prototypes
void handle_root();
void handle_L0();
void handle_L1();
void handle_L2();
void handle_L3();
void handle_L4();
void handle_L5();
void handle_L6();
void handle_L7();
void handle_L8();
void handle_L9();
void handle_L10();
void handle_L11();
void handle_L12();

void writeLEDS(byte R, byte G, byte B, byte bright, byte LED);
void writeLEDS(byte R, byte G, byte B, byte bright);
void writeLEDS(byte R, byte G, byte B);
void handle_bright();
void handle_color();
void change_states(int tgt);
unsigned int RGBValue(const char * s);
uint8_t splitColor(uint32_t c, char value);
void colorCycler();
void christmasChase();
void heartbeat();
void breathing();
void cylonChaser();
void newTheatreChaseRainbow();
void newRainbowCycle();
void newRainbow();
void newTheatreChase();
void newColorWipe();
uint32_t Wheel(byte WheelPos);

//

Or download the newest version.