HE-driven colored lights, scrolling signs, other kinds of indicators?

That looked really cool... until I looked up the pricing and found it nearly $200(!).

Guess I will just go back to working on a WS2812 grid I have around... Even if I end up making it a "mostly" dumb HTTP method it would be parts I have laying around the house.

Dammit @morningz I did not need to see this! Great demo. I am not a programmer, but I think even I could hack together notifications on this device.

I dug through my junk drawer and found a strip of 30, what I belive to be, WS2811 and an ESP8266 Dev board.

I havent really had an arduino project since the UNO Rev 3 was the coolest board around...

So it might take some work but I am going to try to get some level of HTTP led control as a POC.

There are plenty of different firmwares to run on ESP8266 boards with http API control for WS8212 strips, Tasmota has some rudamentary support, but it is limited in how easy it is to control individual LEDs. You should be able to find something which doesn't need any programing skills even. @jchurch, didn't you use something good before?

I ran intothis yesterday on youtube

lots of fideling but very customizable.

You can use WLED for visual notifications. I personally have 3 setup in my house for effects but you can do alot with them. There is a thread here DrZzs talks about them ALOT so definitely visit his youtube channel.

1 Like

I just put together some code using async web server library for arduino. I am going to see if I can put a write up for it here tomorrow. Allows you to hook a ESP2866 to a set of WS2812s and call Http://IP/led?LED=1&R=255&B=255&G=255

That would set the number 1 led to full white.

Not the prettiest but I didnt feel like parsing JSON.

Can probably setup a hacky looking demo as well. My idea is to build an enclosure the segments each led into its own compartment and then make an overlay with labels for each one.

1 Like

That was just the basic type of thing I was thinking for mine, just send it the color for which LED. Although my plan was colors first, then LED because I figured if I add LED x to y it would be easier to have at the end in case it was not needed.

Because these are HTTP parameters the order doesn't matter and they are setup in such a way that if they are omitted the corlor is set to 0 and the led is set to the led beyond your last led. So just calling an led by itself will turn it off

OK, here is the short and sweet build write-up. The assumption here is that you have some basic Arduino knowledge.

Starting with a Strip of WS2812b’s that I had and an ESP8266 that has a voltage regulator and serial adapter already attached. https://www.amazon.com/dp/B01N3P763C/ is the exact one I have.

This chip uses a CH340 serial adapter. Instructions for installing drivers can be found below

https://learn.sparkfun.com/tutorials/how-to-install-ch340-drivers/all

Once the drivers are installed, the Board needs to be added to IDE.

Start Arduino and open Preferences window. And Enter http://arduino.esp8266.com/stable/package_esp8266com_index.json into Additional Boards Manager URLs field. You can add multiple URLs, separating them with commas.

Open Tools Board Boards Manager and install esp8266 by ESP8266 Community

Then you will need to install the following libraries

then install and code below.

The LEDs need to be hooked up to 5v Ground and the pad labeled D2.

// Load libraries
#include <ESP8266WiFi.h>
#include <Adafruit_NeoPixel.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>

// Replace with your network credentials
const char* ssid     = "WifiName";
const char* password = "PASSWORD";

// Set web server port number to 80
AsyncWebServer server(80);


//Setup for Strand
#define PIN 4
#define NUMPIXELS 30
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void notFound(AsyncWebServerRequest *request) {
    request->send(404, "text/plain", "Not found");
}
void setup() {
  Serial.begin(115200);
  // Connect to Wi-Fi network with SSID and password
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  // Print local IP address and start web server
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
    request->send(200, "text/plain", "Hello, world");
  });
  
  pixels.begin();
  pixels.clear();
  pixels.setBrightness(50);
  pixels.show();
  
  server.on("/clear", HTTP_GET, [] (AsyncWebServerRequest *request) {
    request->send(200, "text/plain", "clear");
    pixels.clear();
    pixels.show();
  });
  server.on("/led", HTTP_GET, [] (AsyncWebServerRequest *request) {
    String getled;
    String getr;
    String getg;
    String getb;
    if (request->hasParam("LED")) {
      getled = request->getParam("LED")->value();
    } else {
      getled = NUMPIXELS + 1;
    }
    if (request->hasParam("R")) {
      getr = request->getParam("R")->value();
    } else {
      getr = "0";
    }
    if (request->hasParam("G")) {
      getg = request->getParam("G")->value();
    } else {
      getg = "0";
    }
    if (request->hasParam("B")) {
      getb = request->getParam("B")->value();
    } else {
      getb = "0";
    }
    request->send(200, "text/plain", "set " + getled + getr + getg + getb);
    pixels.setPixelColor(getled.toInt(), pixels.Color(getr.toInt(), getg.toInt(), getb.toInt()));
    pixels.show();
  });
  server.onNotFound(notFound);
  server.begin();
}

void loop(){
}
1 Like

Amazing, thanks. I did some reading and I really need WLED in my life.

I was thinking about something like that too, could look very nice!

I have been doing notifications for several years with serial POS displays. You can usually get them cheap on eBay ($20-$30), and they provide a nice 40 character VDF display. For my latest upgrade, I have been wifi-enabling them with a Wemos D1 and a TTL-RS232 module. They run an ESP8266 web server and I supply them with messages via an HTTP command from a Hubitat driver which is classified as a Notification device.

Recently, I picked up (for $27 via eBay) an LED bus destination sign which I also wifi-enabled (note the external antenna because the sign casing is metal. This is an RS-485 device, so I just use a TTL-RS-485 module.


The key to using these devices is to understand the text formatting commands and add them to the display text in the Arduino code.

3 Likes

Awesome!

I have a 2 line 3 color led marquee I used to use to display status for things at my work. Too large for the house!

I bought IR Led from Amazon. It was $10 when I got this a couple days ago.

https://www.amazon.com/gp/product/B07JP5375R

I made Environment Sensor that double up as Arduino shield. I made a demo for it using IR as an example. It end up to be a fit for this.

This is really a compressed video of what it can do. You can use the Arduino to control what you want to display.

Thanks
Iman

How big is it? If it can handle the outdoors you could use it as a holiday greeting sign.

40 x 6in I used to display instructions for my cheer lights on it. #cheerlights

I need to write a cheerlights app for Hubitat

That sounds pretty awesome. If you get it running again I would love to see a picture!

Here is my super simple demo of my led strip. Complete with Rustic Handwritten labels.

@snell Here is a pick of the LED screen running on top of a TV at one of my old offices.

2 Likes

Nice, thanks for the pictures! That display looks like it does RG (and generally orange then) so that gives more options also. If it is one of the ones that allows custom pixel design uploads you could make it have all sorts of fun things.