1
0
Fork 0
leet/README.md

37 lines
1.5 KiB
Markdown
Raw Normal View History

2019-04-12 09:30:06 +08:00
# leet
2019-04-12 15:42:20 +08:00
Environmental lighting over gRPC (WTF?!)
## WTF?!
2019-04-12 16:08:54 +08:00
At home, I have a strip of 287 WS2812B LEDs connected to a Raspberry Pi, that needs to be used as a light, mood lighting, and for notifications. I don't want to be a typical person and write a monolithic application, so `leet` is a simple gRPC server that renders basic opacity composition and buffered animations onto the LED strip. This also enables me to add aditional sources of data in the future from anywhere on my home network, including servers, phones and your IoT Blockchain AI appliances.
2019-04-12 15:42:20 +08:00
## Architecture
```
------------------- ---------------
| Lighting Web UI | -------| IMAP Client |
------------------- | ---------------
| |
-------------------- | --------------------------
| Lighting Backend | | | Server Load Monitoring |
-------------------- | --------------------------
| | |
---------------------------------- -----------------
| Leet on the Raspberry Pi |--| WS2812B Strip |
---------------------------------- -----------------
```
2019-04-12 16:08:54 +08:00
## Protocol
2019-04-12 15:42:20 +08:00
2019-04-12 16:08:54 +08:00
See [`framebuffer.proto`](framebuffer/framebuffer.proto) for the actual gRPC protocol
2019-04-12 15:42:20 +08:00
2019-04-12 16:08:54 +08:00
## Developing
2019-04-12 15:42:20 +08:00
2019-04-12 16:08:54 +08:00
1. [Install](https://grpc.io/docs/quickstart/go.html#install-protocol-buffers-v3) `protoc` and `protoc-gen-go`
2. Install the `rpi_ws281x` library: `./get-ws2812x.sh` (WARNING: this installs four files into /usr/local)
3. Get dependencies: `go get`
4. Start building with `go build`
2019-04-12 09:30:06 +08:00