Table of Contents
First of all, I'd like to thank element14 and all the sponsors for selecting me as a finalist for this challenge. I'm looking forward to build my project and to see what the other challengers will be building!
What follows is the description of my project, as put in my application.
There are two things we tend to forget or have difficulties arranging when leaving home:
- we almost always forget to turn off/unplug a light or device
- we have two cats who need someone to look after them while we are away
Before we had any kids, we could take holidays whenever we wanted to. The advantage was that when we would take holidays outside of school holidays, our neighbours, with kids, would be home to look after our cats. With two young kids, we are now tied to school holidays as well, which means that when we take holidays, our neighbours are usually away as well.
The hardest thing to arrange is for someone to look after our cats. Even though Belgium is a small country, we live far away from our family members. So even if they can look after our cats, they will only check on them every couple of days rather than every single day. That usually means filling both food and water bowls to the top, to bridge the gap until the next visit.
But what if the cats decide to eat everything the first day ? It would not only be bad for them to eat that much at once, but they would remain without food for the coming days.
The "IoT Pet Care System” and “Master Switch” (I’ll have to come up with more “sexy” names for that …) are meant to solve both issues.
Pet Care System
All pet feeders I’ve seen until now, commercial or self-made, have some disadvantages to them:
- they typically only dispense food, not water
- they are usually time based, risking food excess if cat doesn’t eat
- no feedback: which cat ate when and how much ?
The goal for this part of the project is to come up with a pet feeder that provides a solution for all of the above disadvantages.
By collecting data on the feeding habits of our cats and making it accessible in real time, it woud be possible to observe deviations or anomalies (e.g. cat hasn’t eaten for 2 days, cat doesn’t drink enough, …).
Food & Water
As stated earlier, a big disadvantage of existing pet feeders is that they typically only dispense food. I’d like to extend this by providing water dispensing capabilities.
The goal is to start refilling the water bowl when a lower threshold has been reached and stop filling when an upper threshold is. With warm summer days coming up, it would be ideal if the water was cooled as well. I’m certain our cats would appreciate a cool bowl of water on a warm summer day.
To dispense the food, I would use a motor (stepper or servo) which would drop a controlled amount of food in the bowl. Similarly, water can be dropped in the other bowl by means of a solenoid valve.
By measuring the pressure each bowl applies to a pressure sensor, it would be possible to know exactly how much food/water is in the bowl and what the current level is (full, half full, empty, …). This will require an initial calibration where the pressure is measured for each bowl in an empty and full state.
Timers vs Rules
The problem with time based food dispensers, as that they usually don’t take feedback and will just keep dispensing food, even if the bowl is already full.
I’d like to tackle this problem by introducing a set of rules to make food and water dispensing smarter. Example rules could be:
- only dispense food or water if the bowl is (nearly) empty
- don’t dispense more than a certain quantity per day
- keep the water bowl’s temperature between X and Y °C
This seems like the perfect job for OpenHAB/Eclipse SmartHome, which offer powerful, yet lightweight rule engines capable of running on the Raspberry Pi.
When & How much ?
Tracking how frequently and how much your cats eat and drink can result in very valuable information. If you know your cat hasn’t eaten for a day, you might conclude something is wrong earlier than you normally would. This is even more important to know while you are away from home, as you could send someone to check on your cats sooner than normally planned.
Tracking this information would be done as follows:
- cats would be equipped with an RFID tag to their necklaces, each with a unique id
- an RFID reader would be built in in front of each bowl (food and water)
- when the cat eats or drinks, the RFID tag is in front of the reader, knowing which cat is eating and for how long
- the pressure sensors used to detect how much food or water is in the bowl, can be used to determine how much has been eaten or drunk
All of those measurements and events can be recorded and made available through a unified view with openHAB/Eclipse SmartHome.
As you might have seen in my other challenges or projects, I like to make sure the result is both functional as well as good looking. This challenge will be no exception. By combining my building skills with the creative decorating skills of my 4-year old daughter, you know you’re in for a treat.
A nicely finished project will appeal also to non-engineers, who constitute a big part of the potential users of this application.
On hot summer days, it can become very hot inside the house. To make it more pleasant for our cats (or for us when we're at home), a window could be opened automatically if the temperature rises above a certain threshold, resulting in some ventilation inside the house. Once everything cooled down, the window should be closed again.
The EnOcean wireless sensors can be used for exactly that purpose. The fact that they are self-powered is also a great advantage and one less thing to worry about.
By using the wireless temperature sensor, the temperature of the room can be reported back to the pi in order to make decisions on opening or closing the window. The wireless magnetic contact switch will be used to determine if the window is open or closed.
To actually open and close the window, I would in a first step use one of our electric windows, as this is easy to control. Ideally however, I would come up with a mechanism using a stepper motor or similar to control regular windows.
The ventilation can also be triggered by means of rules:
- if the window is closed and temperature > X °C, open the window
- if the window is open and temperature < X °C, close the window
The second part of the project, the master switch is meant to disable all appliances or electronics that wouldn’t need to be powered on while you are away. Such appliances or electronics include:
- washing machine
- etc …
Because we usually forget to turn at least one item off, a master switch would be easy, as all required appliances would be turned off with a single push of the button. Think of all the standby power you could save on by pressing such a switch at night before going to bed!
By combining the EnOcean self-powered switch to a set of remote controlled power sockets, using the pi as a gateway, we’ll never forget to turn anything off again!
This master switch would be located at the front door, making it easy to click the button as you leave home. By binding the master switch to a set of wireless power sockets via OpenHAB, controlling the power would become very easy. Another advantage is that not only the physical switch would work, but it would also be controllable online should we still forget to press it on our way out.
The oscilloscope will be used throughout the project (where applicable) for various purposes:
- troubleshooting of wireless transmission or protocols
- improve documentation of the project by visualising data that would normally only be written explanation
- better understanding of components used
- learn to use the oscilloscope as it’s been years since I used one, and share my experiences about it
This is an impressive device and seems very suited for the hobbyist. I look forward to using it, now that I've been selected for this challenge.
I hope you like my project idea, and any suggestions regarding my project are welcome!