How to Build a Smart Street Light Model for Dark Skies
In this project, we will build a small dark-sky street lighting model using a Kypruino, an LDR module, a warm white LED, and the Kypruino’s onboard NeoPixels. The model was created for a planetarium to demonstrate a better way of lighting streets while helping reduce unnecessary light pollution.
The idea is simple: the street lamp should only turn on when it is dark, it should use a warm light instead of a harsh cold one, and it should be aimed downward rather than into the sky. The house also lights up when the surroundings get dark, making the model more engaging and easier to understand during a demonstration.
This is a great educational project because it combines 3D design, electronics, embedded programming, and environmental awareness in one build.
What the project does
The Smart Street Light Model is designed to simulate a more responsible outdoor lighting setup.
- Automatic activation: the lamp switches on only when the surroundings are dark
- Warm street lighting: the lamp uses a warm LED instead of a cold white light
- House illumination: the Kypruino’s onboard NeoPixels create a cooler white glow inside the house
- Light pollution awareness: the street lamp is designed to direct light downward
- Clean presentation: the lamp wiring is routed underground into the house
The result is a compact demonstration model that reacts to ambient light and visually explains a real-world lighting concept.

Components needed
For this build, you will need:
- 1 × Kypruino board
- 1 × LDR light sensor module
- 1 × warm white LED
- 1 × resistor for the LED
- Jumper wires
- USB cable for programming and power
- 1 × 3D-printed house enclosure
- 1 × 3D-printed street lamp
- 1 × base section for mounting the model
The project also uses the Kypruino’s onboard NeoPixels to light up the house, so no extra LEDs are needed for that part.
How the system works
LDR light detection
The LDR module measures the ambient light level around the model. The Kypruino continuously reads this value and compares it to a chosen threshold.
When the light level indicates that the surroundings are dark enough, the model turns the lights on. When the surroundings are bright, the lights stay off.
Street lamp lighting
The street lamp uses a single warm white LED. When the surroundings become dark, the Kypruino switches the LED on. When the surroundings are bright again, it switches the LED off.
Using a warm LED keeps the electronics simpler while matching the aim of the project: showing a friendlier and more responsible style of outdoor lighting.
House lighting
When the model becomes active, the Kypruino’s onboard NeoPixels also turn on to create a brighter, cooler white glow inside the house. This makes the model easier to see and adds contrast with the warmer street lamp outside.

Designing the model
The main enclosure was designed as a small house in Fusion. This allows the Kypruino and wiring to be placed inside while keeping the outside of the model clean and easy to understand.
The inside of the house was designed to leave space for the board, connections, and wire routing. A separate street lamp was designed next to the house, and a hole under the ground section allows the lamp wires to pass into the house from below. This avoids visible wiring across the surface of the model and helps the final model look much cleaner.
The LDR module is placed on the roof so it can detect the surrounding light level properly.



Wiring the project
Connect the components as shown below.
LDR module
| LDR Module Pin | Connects to Kypruino |
|---|---|
| VCC | 5V |
| GND | GND |
| SIG | A0 |
Warm white LED
| LED Pin | Connects to Kypruino |
|---|---|
| Anode (+) | D10 through a resistor |
| Cathode (-) | GND |
The resistor is important because it limits the current through the LED and protects both the LED and the board.
Built-in Kypruino features
| Feature | Used in project |
|---|---|
| Onboard NeoPixels | House lighting |


Wiring overview showing how the LDR mosule and LED connect to the Kypruino.
Installing the Arduino library
Before uploading the code, install the required NeoPixel library in the Arduino IDE.
- Open the Arduino IDE
- Go to Sketch → Include Library → Manage Libraries...
- Search for Adafruit NeoPixel
- Install it
Uploading the code
Connect the Kypruino to your computer and upload the sketch for the project.
The program does the following:
- reads the LDR value from A0
- checks whether it is dark enough
- turns on the warm street lamp LED
- turns on the Kypruino’s onboard NeoPixels in a cooler white
- turns everything off again when the surroundings are bright
This keeps the code simple while still achieving the intended effect.
Adjusting the threshold
The exact LDR threshold depends on your module and the lighting in the room where the model will be displayed.
In the sketch, the threshold is stored in a variable such as:
int darkThreshold = 500;
You may need to adjust this value until the lamp switches on at the right time.
If your LDR module reads lower values in darkness, use:
if (ldrValue < darkThreshold)
If your LDR module reads higher values in darkness, use:
if (ldrValue > darkThreshold)
Assembling the model
Once the electronics are working, the next step is to install everything into the printed parts.
- Place the Kypruino inside the house enclosure
- Mount the LDR module on the roof
- Install the warm LED inside the street lamp
- Route the lamp wires through the underground hole into the house
- Secure the wires so they do not pull on the LED or sensor
- Close the enclosure and test the model in bright and dark conditions
This layout keeps the final model tidy and makes the demonstration easier for visitors to understand.

Why this project is useful
This build is useful because it turns a real environmental topic into a clear, physical demonstration. Instead of only explaining light pollution in theory, the model shows how a better lighting setup can work in practice.
It helps demonstrate three important ideas:
- lights should only be used when needed
- warmer lighting can be a better choice for outdoor use
- lighting should be directed where it is needed instead of upward into the sky
What students can learn
This project introduces several useful STEM concepts:
- analog sensor readings
- threshold-based decisions
- digital output control
- NeoPixel output
- 3D design and printed enclosures
- practical wiring and assembly
- how electronics can support environmental education
Possible extensions
- Add a second lamp with poor upward lighting for comparison
- Add labels explaining the difference between warm and cool lighting
- Add a button to manually simulate day and night
- Add an OLED display with the current LDR reading
- Add a second sensor to compare indoor and outdoor conditions
Final thoughts
The Smart Street Light Model is a simple but effective way to combine electronics, programming, and 3D design in one educational build. With an LDR sensor, a warm street lamp LED, and illuminated house details, it creates a visual demonstration of how smarter street lighting can help reduce unnecessary light pollution.
It is compact, interactive, and easy to reproduce, which makes it well suited for classrooms, science exhibitions, and public outreach spaces such as a planetarium.
[Optional: Insert code download link here]
[Optional: Insert 3MF file download link here]