Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/kmill/esplights
An "operating system" for the ESP8266 to control lights.
https://github.com/kmill/esplights
esp8266 ws2812b
Last synced: 12 days ago
JSON representation
An "operating system" for the ESP8266 to control lights.
- Host: GitHub
- URL: https://github.com/kmill/esplights
- Owner: kmill
- License: mit
- Created: 2018-11-21T01:02:17.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-12-02T08:27:26.000Z (about 6 years ago)
- Last Synced: 2024-12-04T15:38:51.694Z (2 months ago)
- Topics: esp8266, ws2812b
- Language: C++
- Size: 31.3 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# esplights
This is an "operating system" for the ESP8266 to control WS2812B-based
lighting. It includes* a task system with support for scheduling tasks that wake up on an interval.
* a command line that one can connect to over serial or Telnet.
* mDNS supportIn the future it will have
* an HTTP server
* an OSC serverThere also will potentially be cooperative multitasking using `cont_t`
and `yield()` (see `core_esp8266_main.cpp` from the ESP8266 Arduino
library). However, it will take some care to make sure there are no
resource leaks when killing such a task.## Getting started
These instructions will get you set up to develop and upload the software to the device.
### Prerequisites
Git clone `https://github.com/kmill/esplights.git`.
Install [`platformio`](https://platformio.org/). Then in the project directory,
```
platformio lib install NeoPixelBus
```### Compiling
Copy `src/config.hpp.example` to `src/config.hpp` and modify the file for the WiFi and OTA settings.
To compile,
```
platformio run
```### Deployment
```
platformio run -t upload
```Or, with a particular environment as defined in `platformio.ini`,
```
platformio run -e envname -t upload
```### Telnet usage
Using mDNS, run `telnet mdnsname.local` to connect to the onboard
Telnet server. Type `help` to get a list of commands.### Wiring
We use the ESP8266's I2S "DMA" mode for interfacing with the WS2812B
LED strip. The method uses the GPIO3/RXD0 pin for communication. On
the NodeMCU v1.0, this is the pin labeled RX.**Note:** Once the lights are initialized, the USB serial receive is
deactivated, since it uses the same pin.## Built with
* [`platformio`](https://platformio.org/)
* [`NeoPixelBus`](https://github.com/Makuna/NeoPixelBus)
* [ESP8266 core for Arduino](https://github.com/esp8266/Arduino)## Authors
* **Kyle Miller** - [kmill](https://github.com/kmill)
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.