Arduino Mystery Message Box: a DIY Wi-Fi Controlled Text Animator With Parola & Blynk
by dziubym in Circuits > Arduino
1957 Views, 33 Favorites, 0 Comments
Arduino Mystery Message Box: a DIY Wi-Fi Controlled Text Animator With Parola & Blynk

Ever seen a plain, featureless box suddenly light up with animated text as if by magic? In this project, we’ll build exactly that — a sleek, mysterious “message box” powered by an ESP microcontroller, a 32x8 LED matrix, and the powerful Parola animation library. Using the Blynk app, you’ll design and control animated text presentations wirelessly from your phone. This solderless build includes a custom 3D-printed enclosure, step-by-step hardware assembly, Blynk interface setup, and Arduino code integration. Whether you're a beginner looking to expand your IoT skills or a seasoned maker looking for a fun, functional display project, this tutorial has you covered. Let’s bring your messages to life, one animation at a time.
Supplies

Core Components
- ESP8266 or ESP32 Microcontroller
- (e.g., NodeMCU, Wemos D1 Mini — for Wi-Fi connectivity and Arduino compatibility)
- 32x8 LED Dot Matrix Display
- (4 daisy-chained MAX7219 modules)
Power & Wiring
- Power Source
- Option 1: Rechargeable 9V battery-shaped power bank (with USB charging port)
- Option 2: Standard 9V battery + snap connector
- Mini Breadboard
- (for solderless prototyping)
- Male-to-Female DuPont Jumper Wires
- (to connect the display, ESP, and power)
- Male Header Pins
- (for battery plug modification if needed)
️ 3D Printing
- 3D Printer & Filament
- White & Black PLA (for the front diffusion panel and case parts)
- 3D Printed Case Parts
- Front diffusion panel (multi-color print: white base, black overlay)
- Main body/case
- Internal mounting panel
- Back cover
Software & Apps
- Arduino IDE
- (with required libraries installed: Parola, MD_MAX72XX, Blynk, ESP8266WiFi or WiFi.h depending on your board)
- Blynk IoT App (Blynk 2.0)
- (Available on Android/iOS for creating and running the control interface)
- Tinkercad (Optional)
- (for virtual prototyping/simulation)
Introduction & Project Overview


Let’s build something cool — a mysterious, sleek black box that looks completely inert until it suddenly lights up and animates custom text messages from your phone. This Wi-Fi-controlled project combines a 32x8 LED matrix, an ESP microcontroller, and the powerful Parola library for dynamic animations. No soldering is required, and you'll control everything through a custom dashboard built using the Blynk app.
You’ll 3D print a custom enclosure, connect the components using a breadboard, and program everything in Arduino — even customizing how the text enters and exits the screen. Whether you're into creative display builds, IoT, or just like making gadgets with a wow factor, this one's for you.
📺 Prefer video tutorials?
You can follow this project step-by-step on YouTube:
- ▶️ Part 1 – Hardware Build & Demo: https://youtu.be/glZMTHiaN-E
- ▶️ Part 2 – App Setup & Arduino Code: https://youtu.be/UGJix7NRPFs
💡 Related videos for deeper understanding:
- 📚 Parola Library Explained (text animations): https://youtu.be/oZDFh95Tt_E
- 🔧 Blynk Setup Basics (templates, virtual pins, etc.): https://youtu.be/NDUa-hrw1JA
Let’s get started!
Gather Your Materials
Gather Your Materials
Before we dive in, let’s round up the components you’ll need. This is a solderless project, so most parts are reusable and beginner-friendly.
Core Parts:
- ESP8266 or ESP32 board
- 32x8 LED Matrix (4 x MAX7219 modules daisy-chained)
- Mini breadboard
- 9V battery or battery-shaped power bank
- Jumper wires (male-to-female)
3D Printing:
- PLA filament in black and white
- STL files for the enclosure (front panel, body, inner mount, and back cover)
Software:
- Arduino IDE with required libraries
- Blynk IoT mobile app
Circuit Assembly

Start by placing the ESP board onto the mini breadboard. Then wire the matrix module to the ESP using DuPont jumper cables.
Power is provided through the VIN pin if you use a 9V battery or power bank — make sure to connect it properly using a battery snap or male headers. Connecting the wrong pin may damage the microcontroller.
3D Printing the Enclosure


This project really shines thanks to its stylish 3D-printed case. The most important part is the front diffusion panel, which should be printed using a filament color change:
- First few layers in white (for LED diffusion)
- Remaining layers in black (for the stealthy box look)
The case consists of:
- Front panel (LED diffusion with grid)
- Main body
- Inner mount (holds the microcontroller and battery)
- Back cover
You can use Tinkercad to preview and simulate assembly if needed.






Fit the LED matrix into the front panel from the back. Next, attach the inner mount and seat the microcontroller and power source in place. Carefully route the jumper wires through the available space and test that everything connects properly.
Once wired, seal the case with the back cover. You now have a mysterious, clean-looking box — no screens, no buttons visible, just a black monolith… until it lights up.
Setting Up the Blynk App


Install the Blynk IoT app and create a new template and device. Then add the following widgets and link them to virtual pins (V0 to V9):
- Text Input (V0): Enter text to animate
- Dropdowns (V1, V2): Entrance and Exit animations (numeric IDs)
- Duration & Pause (V3, V4): Set animation speed and pause
- Justification (V5): Align text (left, center, right)
- Terminal (V6): View saved steps
- Buttons:
- Add Step (V7, push mode)
- Run Animation (V8, switch mode)
- Reset (V9, push mode)
Once widgets are configured, you’re ready to start building animations from your phone.
Writing and Uploading the Code
Let’s bring everything to life. You’ll upload a custom Arduino sketch that connects your ESP board to the Blynk Cloud and drives the LED matrix using the Parola library.
🧠 Core Concepts
- Animation steps are stored in a custom struct
- Each step has: text, entrance & exit animation, speed, pause, and alignment
- The Blynk interface sends this data to your ESP via virtual pins
- The code uses handlers (e.g., BLYNK_WRITE(V0)) to update the struct
- The loop plays back the animation sequence when "Run Presentation" is toggled
🛠️ Libraries Required
Install the following in Arduino IDE:
- MD_Parola
- MD_MAX72XX
- Blynk (use the latest Blynk 2.0 library)
- ESP8266WiFi or WiFi.h for ESP32
📥 Code Highlights
- animationSteps tracks how many messages you’ve added.
- The animList[] array stores up to 8 messages (you can expand it).
- The generateAnimationDetails() function sends a readable preview to the terminal.
- Pressing Reset (V9) clears everything and resets the widgets.
You’ve already provided a solid implementation. Users just need to:
- Replace Wi-Fi credentials and Auth Token
- Upload via Arduino IDE
- Power the device and open the Blynk app
Running the Animation


Now the fun part! Open the Blynk app:
- Enter your first message and select entrance/exit animations.
- Tap Add Step — this saves it to memory.
- Repeat to add more steps (up to 8 total).
- Tap Run Presentation to start the animation loop.
- To clear everything, tap Reset Presentation.
Messages scroll, wipe, blink, and fly into view — straight from your mysterious box.
Final Thoughts & Customization Ideas

You’ve now built a wireless-controlled, animated message display that hides in a minimalist, blacked-out enclosure. Some ideas to take it further:
- Add a motion sensor to trigger messages
- Control it with voice (via Google Assistant or Alexa)
- Expand the matrix for a larger display
- Display weather, time, or social notifications
If you enjoyed this project, don’t forget to share your build, remix the design, or support through Patreon or YouTube. Happy making!