One thing that all parents are taught to hate from the beginning of time is a light left on. From a lamp to the dome lights in the back seat, lights that are left on result in dead batteries or higher electric bills. The purpose of our smart motion light is to detect these occurrences and keep them from becoming a larger issue.
The image above shows the first argon device that detects the presence of light using a photoresistor sensor. The photoresistor is outputted to the LED light. If the LED light is on, the photoresistor detects light and if the LED is off, there is no detected light. This sensor detects the light then speaks with the second Argon device which detects the presence of motion using a motion sensor. These two argons speak with one another to turn off the light if light is detected and motion is not detected. This process is completed using a servo motor wired to the first Argon that will flip the light switch in the desired room. If motion is detected, the light will stay on. This allows the lights to stay on when the room is in use. The live data from the second Argon device is sent to Adafruit as shown in the graphs below. In the graph. if motion is detected the output is a value of four. This is due to the digital output D4 that is reading the output of the sensor. If no motion is present a value of zero is produced.
The third Argon uses a voltage sensor to detect the presence of electricity in the light. This acts as a secondary effort to detect light if the photoresistor is not working correctly. From experimentation, the photoresistor is sensitive to light change and occasionally picks up light from other rooms. This third Argon talks with the first Argon to accurately detect the presence of light. The third Argon will then send a notification through Particle Publish to notify the user that the lights have been successfully turned off. This data is also sent to Adafruit to show the user when the light was left on, and how long the light was left on. If there is voltage present a value of 16 will be shown on the graph, and if there is no voltage a value of zero is outputted. This data can be used to update the Argon code to delay the loop if needed.