Smart Street Lights: Using Light and Motion Sensors to Cut Energy Use

Street lights are one of the easiest places for a municipality to save electricity. Many still run on a simple timer or a manual switch, so they come on too early, stay on after sunrise, and burn at full power at 3 a.m. on empty roads. A small controller with a light sensor and a motion sensor fixes all three.
Part 1: Switching on at dusk, off at dawn
A light-dependent resistor (LDR) changes resistance with light. In a voltage divider it gives a voltage that a microcontroller reads on an analog pin. When the reading crosses a darkness threshold, the light turns on.
Two problems appear immediately in real use:
- Flicker at the threshold. At dusk the light level rises and falls slightly with clouds. A single threshold makes the lamp switch on and off repeatedly. The fix is hysteresis: switch on below one light level and off only above a clearly higher one.
- False triggers. A passing cloud, a car's headlights, or a bird's shadow on the sensor can briefly fake night or day. The fix is time filtering: the new condition must hold for a period, for example 30 to 60 seconds, before the controller acts.
The lamp's own light must not reach the sensor, or it will turn itself off at night. Mount the LDR facing the sky and shield it from the lamp.
Part 2: Dimming late at night
Traffic on most roads falls sharply after about 11 p.m. Dimming LED lamps during those hours saves a lot of energy while keeping the road lit. LED drivers with a dimming input (0 to 10 V or PWM) make this simple.
Time of night can come from a real-time clock module, or be estimated from the dusk time measured by the light sensor.
Part 3: Motion boost
A passive infrared (PIR) sensor detects moving warm bodies such as people, animals and vehicles. When it triggers, the controller raises the lamp to full brightness for a set time, then dims back.
This keeps the safety benefit of a bright road when someone is actually there. Pedestrians in particular notice and appreciate it. Mount the PIR sensor so it watches the approach to the pole, not the busy main road, or it will trigger constantly.
A worked energy example
One 60 W LED street light on for 12 hours a night:
| Strategy | Energy per night |
|---|---|
| Full power for 12 h | 60 × 12 = 720 Wh |
| Full power 6 h, then 30 % (18 W) for 6 h | 360 + 108 = 468 Wh |
| As above, with motion boost about 1 h of the dimmed period | 360 + 90 + 60 = 510 Wh |
Dimming alone saves about 35 % in this example. With motion boost the saving is still around 30 %, and the road is bright whenever someone uses it. Across a few hundred poles that adds up to a meaningful part of a municipality's electricity bill.
The savings are even more important for solar street lights. Lower consumption means a smaller battery and panel can last through several cloudy days, which is usually what limits solar lighting in the monsoon.
Reliability in the field
- Use a watchdog so the controller restarts itself if it hangs. Its safe default should be lamp on at full power in the dark: a dark road is worse than a wasted kilowatt-hour.
- Protect inputs from surges. Long cables on poles pick up lightning-induced spikes.
- Seal the enclosure against rain and insects. Most street light failures are water and heat, not electronics.
See the controller
The smart street light project combines an LDR with dusk and dawn filtering, PIR motion boost and late-night dimming, with an automated simulator test that runs it through a full night. For how those tests work, see testing Arduino firmware without hardware.