#include settings.h #define FASTLED_ALLOW_INTERRUPTS 0 //#define FASTLED_INTERRUPT_RETRY_COUNT 0 #define WEBSOCKETS_NETWORK_TYPE NETWORK_ESP8266_ASYNC #include #include #include #include #define MILLI_AMPS 2000 // IMPORTANT: set the max milli-Amps of your power supply (4A = 4000mA) #define FRAMES_PER_SECOND 120 // here you can control the speed. With the Access Point / Web Server the animations run a bit slower. CRGB leds[NUM_LEDS]; WiFiUDP Udp; unsigned int localUdpPort = 4210; // local port to listen on char incomingPacket[255]; // buffer for incoming packets WiFiClient client; void setup() { //Serial.begin(115200); FastLED.addLeds(leds, NUM_LEDS); // for WS2812 (Neopixel) //FastLED.addLeds(leds, NUM_LEDS); // for APA102 (Dotstar) FastLED.setDither(false); FastLED.setCorrection(TypicalLEDStrip); FastLED.setBrightness(255); FastLED.setMaxPowerInVoltsAndMilliamps(5, MILLI_AMPS); fill_solid(leds, NUM_LEDS, CRGB::Black); FastLED.show(); Udp.begin(localUdpPort); } void loop() { EVERY_N_MILLISECONDS( 15 ) { if (WiFi.status() != WL_CONNECTED) { // FIX FOR USING 2.3.0 CORE (only .begin if not connected) WiFi.begin(ssid, password); // connect to the network while (WiFi.status() != WL_CONNECTED) { delay(500); } } //Kompletter Strip in einer farbe //for future use, when ws1812b strips are usable. //int root_length = root.size(); //for(int i=0; i 0) { incomingPacket[len] = 0; } Serial.printf("UDP packet contents: %s\n", incomingPacket); // send back a reply, to the IP address and port we got the packet from Udp.beginPacket(Udp.remoteIP(), Udp.remotePort()); Udp.write(replyPacket); Udp.endPacket(); } fill_solid( leds, NUM_LEDS, CRGB( red, green, blue) ); FastLED.show(); } void webSocketEvent(WStype_t type, uint8_t * payload, size_t length) { switch(type) { case WStype_DISCONNECTED: //USE_SERIAL.printf("[WSc] Disconnected!\n"); break; case WStype_CONNECTED: { //USE_SERIAL.printf("[WSc] Connected to url: %s\n", payload); // send message to server when Connected webSocket.sendTXT("{\"register_client_type\":1,\"client_name\":\"wemosd1\"}"); } break; case WStype_TEXT: //USE_SERIAL.printf("[WSc] get text: %s\n", payload); JsonObject& root = jsonBuffer.parseObject(payload); if (!root.success()) { jsonBuffer.clear(); }else{ red = root["data"]["0"]["red"]; green = root["data"]["0"]["green"]; blue = root["data"]["0"]["blue"]; } // send message to server // webSocket.sendTXT("message here"); break; } }