Street Light System
An Autonomous Cyber-Physical System
This project was inspired by a friend Mei-Chi Shih from Taiwan. He describes his home as a country where electricity is a vital, yet noticeably finite resource. Despite this, lights (including street lights) remain powered all night in locations where little to no foot traffic occurs.
In an attempt to create a project that could theoretically aid in this issue, we worked with another by the name of Nicholas Schaecher to develop a concept for a street light system that conserved power by implementing lessons learned in an Autonomous Cyber-Physical Systems course.
The result is our Autonomous CPS Street Light System.
We began by brainstorming how a traffic system could function autonomously and dynamically in response to input. The result was a system implementing PIR motion sensors to detect pedestrian traffic, and then calculating the speed of said pedestrian in order to activate/deactivate street lights. This would create a system where street lights only consumed power when necessary.
In order to prototype our model we implemented buttons in place of PIR sensors, and LEDs in place of street lights. The system was programmed and powered using an Arduino UNO.
After deciding on the hardware, we began brainstorming how the traffic system would function when confronted with different scenarios. I then took this information and constructed the following state diagram.
I then wired the street light system concept based on the previous wiring diagram.
The state diagram was converted into software and loaded onto the Arduino UNO.
Here I can be seen testing the model. The output of the serial monitor is displayed in the top left.
In order to operate the system I must cover the photo-resistor in order to simulate darkness, as this system shuts off when daylight is detected.
Here is a GIF illustrating how a pedestrians speed is taken into account when calculating the speed at which street lights will turn off. This ensures they stay lit beneath the pedestrian.
The complete software can be viewed using the GitHub link below.