My project allows the lights in the room to turn on and off at a certain time and via voice command, phone, and buttons. I decide to create this because of my younger sister. In the morning, my parents would have to wake her up for school because she doesn't want to set an alarm or she would just sleep through it. My parents are sick and tired of having to wake her up. Since her room doesn't allow a lot of natural light in and light is another way to wake up, I created this project to wake her up for school in the morning. This also allowed a lazier way to turn on and off the lights.Enclosure
In order for the servo to stay mounted on the wall, I created a little box for it to stay in. I had to add a couple layers of cardboard around the box to make it secured. I left a gap at the bottom of the box for the wires of the servo. In order to take the servo in and out of the box, I did not glue the bottom. I decide to put the box on a large piece of cardboard. Since there is more surface area connected to the wall, the servo didn't push and lift the entire cardboard off the wall. I stuck the cardboard on the wall using command strips.
I created a box for the breadboard, as well. I did not glue the top of the box (left side of the first image), so I could take out the breadboard whenever I needed to work on it. The wires for the servo and the USB cord comes out of the hole on the side of the box. The holes on the front side of the box are for the buttons. In order to have access to the breadboard, I had to taped it to a cardboard which sticked to the wall via command strip. At first I just taped the back of the box to the cardboard, but after a while the box with the breadboard would slowly fall off the the cardboard. So, I had to add a piece of duct tape to the front.Servo
For the servo, I used popsicle sticks to push the light switch. I took a exacto knife and sawed the ends of each stick until they were close enough that could snap it off easily and cleanly. I uses a hot glue gun to combine multiple pieces together, so it was sturdy. I taped it (2nd picture) to the servo and tested it. It did not work. There wasn't enough pressure on the light switch to turn on or off. It just ended up lifting the servo. I decided to add the extra ends, so it would hit the middle of the top and bottom of the light switch. This time the servo was able to turn the lights on and off. For the code, I spent awhile getting the servo to turn the right amount. When it turned the wrong amount, it would create a vibration sound.Buttons
As time past and I used it, I realized that out of habit I would turn on the lights manually. Sometimes, I didn't want to speak to google home to turn it on. But the popsicle sticks would get in the way, so I had to maneuver my fingers around the popsicle stick to turn the lights on or off. So I decide to add buttons to turn on and off the lights easier. The buttons would stay on the wall close to light switch. There was another small problem. You couldn't mindlessly turn press the buttons because the wires would get in the way. So I created the box for the breadboard. I used chopstick and, similarly to how I cut the popsicle sticks, I cut them into small pieces. I taped the sticks to the button, so I could just press the stick. I created a little box and filled the inside with glue. Then I held on to the boxes on top of the chopstick so it would stay on. I colored the boxes to know which turns on and off. The green button turns on the light, while the red button turns off the light.Ifftt
Using IFTTT, I created 4 applets. The first 2 used IFTTT's time and date widget to trigger an event to turn the lights on at 7:00 am and off at 9:30 pm. The next 2 uses google home to publish an event. You just say certain phrases like "lights off" or "turn off lights" to publish an event in particle, which turns off the light. And vice versa, when you say "lights on" or "turn on lights" to publish an event in particle, which turns on the light.Videos