The idea behind this solution is to use a Raspberry PI as a server that ensures the communication between different devices in the house and the user through smartphones, internal web server, motion and voice control.
As a base the Raspberry is working through and C++ application that acts as a server and the devices are made based on Atmel microchips programmed to interpret the sensor data and the messages from the server. The communication is made through I2C and I am working at the moment on a RF communication protocol that uses the same idea as the I2C protocol.
The design of the system is modular and this makes it possible to connect new devices to the I2C line and with minimal changes to the server application the system will know how to control them and how to display them to the user. In this case the Atmel Chips will work as a driver and the Raspberry PI can be updated to do new things through sending messages to the devices. A simple application that turns on/off the lights can be updated to have a times or to react to different environment changes.
One more challenge of the project is to hide all the devices so that they can be used only through the user applications without removing the normal interaction that the human is accustomed with. For example the light switch will look the same and it will have the same switches with the same functions but there will also be some relays in the back that can control the light. By this we can assure that the user will have time to adjust to the new way of interaction, that a guest for example will still be able to switch on the lights and most of all, that the light can still be turned on even if there is a problem with the system.
The system also has a database that logs all the changes and through it it can notify the user if something happens, or simple provide him with the information about the current state of things ( if the light was left on, if the window is opened, if the heater is on, etc. )
An alerting system can be easily integrated with it and notify the user if something is wrong inside the house.
Devices
At the moment I have the following devices I am planning or working on:
Light Control
The idea was described above and it is very simple. The system should be able to turn on/off the lights in different rooms and to sense if the user does it manually.
Temperature Control
This is based on the way a gas heating system works to heat up the house in the winter. The system should control each heater and the boiler to preserve as much energy as possible and to keep the temperature in each room constant. The user will be able to choose the temperature for each room separately or for all of them together. The system based on the threshold provided will check the temperature in each room and if it reaches the threshold it will stop only the heater in that room. This can be done by using an electronic valve or by modifying a manual valve and using a solenoid to push it in place so that the water flow stops. In case the temperature is the required one in all the rooms the system will then turn off the boiler.
Coffee machine
Not something new but something useful, any coffee machine can be changed so that it can be started and stopped from the phone or to have a scheduler to start if at different hours. Same as the light system, the device will also provide the user the current status and he will be able to stop the coffee machine if he left it opened when he left the house.
Laundry notifier
The idea is to weight the laundry basket and to notify the user if it reaches a weight that can be used for a normal washing cycle. Also the containers with detergent can be weighted and the system can tell you at any time how many washes do you still have left based on the current weight and the weight of detergent usually used for a washing cycle.
Doors and Windows
If there is a storm outside you always wonder if you closed all the windows. The system should be able to check the current status and to open/close the doors/windows remotely. I should be able to provide the status with a hall sensor and to use a crank powered by a motor to open/close them.
TV Control
This device is based on an IR led that acts as a remote. The idea is to choose from the phone what channel or what show you want to watch and for it to play it automatically. The system should also recognize the image on the screen for it to be able to choose a show from HBO GO for example or a certain movie from the media server.
Power consumption statistics and control
A separate power consumption sensor on every electrical outlet can provide good data for me to limit the power consumption. Adding a relay to control that outlet I can switch off devices I do not use when I am not at home and I cam check if I left something on that I should not have. The software can be later changed to notify me if for example the electric oven was left on more than usual.
Personalized home welcoming
I would like to have the light open and the music to start when I get home. I could use a RFID tag glued on the key to know who unlocked the house and make different setups for everyone, like different actions, different lights and different playlists. One person can leave messages to another and the system will know which message to play.
Controlling the curtains
You always forget to close the curtains before you start watching a movie during the day and it would be nice to be able to do it from the sofa. A simple curtain that opens when you pull a string has the mechanism design needed. The only challenge here is to add a motor to the system so I can control it remotely.
Using a light sensor I would be able to make an automatic system that controls the curtains so that the rooms are kept as cool as possible during the summer. The light sensor can also provide information to the central system on the Raspberry and open the lights if I am in the room and it gets dark outside.
Top Comments