Chen Liang's IoT Emoji Sign Communicates in Pixels — on a Tiny Waveshare ESP32-S3-Matrix
Revisiting an earlier project which required the user to solder their own LED matrix, this new and improved smart sign really shines.
Maker Chen Liang has released a guide demonstrating how to build a quick and easy Internet of Things (IoT) "emoji sign" — powered by a tiny Waveshare ESP32-S3-Matrix smart display.
"In my previous project, IoT Emoji Sign, [I] use a small-size [Espressif] ESP8266 dev board [and] the corresponding LED matrix is small too," Liang explains. "It use 3.5×3.5mm size NeoPixel [LEDs], and self-soldering a compact 8×8 LED matrix. It works, but [it's] a little bit too complicated for the beginner. Now Waveshare [has] released a dev device, ESP32-S3-Matrix, that already [has] built-in a much more compact 8×8 LED matrix. You can play it out of the box."
It's that ready-assembled gadget, measuring just 25×25mm (around 0.98×0.98"), that serves as the host for Liang's second take at the IoT emoji sign project — now buildable purely in software, with no soldering required.
To improve the look of the display for pixels that aren't lit, Liang 3D-printed a black frame and then added a pair of filters: a white window film that diffuses the light from each individual LED, and a black film which improves the contrast. The software, meanwhile, is based on the Arduino_GFX library and FastLED — with a user interface aimed at smartphone use lets you pick the emoji you want to display on the LEDs with a simple tap.
"The UI [User Interface], a[n] HTML web page, is mostly the same as my previous project," Liang explains. "But previously it require connect to the dev device softAP [wireless access point] first, then [you] manual[ly] type the IP in the mobile browser to enter the web page. Now it utilize[s] the ESP32RobotWebServer captive portal capability. So once you connect to the softAP, the web page will pop up. The user experience should be much better."
The project is documented in full, including source code and the 3D print file for the frame, on Instructables.