Giter Club home page Giter Club logo

esp-opc-server's Introduction

This is an Arduino sketch which implements an Open Pixel Control server for controlling NeoPixels from an ESP8266, such as the Adafruit Feather HUZZAH.

Here is an example circuit:

Breadboard with ESP8266 Feather and level shifter

Bill of materials:

You will need to edit the sketch to set the number of pixels you have, and your WiFi SSID and password.

Once the sketch is running, you'll need to figure out which IP address it has been assigned. Generally, your router's web interface will have a way to look at DHCP leases, and you can find it from there.

It may also be useful to call WiFi.hostname() to assign a hostname to your ESP board. This may show up as hostname.lan in your DNS, although it depends on your router.

Once you know the IP address or hostname, you can connect with any Open Pixel Control client. The openpixelcontrol repository has some clients in Python, and I have a client in Haskell.

Caveats

This example is a nice proof-of-concept, but there are a couple of reasons it isn't a robust solution.

First, interrupts are disabled while writing to NeoPixels. Interrupts are necessary for WiFi to work, so the server may eventually crash and need to be rebooted, especially if you have a lot of NeoPixels. (This problem could be alleviated by using DotStars instead of NeoPixels, because DotStars are not timing-sensitive and do not need to disable interrupts.)

Second, Open Pixel Control runs over TCP, and TCP is not the best for real-time applications. If a packet is lost, TCP will retransmit it, delaying the packets after it. UDP would be more suitable for this application.

esp-opc-server's People

Contributors

ppelleti avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

dipanjanpanja6

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.