Build a Remote-Controlled Dot Matrix Message Board in 10 Minutes With Just Two Inexpensive Components

First off - I take no credit at all for this project. All praise goes to the code writer David Bird. His code is here.

I needed to be able to send a message to a dot-matrix screen remotely. I found the solution in minutes. It works so well, I had to document it and give credit to its creator.

Components

  • ESP8266 - almost any will do, except the 01 (you'll need access to three digital pins). Indeed, I pulled one of my oldest ESPs out of my drawer - the LoLin NodeMCU Board V3 with minimal memory that costs about US$6

  • A Max7219 4x1 Matrix Module - about US$5.

As you can see, the whole caboodle comes to about US$11.

Setting it up

Readers of this blog don't need to be told how to flash an ESP. The only thing you really need to know is how to connect the pins. I won't take credit for that either; David Bird describes it clearly in his code.

//################# DISPLAY CONNECTIONS ################
// LED Matrix Pin -> ESP8266 Pin
// Vcc            -> 3v  (3V on NodeMCU 3V3 on WEMOS)
// Gnd            -> Gnd (G on NodeMCU)
// DIN            -> D7  (Same Pin for WEMOS)
// CS             -> D4  (Same Pin for WEMOS)
// CLK            -> D5  (Same Pin for WEMOS)

Make sure to insert your own SSID and password. You'll also need the correct Arduino libraries - especially these two: Adafruit_GFX and Max72xxPanel.

Running

Once the code is in your ESP and the pins connected, power everything up. David's code creates a web page on your ESP that's accessible through any browser. All you need to do is find your IP address and type it as your URL.

This is what you'll get.

(Hint for the beginner: To find the ESP's IP address, run the Arduino Serial Monitor just after flashing your code.)

To send your message to the ESP, just type it where indicated and hit Enter. Within a second it will scroll across your screen. (BTW, at first I clicked on "Enter Message" bottom left of the screen. It's a hyperlink, but for me it didn't work. Only when I hit Enter did I get it to work.)

Many thanks, David Bird. Great code and it works perfectly straight from the box!