Cat Feeder
An automatic cat food dispenser with humidity sensors and smart display.
Author: Clinci Rareș-Mihail
GitHub Project Link: Link Github
Description
The project is an automatic cat feeder, capable of dispensing food portions according to a preset schedule. The user can set the feeding interval and the amount of food the pet should receive. Sensors will detect whether the cat has eaten, the amount of food available (and alert when it's empty), and the weight of the tray (to account for the food already present before dispensing more). Red LEDs will indicate when the food compartment is empty or if the humidity level is too high. An electronically controlled mechanism will handle food distribution. The system will also include a display showing information such as when the cat last ate, how much food it receives, and at what intervals.
Motivation
Being a cat owner and having spoken with friends who own such devices, it was easy for me to identify the most important functionalities for a user, which helped me design and pitch the project.
Architecture
Components
Components | Purpose |
---|---|
Dispensing mechanism | Dispenses the food into the cat bowl |
Weighing scale | Measures the amount of food in the bowl |
Info display | Displays info from the sensors |
User input | Lets user change the food quantity and dispensing intervals |
Food level sensor | Measures whether the container has any food |
Humidity measurer | Measures the humidity of the container |
Clock | Measures time |
Interconnection
- The Food Level Sensor and Clock determine when the dispensing mechanism gets fired
- The User Input and Weighing Scale determine for how long the Dispensing Mechanism stays fired
- Info Display receives info about:
- the amount of food the cat has eaten from the Weighing Scale
- whether the food container is empty from the Food Level Sensor
- the humidity level in the food container from the Humidity Measurer
- the variables set by the user from User Input
Diagram
Log
Week 5 - 11 May
Week 12 - 18 May
Week 19 - 25 May
Hardware
Hardware used:
- Raspberry Pi Pico 2W
- Micro Servomotor
- Real Time Clock PCF8563
- LCD Screen SPI 128x160 ST7735S
- Load Cell 2kg
- HX711 ADC
- Photoelectric Sensor TCRT5000
- Humidity Sensor HR202
- 2 Red LEDs
- 4 buttons
- breadboard and wires
Schematics
Bill of Materials
Device | Usage | Quantity | Price |
---|---|---|---|
Raspberry Pi Pico 2W | The microcontroller | 1 | 39.66 RON |
Micro Servomotor | Dispensing food | 1 | 13.99 RON |
Real Time Clock | Measuring time intervals | 1 | 5.77 RON |
LCD Screen | Displaying info | 1 | 43.58 RON |
Load Cell | Measuring the food's weight | 1 | 23.99 RON |
HX711 Module | Sending load cell info to the board | 1 | 13.39 RON |
Photoelectric Sensor | Detecting if the food container is empty | 1 | 1.49 RON |
Humidity Sensor | Detecting the humidity in the food container | 1 | 9.99 RON |
Red LEDs | Displaying info | 2 | 0.39 RON |
Buttons | Setting dispensing period and food quantity | 4 | 1.99 RON |
Breadboard | Connecting components | 2 | 9.89 RON |
Wires | Connecting components | 1 | 7.99 RON |
Rigid Wires | Connecting components | 1 | 12.49 RON |
Male Header | Connecting microcontroller | 2 | 0.99 RON |
Female Header | Connecting microcontroller | 2 | 2.56 RON |
Software
Library | Description | Usage |
---|---|---|
embassy | Async embedded framework | Core runtime for async tasks and peripherals |
embassy-rp | HAL for Raspberry Pi Pico (RP2040) | Controls GPIOs, SPI, I2S, etc. |
embedded-graphics | 2D graphics library | Used for drawing text and shapes on LCD |
display-interface-spi | SPI display abstraction | Connects the embedded-graphics to SPI-based displays |
embedded-hal | Traits for embedded devices | Base for SPI, I2C, ADC, GPIO, etc. |
defmt | Logging crate for embedded | For debugging and structured logs |
pcf8563 | RTC library | Interacting with the real time clock |
hx711 | Load Cell Library | Reading the data from the load cell |