LUNARA — the Living Moon
by SUCHIR2004 in Circuits > Microcontrollers
2822 Views, 13 Favorites, 0 Comments
LUNARA — the Living Moon
Every night, without asking permission, the Moon changes. A sliver grows into a half, the half swells into a full silver disc, and then it quietly wanes back into darkness — a slow, silent rhythm that has been running since before there were people to watch it. I wanted a piece of that rhythm sitting on my desk. Not a static decoration shaped like the Moon, but something that actually behaved like it — a surface as old and rough as stone, and a mind as current as the night sky outside my window.
That's what LUNARA is. It's a Moon, cast entirely in white cement, cratered and imperfect the way the real one is, mounted in a frame and lit from within by 27 individually addressable LEDs. Underneath that cement surface, an ESP32 keeps time, checks the sky, and decides how the Moon should look right now. A small OLED display on the base quietly reports the current time alongside the Moon's real phase — both the name of the phase (Waxing Crescent, Full Moon, Waning Gibbous, and so on) and a small graphic icon of it, like a caption for what the light above it is doing. Connect it to Wi-Fi, and LUNARA stops being a lamp and starts being an instrument: it hosts its own web server, right on the device, letting me reach into the 27 LEDs from any browser and dial in colors, brightness, and animations by hand — no app, no cloud account required.
This is where the project meets the contest. The brief asks for stone, concrete, and cement used in thoughtful, inventive ways — sculptural pieces that explore form and texture as much as structural ones. LUNARA is built around exactly that tension: cement is a material everyone associates with sidewalks and foundations, permanence and mass, not with something that sits on a nightstand and glows. Choosing white cement specifically, and then sculpting it by hand instead of relying on a mold to do the work for me, was as much a statement as a construction decision — proving that a material defined by weight and permanence could also carry something as delicate and constantly shifting as moonlight.
The motivation: transformation, not just illumination
The real pull behind this project wasn't just "I want a Moon lamp." It was the transformation itself — watching a grey, lifeless block of cement become something that glows in the dark like it has its own light source. There's something almost unbelievable about that shift the first time you see it happen: a material you'd normally walk past on a sidewalk, dense and cold and completely inert, suddenly lit from within, throwing soft light across a room the way the real Moon throws it across a landscape. That contrast — dead weight becoming living light — is the whole emotional core of LUNARA, and it's what kept me going through the slower, messier parts of the build.
That transformation happens twice, really. First physically: a plain cast sphere, sanded and grey, turned into a cratered lunar surface by hand, crater by crater, until it stopped looking like a construction material and started looking like a piece of the sky. And then a second time, electrically: that same textured cement, dark and unremarkable in daylight, comes alive the moment the LEDs switch on behind it — every crater catching light differently, the whole surface glowing in the dark the way only something genuinely dimensional can. Seeing a "dead" material like cement hold onto that presence in the dark, glowing on its own instead of just reflecting light, was the moment the project stopped being a build and started feeling like the thing I set out to make.
Why cement, why the Moon
It started with something simple: looking up. The Moon is the one astronomical object almost everyone has a relationship with, whether they think about it or not. No telescope, no dark-sky location, no app required — it's just there, changing shape on its own schedule, mostly noticed in passing. The more I studied close-up photographs of it, the more I realized how much texture gets lost when it's reduced to a smooth circle in a drawing or a plastic lamp. The real Moon isn't smooth — it's beaten up, craters overlapping craters, ridges catching light unevenly. That roughness felt like the actual subject, not a detail to smooth over.
Most Moon lamps on the market are printed plastic spheres with a uniform glow — pleasant, but flat. I wanted something that looked like it had actually been through something, and that ruled out plastic immediately. White cement solved the texture problem in a way nothing else could, and it did it in two distinct stages. The Moon was first cast as a smooth sphere in a mold — a clean base form with none of its eventual roughness. The craters came after, carved and worked into that surface by hand while the cement could still be manipulated, pressing and digging the way a sculptor works a form rather than letting a mold define it. Casting gave the Moon its geometry and structural integrity; carving gave it its identity. Skip the hand-worked stage and it stays a plain grey sphere — no different from any other cement casting.
From sculpture to instrument
A textured cement sphere on its own is still just a sculpture, however convincing. What turns LUNARA into something alive is everything built in behind it:
- 27 individually addressable LEDs, mounted behind and around the cement shell, giving control over brightness and color at a resolution a single bulb never could.
- An ESP32 as the brain — enough horsepower to hold a Wi-Fi connection, host a web interface, and run LED animations all at once.
- An SSD1306 OLED display on the front face of the base, showing the current time plus the real lunar phase — spelled out by name and rendered as a small icon — so LUNARA can tell you what it's doing without opening an app.
- A self-hosted web server running directly on the ESP32, reachable from any browser on the network, giving full manual control over color, brightness, and animation across all 27 LEDs — individually if I want.
The moment LUNARA connects to Wi-Fi, the ESP32 syncs its clock over NTP and calculates the actual current lunar phase, pushing it straight to the OLED — waxing, full, waning, new, tracked against the real cycle happening outside. The lighting itself stays under manual control through that web interface; it's not a scientifically exact reproduction of lunar color (RGB LEDs can only approximate that), but between the phase the OLED reports and the lighting I dial in through the browser, LUNARA gives me an astronomically informed way to actually respond to the sky, rather than ignoring it.
The cement doesn't change. It won't crack, fade, or need replacing because a trend moved on — that's the permanence the contest is built around. What changes is everything running quietly beneath it: the phase ticking forward night after night, the display updating, the LEDs waiting for the next command. A static material, built to outlast trends, made to host something that never stops moving.
Building the physical Moon turned out to be its own project entirely — casting the white cement sphere, then carving in every crater by hand — and that's where the real story, and the rest of this Instructable, starts.
Supplies
Electronics
- ESP32 Development Board
- SSD1306 OLED Display
- 27 × NeoPixel / WS2812B LEDs
- 500 mAh Li-Po Battery
- TP4056 Li-Po Charging Module
- Slide Switch
- Connecting Wires
- Solder and Heat-Shrink Tubing
Moon Construction
- White Cement
- Water
- Container for mixing the white cement
- Sandpaper for surface finishing
️ 3D-Printed Parts
- Moon Tray
- Moon Tray Holder
- Moon Stand
- Moon Stand Lid
️ Additional Supplies
- Soldering equipment
- Screws/fasteners
- Adhesive
- Mixing/stirring tool
- Protective gloves
- Safety glasses
3D Designing the Parts in Fusion 360
I designed the main structural parts of the LUNARA Moon Lamp using Autodesk Fusion 360. The main objective was to create a custom structure that could securely hold the Moon while providing enough space for all the electronics.
- Designed a custom Moon tray to hold and support the cement Moon.
- Designed a stand/base for the complete Moon lamp.
- Created an internal compartment in the stand to accommodate the ESP32, OLED display, battery, TP4056 module, and wiring.
- Designed dedicated spaces and supports for the NeoPixel LEDs.
- Carefully planned the dimensions and placement of the components so everything could fit properly.
- Designed the parts with 3D printing in mind.
- The completed CAD models were then prepared for 3D printing and assembly.
Software Used: Autodesk Fusion 360
Output: Custom 3D-printed Moon tray and electronics stand.
3D Printing the Parts
After completing the designs in Autodesk Fusion 360, I 3D printed the custom parts using the Bambu Lab A1 Mini. The Moon tray was printed in Natural White PLA, while the stand and all other parts were printed in Pitch Black PLA.
Print Settings
- 3D Printer: Bambu Lab A1 Mini
- Filament: PLA
- Moon Tray: Natural White PLA
- Stand & Other Parts: Pitch Black PLA
- Nozzle: 0.4 mm
- Layer Height: 0.20 mm
- Wall Loops: 3
- Infill: 15%
- Infill Pattern: Gyroid
- Top Shell Layers: 5
- Bottom Shell Layers: 5
- Supports: Not required
- Build Plate: Textured PEI Plate
- Print Orientation: Flat side placed on the build plate where applicable
- Bed Adhesion: Brim not required
- Print Speed: Standard PLA profile
- Nozzle Temperature: As set by the Bambu PLA profile
- Bed Temperature: As set by the Bambu PLA profile
- Slicing Software: Bambu Studio
- Design Software: Autodesk Fusion 360
The printed parts were then checked for proper dimensions, fit, and assembly before moving on to the next stage of the project.
Preparing the White Cement for the Moon
The most important part of this project was finding the right white cement consistency. Before making the final Moon, I experimented with multiple cement-to-water ratios to achieve a mixture that was smooth enough to shape, yet strong enough to hold the detailed lunar texture after curing.
Materials Required
- White Cement – 500 g
- Clean Water – 300 ml
- Mixing Container
- Mixing Stick or Spatula
- Gloves (Recommended)
Finding the Perfect Mix
I didn't use the first mixture I made. Instead, I tested several batches with different amounts of water and white cement until I found the consistency that worked best for this project.
After multiple trials, I reached the conclusion that:
500 g White Cement + 300 ml Water provides the ideal consistency for creating the Moon.
This ratio produced a mixture that was:
- Smooth and easy to mix.
- Thick enough to hold its shape.
- Soft enough for detailed wet carving of craters and surface textures.
- Strong enough to dry into a solid Moon without losing details.
Mixing Process
- Add 500 g of white cement into the mixing container.
- Gradually pour in 300 ml of clean water instead of adding it all at once.
- Stir continuously until the mixture becomes smooth and lump-free.
- Keep mixing until it reaches a thick, creamy consistency suitable for shaping the Moon.
- Once the mixture is ready, immediately move on to the wet carving process before the cement begins to set.
💡Tip
500 g White Cement + 300 ml Water was the best ratio I found after several experiments. It provided enough working time for carving realistic lunar craters while maintaining a strong and durable final structure.
Pouring the Mixture Into the Moon Tray
Step 4: Pouring the Mixture into the Moon Tray
This step was done immediately after preparing the white cement mixture. I did not wait between mixing and pouring because the cement needed to remain in a workable condition for proper shaping and carving later.
Pouring Process
- Immediately after completing Step 3, I poured the entire prepared mixture into the Moon tray.
- I made sure to pour the mixture evenly across the tray.
- After pouring, I gently tapped the tray from different sides to help the mixture spread into every corner.
- The tapping also helped the cement settle and level itself naturally.
- I continued tapping until the mixture reached a uniform level across the tray.
- Special attention was given to removing trapped air bubbles, as they could create holes or weak spots in the finished Moon.
- I kept gently tapping and settling the mixture until no obvious air bubbles were coming to the surface.
- I checked the entire tray to make sure the mixture had reached all corners and areas evenly.
- I continued this process until I was satisfied with the level, distribution, and bubble-free surface.
- Once the mixture was properly settled, it was ready for the next stage: wet carving the lunar surface.
💡 Important Tip
Do not wait after preparing the mixture. Pour it into the Moon tray immediately, then gently tap and settle the tray until the cement is evenly distributed and trapped air bubbles have been removed.
Creating the Moon Texture and Drying the Cement
Once the cement mixture was evenly settled in the Moon tray, I moved on to creating the craters and rough lunar surface texture. This step gives the Moon its natural and realistic appearance.
🌕 Creating the Craters
- To create the craters, you can use any smooth, round, sphere-shaped object that fits the desired crater size.
- Alternatively, you can use your finger to create the crater shapes directly.
- Gently press the object or finger into the wet cement to form circular depressions.
- Create craters of different sizes and depths to make the surface look more natural.
- Avoid making the craters perfectly uniform, as real lunar surfaces have irregular formations.
🪨 Creating the Rough Moon Surface
- To create the rough and uneven texture of the Moon, gently tap your finger over the cement surface.
- You can also use a small piece of cotton or a sponge to create a more irregular texture.
- Lightly press or tap the surface rather than dragging the material.
- Continue adding texture until the surface starts to resemble the rough, uneven appearance of the Moon.
- Use the provided GIF/image as a visual reference while creating the texture.
- Take your time and keep the texture irregular for a more realistic result.
⏳ Drying the Moon
- Once the desired craters and surface texture have been created, carefully place the Moon in a dark, dry place.
- Leave it undisturbed for approximately 24 hours.
- Avoid moving or touching the Moon during this period so the surface details are not damaged.
- After 24 hours, check that the cement has dried and the Moon has become firm enough to handle.
- The Moon is then ready for the next stage of assembly and finishing.
💡 Tip: Don't try to make the surface perfectly smooth or symmetrical. The small imperfections, random craters, and uneven texture are what give the cement Moon its natural character.
Understanding the Code
While the cement Moon is drying and curing, I started working on the electronics and programming part. The ESP32 is the brain of LUNARA and is responsible for controlling the 27 NeoPixel LEDs, OLED display, Wi-Fi, Moon phase calculation, animations, and web control interface.
Instead of simply uploading a large program without understanding it, I divided the code into different functional blocks to make the complete system easier to understand.
1. Library & Hardware Configuration
The first block includes the libraries required for Wi-Fi, the web server, NeoPixels, OLED graphics, and time functions.
The hardware pins and display/LED configuration are then defined:
This configures 27 NeoPixels on GPIO 5 and the 128×64 OLED using I2C on GPIO 21 and 22.
2. NeoPixel & OLED Setup
The code creates objects for controlling the LED strip, OLED display, and web server.
This allows the ESP32 to communicate with all three major parts of the system: lighting, display, and web interface.
3. Individual LED Color Control
Each of the 27 LEDs has its own RGB color value stored in an array.
This makes it possible to control the LEDs individually rather than treating the entire strip as one light source.
4. Moon Phase Calculation
The code uses the current date and a Julian-date-based calculation to estimate the current lunar phase.
The calculated phase is then mapped to one of eight Moon phases:
The eight phases and their index mapping are directly implemented in the code.
5. Drawing the Moon on the OLED
The OLED doesn't use an image file for the Moon. Instead, the Moon graphic is drawn dynamically using circles and rectangles.
Different black shapes are then used to mask portions of the white circle depending on the current phase.
For example, the waxing crescent is created using:
The program therefore changes the OLED Moon graphic automatically according to the calculated phase.
6. OLED Information Display
The main OLED screen is divided into two sections.
The left side shows the current time, Moon phase name, and phase index:
The right side displays the graphical Moon phase:
This creates a compact astronomical information display directly on the 128×64 OLED.
7. Color Presets
The program includes 12 built-in color presets. Each preset assigns an RGB value to all 27 LEDs.
For example:
The selected color is then applied to every LED:
8. Web-Based Control Panel
One of the main features of LUNARA is that the ESP32 itself hosts the control webpage.
The webpage provides controls for:
- Preset colors
- Master brightness
- Animations
- Individual LED colors
- All LED colors
- Live Moon phase
- Local time
The webpage is stored directly inside the ESP32 program as HTML/CSS/JavaScript.
The individual LED controls are generated for all 27 LEDs:
9. Web Server Commands
Different URLs are used to control different functions:
This creates a simple API between the webpage and the ESP32.
For example:
10. LED Animations
The code contains 10 different animations:
The active animation is selected through:
11. Brightness Control
The web interface can change the overall brightness of the NeoPixel strip.
This allows the brightness to be adjusted without changing the individual LED color values.
12. Wi-Fi & NTP Time
During startup, the ESP32 connects to Wi-Fi and then synchronizes the time using NTP servers.
The timezone is configured for India:
NTP synchronization uses:
13. Main Loop
Finally, the loop() function continuously manages all the different functions of LUNARA.
The loop handles web requests, changes the OLED display after the startup IP screen, periodically recalculates the Moon phase, refreshes the OLED, and runs the selected animation.
🧠 Overall Code Flow
This programming stage gives LUNARA its smart functionality, while the cement Moon continues to dry and cure in parallel.
Uploading the Code to the ESP32
Once the code was prepared and understood, I programmed the ESP32 using the Arduino IDE. Before uploading the program, I installed the required ESP32 board package, USB driver, and libraries needed by the project.
💻 Software Required
- Arduino IDE
- Used to write, compile, and upload the code to the ESP32.
- Install the latest Arduino IDE version compatible with your computer.
🔧 ESP32 Board Package
- Open Arduino IDE.
- Go to File → Preferences.
- Find Additional Boards Manager URLs.
- Add the official Espressif ESP32 package URL:
- Click OK.
- Go to Tools → Board → Boards Manager.
- Search for esp32.
- Install esp32 by Espressif Systems.
- After installation, select the appropriate ESP32 board from:
- Tools → Board → ESP32 Arduino.
🔌 USB Driver
Depending on the USB-to-Serial chip used by the ESP32 development board, the appropriate driver may be required.
Common USB-to-Serial drivers include:
- CP210x USB to UART Driver
- CH340/CH341 USB Driver
- FTDI Driver — only if your particular board uses an FTDI interface.
After installing the appropriate driver:
- Connect the ESP32 to the computer using a data-capable USB cable.
- Open Device Manager in Windows.
- Check Ports (COM & LPT).
- Identify the COM port assigned to the ESP32.
📚 Required Arduino Libraries
The LUNARA code uses the following libraries:
- WiFi
- Used to connect the ESP32 to the Wi-Fi network.
- Included with the ESP32 Arduino board package.
- WebServer
- Used to create the web server hosted directly on the ESP32.
- Included with the ESP32 Arduino core.
- Adafruit NeoPixel
- Used to control the 27 individually addressable NeoPixel LEDs.
- Adafruit GFX Library
- Provides the graphics functions required for the OLED display.
- Adafruit SSD1306
- Used to control the 128×64 SSD1306 OLED display.
- Time
- Used for time synchronization and time-related functions.
- Math
- Used for mathematical calculations involved in the Moon phase calculation.
The libraries used by the actual LUNARA code are visible at the beginning of the project source file.
📦 Installing the Libraries
For the libraries that are not included with the ESP32 core:
- Open Arduino IDE.
- Go to Tools → Manage Libraries.
- Search for Adafruit NeoPixel.
- Install it.
- Search for Adafruit GFX Library.
- Install it.
- Search for Adafruit SSD1306.
- Install it.
- Restart Arduino IDE if required.
⚙️ Selecting the ESP32
After connecting the board:
- Go to Tools → Board.
- Select your ESP32 board model.
- Go to Tools → Port.
- Select the COM port belonging to your ESP32.
- Keep the remaining settings according to the selected board and standard ESP32 configuration.
⬆️ Uploading the Code
- Open the LUNARA .ino file in Arduino IDE.
- Make sure all required libraries are installed.
- Select the correct ESP32 board.
- Select the correct COM port.
- Click Verify to compile the program and check for errors.
- If compilation is successful, click Upload.
- Wait for the compilation and upload process to finish.
- If the IDE asks you to put the ESP32 into download/boot mode, press and hold the BOOT button while the upload begins, then release it when programming starts.
- Once the upload is complete, restart the ESP32.
💡 Tip: If the ESP32 is not detected by the computer, first check the USB cable and then install the USB-to-Serial driver used by your particular ESP32 board.
Downloads
Understanding the Connections
After uploading the code to the ESP32, the next step is to understand how all the electronic components are connected. The wiring is designed to allow the ESP32 to control the 27 NeoPixel LEDs and OLED display, while the battery and charging circuit provide portable power.
🔌 Main Connections
1. ESP32 → NeoPixel LEDs
- ESP32 GPIO 5 → NeoPixel DIN (Data In)
- ESP32 GND → NeoPixel GND
- 5V Power → NeoPixel 5V/VCC
- The NeoPixels are connected in a data chain, where the data signal passes from one LED to the next.
- The ESP32 controls all 27 LEDs individually through a single data line.
The code defines GPIO 5 as the LED data pin and sets the LED count to 27.
2. ESP32 → OLED Display
The SSD1306 OLED communicates with the ESP32 using I2C.
- OLED VCC → ESP32 power
- OLED GND → ESP32 GND
- OLED SDA → ESP32 GPIO 21
- OLED SCL → ESP32 GPIO 22
The code specifically configures GPIO 21 for SDA and GPIO 22 for SCL.
3. Li-Po Battery → TP4056
The Li-Po battery is connected to the TP4056 charging module for charging and battery management.
The TP4056 allows the Li-Po battery to be charged through its charging input.
⚠️ Important: A TP4056 is a Li-Po charging module; it does not by itself convert the battery voltage into a regulated 5 V output. If the NeoPixels are being powered from a single-cell Li-Po, the actual power path should include the appropriate voltage regulation/boost circuitry.
4. Slide Switch
The slide switch is used as the main power control for the project.
This allows the complete system to be switched ON or OFF without disconnecting the battery.
🔗 Complete Connection Flow
🧠 How Everything Works Together
- The battery provides portable power.
- The TP4056 manages charging of the Li-Po battery.
- The slide switch controls the system power.
- The ESP32 acts as the central controller.
- GPIO 5 sends data to the 27 NeoPixels.
- GPIO 21 and 22 communicate with the OLED through I2C.
- The OLED displays the time and current Moon phase.
- The NeoPixels provide the Moon's illumination and animations.
- Wi-Fi allows the ESP32's web interface to control the lighting.
The code confirms the hardware configuration of 27 LEDs on GPIO 5 and the OLED on SDA 21 / SCL 22.
Assembling Everything in the Enclosure
Once the cement Moon has completely dried and all the electronics are ready, assemble everything inside the 3D-printed enclosure exactly as shown in the images.
- Install the NeoPixel Strip:
- Stick the 27-LED NeoPixel strip securely along the designated inner edge of the Moon tray/enclosure. Make sure the LEDs are evenly positioned and firmly attached.
- Route the Connection Wire:
- Pass the NeoPixel connection wire through the provided hole in the enclosure, as shown in the images. This keeps the wiring organized and allows the connection to reach the electronics inside.
- Mount the ESP32:
- Place the ESP32 in its designated position inside the enclosure and secure it firmly.
- Secure the Components:
- Use M2 screws and/or suitable glue to fix the electronic components in place. In this project, I used both M2 screws and glue, depending on the component and its mounting location.
- Place the Battery:
- Position the 500 mAh Li-Po battery securely inside the enclosure, keeping it away from sharp edges and the screws.
- Install the OLED Display:
- Fix the OLED module at the front opening of the enclosure so that the display is clearly visible from outside.
- Install the Slide Switch:
- Place the slide switch in its designated opening so it can be easily accessed from outside.
- Arrange the Wiring:
- Carefully route and organize all wires through the available channels and openings. Make sure the wires are not pinched or obstructed when the enclosure is assembled.
- Follow the Reference Images:
- Assemble all components in the same position, orientation, and arrangement shown in the images. Use the images as the main reference for the placement of the ESP32, battery, OLED, slide switch, NeoPixel strip, wiring, and other components.
- Final Check:
- Before closing the enclosure completely, power on the system and verify that the OLED, NeoPixel LEDs, ESP32, and controls are working correctly. Once everything is confirmed, secure the enclosure and complete the assembly.
Assembling and Fixing the Moon
After the cement Moon has completely dried, it is time to fix the Moon securely into the enclosure and then attach the enclosure to the base.
- Fix the Moon Inside the Enclosure:
- Carefully place the dried Moon into its designated position inside the Moon enclosure.
- Apply Super Glue:
- Apply super glue to the contact points where the Moon needs to be fixed, particularly around the area where the LED strip is attached.
- Be Patient While Fixing:
- The cement Moon is quite heavy, so take your time and be patient while the glue sets. Hold the Moon firmly in position and allow the adhesive to bond properly before moving it.
- Check the Alignment:
- Once the Moon is fixed, make sure it is properly aligned and securely held in the enclosure. Also check that the LED strip and its wiring remain in their correct positions.
- Fix the Moon Enclosure to the Base:
- After the Moon is securely fixed inside the enclosure, attach the Moon enclosure to the 3D-printed base. Align it properly with the base and secure it firmly.
- Final Inspection:
- Check the complete assembly to ensure the Moon is stable, the enclosure is securely attached to the base, and nothing moves or comes loose when the project is handled.
How to Use and Interact
Once LUNARA is fully assembled, follow these steps to use and interact with the device.
- Turn ON the Device:
- Slide the power switch to the ON position. The ESP32 will start the system.
- Startup Display:
- For the first 8 seconds, the OLED displays the IP address of the device. At the same time, the 27 NeoPixel LEDs automatically turn on with a warm white Moonlight.
- Moon Information Display:
- After 8 seconds, the OLED switches to display the current time and Moon phase, along with the corresponding Moon-phase graphic.
- Access the Web Server:
- Connect your phone, laptop, or computer to the same Wi-Fi network as LUNARA. Open a web browser and enter the IP address shown on the OLED.
- Control the Moonlight:
- The web server provides an interactive control panel where you can control:
- Different Moonlight shades
- Brightness level
- LED animations
- Individual LED colors
- Control All 27 LEDs Individually:
- Each of the 27 NeoPixel LEDs can be controlled separately, allowing you to create your own custom Moonlight patterns and color combinations.
- Experiment with Different Effects:
- Try different shades, brightness levels, and animations to create different appearances for LUNARA and give the cement Moon a dynamic glowing effect.
Conclusion — Why This Matters
LUNARA is more than just a decorative Moon lamp. It combines handcrafted cement art, 3D printing, electronics, programming, IoT, and astronomy into one interactive project.
The project shows how an ordinary material like cement can be transformed into something dynamic and expressive through technology. The Moon can change its appearance through programmable lighting, while the ESP32 keeps track of the time and lunar phase.
Most importantly, LUNARA represents the idea that every phase has its own beauty. Just like the Moon, we do not have to shine at the same intensity all the time. Change is a natural part of the journey.
“The Moon is the first milestone on the road to the stars.” — Arthur C. Clarke
🌕 A Final Thought
“Even in the darkest night, the Moon reminds us that there is always a little light waiting to shine.”
LUNARA — The Living Moon
Cast in cement. Brought to life with light.
💡 Have an Idea?
This project can be taken much further, and I would love to hear your ideas!
If you think of new features, improvements, or creative ways to make LUNARA even better, please share them in the comment section.
If you have already made something similar, I would also love to see your project!
The comment section is yours! 🌕
And if you feel stuck anywhere while building LUNARA, feel free to ask in the comments. I’ll be happy to help you troubleshoot the problem and figure it out together.
Have you made something similar before? Have an idea for what LUNARA should do next? Let me know below!