{"id":13849963,"url":"https://github.com/wirekraken/ESP8266-Websockets-LED","last_synced_at":"2025-07-12T21:32:35.980Z","repository":{"id":164476250,"uuid":"159855571","full_name":"wirekraken/ESP8266-Websockets-LED","owner":"wirekraken","description":"Real-time addressable LED strip (ws2811/ws2812/ws2812b) control using ESP8266 via web interface.","archived":false,"fork":false,"pushed_at":"2023-12-09T13:49:58.000Z","size":1981,"stargazers_count":68,"open_issues_count":3,"forks_count":26,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-08-05T20:29:44.745Z","etag":null,"topics":["esp8266","fastled","led","led-controller","nodemcu","real-time","websockets","ws2812"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wirekraken.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-11-30T17:17:03.000Z","updated_at":"2024-05-21T10:56:48.000Z","dependencies_parsed_at":"2024-01-18T09:57:25.943Z","dependency_job_id":"230db3ea-0624-4bd2-9dbe-c8dce540d699","html_url":"https://github.com/wirekraken/ESP8266-Websockets-LED","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wirekraken%2FESP8266-Websockets-LED","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wirekraken%2FESP8266-Websockets-LED/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wirekraken%2FESP8266-Websockets-LED/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wirekraken%2FESP8266-Websockets-LED/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wirekraken","download_url":"https://codeload.github.com/wirekraken/ESP8266-Websockets-LED/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225839483,"owners_count":17532305,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esp8266","fastled","led","led-controller","nodemcu","real-time","websockets","ws2812"],"created_at":"2024-08-04T20:00:54.033Z","updated_at":"2024-11-22T03:30:30.456Z","avatar_url":"https://github.com/wirekraken.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":"Real-time addressable LED strip control using ESP8266 via web interface\n\n\u003cimg src=\"images/LED-strip.jpg\" width=\"500\"\u003e\n\n## Features\n* Synchronization between all connected devices\n* Desktop and mobile web interface\n* Сhoosing themes\n* Brightness adjustment\n* Loop duration adjustment\n* Color change (thanks to [NC22](https://github.com/NC22/HTML5-Color-Picker) for the colorpicker)\n* Selection of different effects (more will be added)\n\n## Hardware\n* ESP8266-based board\n* Addressable LED strip (WS2811, WS2812, WS2812B)\n* 100 to 500 Ohm resistor (preferably)\n* 3.3V to 5V power supply\n\n#### Wiring diagram\n![scheme](images/wiring-diagram.jpg)\n\n## Software\n\nThe web application is a single page application that is written in vanilla JS. So it is quite lightweight\n\n\u003cimg src=\"images/mobile-app.jpg\" width=\"250\"\u003e\n\nESP8266 is a web server. After your browser downloads the web files, the connection immediately switches to the websockets protocol. Over this, synchronization between clients was implemented.\n\n*Note, although the brightness slider use a delayed event handler (to prevent from flooding the ESP with too many requests too quickly), during execution \"heavy\" effects (they are marked in the code) with a quick change of brightness, ESP may be unavailable (until effect loop is completed) and messages will go to the senting queue.*\n## Installing\nThe first thing you need to do is install the [Arduino IDE](https://www.arduino.cc/en/software) , **BUT**:\n\nAt the moment, latest Arduino IDE (**2.0**) does not support the file system plugin (required to upload web files to ESP flash memory). See [relevance](https://github.com/arduino/arduino-ide/issues/58).\\\nTherefore, you need to install version (**1.8.x**), **however**:\n\nYou can try the `simplified version` which does not depend on the file system plugin but with a minimalistic interface. When you are sure everything is working, I strongly recommend installing the main version!\n\nThe ESP8266 boards will need to be added to the Arduino IDE which is achieved as [follows](https://github.com/esp8266/Arduino).\\\n[The ESP8266 filesystem plugin](https://github.com/esp8266/arduino-esp8266fs-plugin) (you will find the installation instructions in the same place).\n\nDependency only on the following libraries:\n* [Websocket library](https://github.com/Links2004/arduinoWebSockets) (available from the library manager)\n* [FastLED library](https://github.com/FastLED/FastLED) (available from the library manager)\n#### In the end\n* Connect your ESP8266 to your computer\n* Open `ESP8266-LED.ino` and update the following lines:\n```c++\n#define LED_COUNT 60 // the number of pixels on the strip\n#define DATA_PIN 14 // (D5 nodemcu) pin where is connected the data pin\n\nconst char* ssid = \"\"; // SSID of the access point\nconst char* password = \"\"; // password (if the access point is open, leave it empty)\n\nIPAddress Ip(192,168,100,10); // IP address for your ESP\nIPAddress Gateway(192,168,100,1); // IP address of the access point\n```\n* Upload the sketch\n* In the IDE's top menu, select `tools` -\u003e `ESP8266 Sketch Data Upload` to upload files from the `data` directory to ESP flash memory\n* Open the serial port monitor (if the connection is successful, IP your ESP will be displayed)\n* Open the browser and enter the IP address\n#### Happy use ッ\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwirekraken%2FESP8266-Websockets-LED","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwirekraken%2FESP8266-Websockets-LED","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwirekraken%2FESP8266-Websockets-LED/lists"}