Json-enabled WiFi screen

Along with the power monitoring project I’ve been working on, I’ve also developed a simple Internet-enabled screen. It uses another ESP8266, a few wires, and a 16×4 LCD display.

Not the worst looking thing, but not exactly cute, either.
Seems like a good candidate for 3D printing.

The display used is one of the standard HD44780 compatible ones – so you can use the LiquidCrystal library, which is one of the standard libraries in the Arduino IDE.  Wiring diagram to a standard Arduino is available here, as well as the library reference and documentation. You can find these types of displays in various sizes, ranging from $5 to $20. You’ll also need a 10k potentiometer to control the display’s contrast.

The ESP8266 variant used is the WeMos D1 Mini – http://www.wemos.cc/Products/d1_mini.html.  It’s available online for about $4.

For the box, I used a couple of scrap pieces of 1/4 inch oak plywood, and a scrap piece of 1×8 pine board. I measured the screen, cut, and gave the USB wire a small hole. Here it is painted and all put together:

To help parse JSON, I used this fantastic library, called Arduino JSON (clever name). It’s pretty easy to use and is well documented.

To program an ESP8266 using the Arduino IDE, you can also use a custom board type available here.

My simple code is available on my Github page. It interprets the JSON, formats it to fit on the screen, and scrolls through it.  Someday I might add a button or rotary encoder to help control it.