Cat Tracker

Measuring Checo's Work Ethic

A familiar theme for me is having an idea and then later finding myself a bit too committed to the bit. That's what happened here with my cat, Checo.

It all started with a simple curiosity: just how much does Checo work next to me? He seemed to always be there, clocking in hours by sleeping in his circle next to my desk. With a free weekend, I decided to turn this into a project to track his effort.

Checo Setup

Hardware setup for tracking Checo

To measure Checo's presence, I built a system using a Raspberry Pi W Zero 2 and a Pycam 3. The software stack includes using DynamoDB, MobileNet CNN, API Gateway, and Python in Lambda functions and on the RPi.

Checo Working

Checo hard at work, seen from camera

The camera captures photos at regular intervals, which are then processed to determine if there's a cat in the image. After each picture is taken, the image is run through MobileNet, a convolutional neural net designed for image classification on low-powered devices. If a cat is found (with a confidence of 0.20 or higher), then it adds an entry to our database (DynamoDB).

When a user visits the website, we use API Gateway to hit a Lambda that calculates the time worked based on the total database entries on that day and determines if he is currently working based on whether the most recent entry was added in the last 3 minutes.

Checo in Action

Checo in action

It's a fun way to keep my manager, the Checman, on task!

Checo's Work Log

Work time displayed on a Vestaboard

See Checo's current status here: Checo Live