
TL;DR
Talk resources and outline-solid for my IoT Kitty Litter Box project, where I used a Raspberry Pi and JavaScript to track my cat's weight and bathroom habits.
Thanks for coming to my talk, An Introduction To IoT (Internet of Toilets 🚽); Or How I Built an IoT Kitty Litter Box Using JavaScript, and here you will find all the resources discussed during the talk.
About the Internet of Toilets
My favorite things in life are cats 🐈, computers 🖥 and crappy ideas 💩, and so I decided to combine all three and make an IoT (Internet of Things) litter box using a Raspberry Pi and JavaScript! If you have ever wanted to get build your own IoT project, but didn’t know how to start, then this is the project for you. Turns out that IoT and JS are awesome!
This project will help track your feline friend’s health by measuring its weight every time it sets foot on the litter tray and monitors its urination patterns. The equipment can be connected to a companion smartphone app that displays the relevant data in an easy-to-understand graph format, so that cat parents can quickly spot symptoms of unusual weight loss.
Together, we will go through how I set up my IoT Litter Box from start to finish. Including how to set up Node.js on a Raspberry Pi and how to connect sensors to a Raspberry Pi and how to read the sensor inputs with Node.js.
Video
Internet of Toilets Slides
Schematics

IoT Kitty Litter Box Source Code
https://github.com/JoeKarlsson/iot-kitty-litter-box
Talk Outline:
- Introduction/What the heck is IoT?
- IoT and JS – Why/How does that work?
- Easy to update over a network
- The internet already speaks JS
- Tons of existing libraries/plugins/APIs
- Cylon.js & Johnny-Five
- JS is great at handling event-driven apps
- Project Demo: Internet of Toilets 🚽: IoT Kitty Litter Box
- Review required materials and why we need them
- Raspberry Pi
- Breadboard
- etc…
- We will cover the motivation and insights from the project
- We will focus on the most simple component, the switch
- What is the GPIO and how do we interact with it?
- How do we save/analyze/act on this data?
- Demo saving the data to MongoDB database
- Review required materials and why we need them
- Future of IoT
- Smaller and more powerful devices
- JS with a smaller footprint
- Better hardware support
- Batteries will soon be the bottleneck for IoT work
- Recap
- Questions
- End!
You can view a complete list of my past and upcoming talks with video on my website /talk-archive/.
Related Links
- [Blog] An Introduction to IoT (Internet of Toilets) - more detail on into the code, hardware, and data behind the IoT Kitty Litter Box
- Want to learn more? Check out MongoDB University
- Stuck? Be sure to ask your questions on the MongoDB Community Forums
- IoT Cat Litter Box (with ESP32, Arduino IDE, Thingspeak and 3D Printing)(Major inspiration)
- IoT Reference Architecture
- Time Series Data and MongoDB: Best Practices Guide

Joe Karlsson
Developer Marketing Engineer at CData, leading developer growth for the managed MCP platform that connects AI agents to live enterprise data. Writing about databases, self-hosting, and the things I build. Runs a 60+ container Proxmox homelab with AI-powered automations.
cat newsletter.md
Works on My Machine is my newsletter: thoughts and reactions on tech writing, AI, homelab builds and open source, plus whatever I'm working on. It goes out when I have something to say.
Free, no spam, unsubscribe anytime. Read past issues.
Related Posts

Nov 3, 2020
An Introduction to IoT (Internet of Toilets)
My favorite things in life are cats, computers, and crappy ideas, so I decided to combine all three and explore what was possible with JavaScript by creating a brand-new Internet of Things (Internet...
Oct 12, 2026
I built a 32x32 pixel art frame that shows what my house is doing
PixelPane is my open source 32x32 LED pixel art frame on a Raspberry Pi. Home Assistant turns it into an ON AIR sign, a doorbell, and seasonal decor.

Feb 5, 2026
Building a Real-Time Digital Graffiti Wall with MongoDB Realm and RGB LEDs
How I built an interactive art installation and collaborative drawing app where multiple users draw on a shared digital canvas that displays their creations live on a physical RGB LED grid, using MongoDB Realm for real-time sync.