I use the website SideReel to track which TV shows I need to watch. Recently I finished a PHP script that will check SideReel for me and tell me the names of the shows I’m slackin’ on.
Universal Geospatial Light SwitchMy latest Project Rita addition is an Android app that can turn a light on or off just by pointing the phone at that lamp and hitting on/off. With this app, there is no need to select which light you want to control, your command will always be sent to the light that you are looking at. This was accomplished by surveying the phone’s compass and GPS sensors. Those readings are then processed by a script that understands the layout of the room and then, using x10, sends the command to the appropriate appliance. The entire operation occurs in less than a second. I believe that this same concept could be applied to all other controllable home devices. What if with one app you could flip on a light, turn up one speaker and lower the thermostat by just pointing your phone at the thing you want to change?
Old picture of wall mounted control panel for lights, music, etc.
(Touchpad + Cyanogen 9 + Inductive Charger + homemade $2 wall mount)
Old picture of Cabinet Projector for viewing new messages, weather, apartment stats
Pico Projector + BeagleBoard + Linux + PHP + JSON
The RitaBoxes have one main feature, to receive short messages and speak them out loud. RitaBoxes connect to the internet over wifi and are constantly checking for new messages. Once a Ritabox receives a new message, it turns on an LED on the front of the unit. The box has two buttons, one that will play the message and another that will repeat the last message it spoke. If all new messages have been played, the RitaBox will say one of the two hundred pre-set fun/mean messages. Messages can be sent to the RitaBoxes either by SMS or through a website. When submitting a message, the sender can specify if this message should go to all boxes or one specific box. So far, I have made four RitaBoxes as Christmas presents for some of my family members (Christmas gift recipients have no choice but to be a test subject).
The main piece of hardware used is a Raspberry Pi Model B (512 ram). An lm386 op amp circuit was added to drive the speaker in the case. This op amp was chosen because it is able to run off of the 5v supply from the Raspberry Pi’s GPIO so that the only piece in the box that needs power is the Pi. The Raspberry Pi’s GPIO pins were used to also drive the LED and push buttons using the WiringPi library. Wifi is being handled by an Edimax EW-7811Un USB dongle.
Pine boxes were constructed and finished to house all of the components for this project.
The server-side software for the RitaBoxes was done in PHP and mySQL. GoogleVoice is being used to receive SMS messages. The client side is running Raspbian and the application code is a combination of mySQL, PHP and BASH scripting. The text-to-speech function is being handled by AT&T Lab’s Natural Voices service. Each RitaBox is configured to report health stats (storage use, free ram, running daemons) back to a central manager.
Overall, I have found that the Raspberry Pi is very ideal for this application. Switching to an offline text-to-speech solution like Festival is certainly possible for this project. This would cut down on network traffic, and the dependency on an external service. However, from my experience, I would be sacrificing voice quality. From past testing I know that these boards are capable of running the entire Rita system but at this point it’s a matter of finding simple ways to configure and interface with the boxes that has led me to keep the features list small. I don’t believe that the messaging feature would be practical for many people. However this deployment configuration is allowing me to work towards identifying and resolving the issues in developing an easy to use and stable framework for all of the Rita system functions.