Naturally, we want our pets to be as healthy and happy as possible, and just as with humans, one valuable metric to know is their weight. Knowing the weight of our four-legged friends, not only helps us to verify that they have a healthy amount of body fat, but can also can be used to detect things early on that may need medical attention. As they cannot speak to us and tell us when don’t feel well, it is our duty to listen to all of the different signals we have to understand their wellbeing.
That’s why I wanted to know the weight of my cat, Ellie. Unfortunately, she really dislikes being picked up or handled, even by people she trusts. This means, it’s not possible to weigh her on a bathroom scale, and the only datapoint I have is her yearly examination at the vets.
I wanted to build something that would fit into her life to track her weight automatically, without any intervention. I decided to modify her litter box, so that on each visit it records her weight.
But WHY, Andy?
Okay I get it; you think it’s weird. So here are the main goals of the project:
Track Ellie’s weight because I want to know how heavy she is without going to the vet
Learn something about how load cells work
Have fun building a new project
(Hopefully) Inspire others to try out new ideas and projects by sharing what I learned.
Track the weight of poops because I thought that was funny.
Rather than build the whole litter tray from scratch, I decided to build a platform that her existing litter tray would rest on. This platform would contain all the equipment necessary to detect when Ellie was using the litter and start taking measurements.
Before the pandemic, when we started working from home, I used to make coffee a number of different ways, depending how I felt. I liked to experiment – sometimes I would use a V60, others a French Press, coffee syphon or espresso machine. This worked well on the weekends when I had time to experiment a little. However, when you need to grab a quick coffee between meetings, it turned into a real faff; there’s just no matching the convenience (if not the quality) of the office coffee machine.
My solution here was to pick up a Morphy Richards Verve filter coffee maker that I could leave running while I went about my work and come back to when it was done. I was really surprised with this machine, I was expecting to sacrifice a lot of quality for convenience, but with a little fine tuning on ground size and water quantity, its capable of producing some very drinkable coffee.
Occasionally, though, I would get it brewing and forget to go back to collect the drink, leaving it going stale on the hot plate so I decided to see if I could connect it to my network for notifications and control.
I’ve previously mentioned that I wanted to upgrade my heating system so I could program it with more complex timings or control it form my phone. But there’s a catch: The house is rented, so the whole system must do no damage, be made only of removable parts and be installed without modifying any of the existing infrastructure.
In this post, I’ll talk about how I managed it, how it works and what the current state of the project is.
My electric heating is controlled by a Timeguard RTS113 mechanical timer located awkwardly in a kitchen cupboard; it consists of a large outer ring that rotates once every 24 hours. On this ring, you push in red (on) or blue (off) plastic pegs (called tappets in the user manual) at the time you want the heating to turn on or off. As the peg passes a control spindle (representing the current time in the bottom right) it pushes it around approximately one eighth of a turn. Each eighth of a turn of the control spindle, toggles the heating on or off.
A second inner ring allows you to suppress the morning or afternoon schedule for a given day in the week. For example, you can have the heating come on at 6:00am and 7:00pm every day, except on Saturdays where it does not come on at 6:00am because the morning schedule is suppressed.
This works reasonably well, but it’s not very flexible – you pretty much a to live your life on the same schedule every day – if you deviate from it the heating is either wasting power while you’re out, or you’re freezing and have to reach into the cupboard to press the override button.
I’d love to have a smart thermostat such as Nest or Hive but they don’t support my electric heating and as this is a rental house, I’m not able to modify anything to support them.
What I Wanted To Do
The control spindle that is rotated by the pegs has a small slot on the top that can be turned manually using a screw driver to toggle the heating on an off. I can remove all of the pegs and use a stepper motor to very gently turn the spindle each time I want to change the heating state. I could then connect this to a controller that receives instructions from the internet, and write whatever software I wanted to run the schedule.
Like a lot of Londoners, my trip to and from work involves moving between a few different trains, any of which could be delayed and cause me to be late to work. Or worse – late home. As checked the tube status on my phone over breakfast one morning, I realised that it would be super useful to have some kind of display in my living room allowing me to see at a glance how my commute is looking before I set off, so I can go a different way if needed.
There are a few options to create a display like this – I could re-purpose a tablet or phone in the technology graveyard drawer, writing a quick and dirty app to run on it. But where would the fun in that be? Sure, it would work but I wanted to learn something along the way. I decided to use a Raspberry Pi and a display of some kind, but if its going to live in my house, it needs to be pretty.
I ordered the Primoroni Inky wHAT – an eInk display with all the headers to screw it directly onto a Raspberry PI. It even has Python library for displaying stuff. I went for the two-colour red/black model; I thought I could use the red mode to make any tube status issues stand out.
As soon as I’d ordered the screen, I started thinking about what I would use it for. I came up with a few things I wanted to do:
Display the current tube status of the most useful tube lines
Display the current weather / temperature outside from DarkSky
Show the current indoor temperature, pulled from my Air Quality Monitor (I built this a couple of years back, I might cover it in a later post)
Display some kind of indication that central heating is on or off
Show the time
I drew this little diagram to get started:
Ever the software engineering project, the first task was to
investigate the APIs to give me the data I wanted.