Skip to main content
Version: ACS CC

Pet AutoFeeder

info

Author: Alin-Ion Savu

GitHub Project Link: https://github.com/UPB-PMRust-Students/proiect-Savuuu11

Description

Pet AutoFeeder is an automated system designed to manage pet feeding in an efficient and intelligent manner. The project's goal is to continuously monitor the food level in both the bowl and the reservoir to ensure regular feeding without the need for frequent human intervention. When the weight sensor detects that the bowl is nearly empty, a red LED lights up, and a servo motor is activated to dispense food. Once the bowl is successfully refilled, a green LED indicates that the bowl is full.

The system also includes an alert mechanism for situations when the main reservoir runs out of food. In this case, a buzzer emits intermittent sound alerts until the user intervenes by pressing a button to stop the alert and then refills the reservoir.

To avoid excessive and too frequent feedings, the system integrates an RTC module. This module records the time of the last refill and enforces a time interval between feedings. As a result, the bowl will not be refilled again too soon, even if the weight falls below the minimum threshold—helping to prevent food waste and better adapt to the pet's natural consumption rhythm.

Motivation

As a pet owner, I often faced the problem of ensuring my pets were fed while I was away. This project was born out of the need for a simple, reliable, and automated feeding system that lets owners travel or focus on daily tasks without worrying. It’s a small step toward making pet care smarter and more convenient.

Architecture

alt text

The project has the following architecture:

  • Raspberry Pi Pico 2W: Acts as the central microcontroller, orchestrating the interactions between all other components. It processes sensor data, executes the feeding logic based on weight and time, and controls the output devices.
  • POWER SOURCE: Provides the necessary electrical power to operate the Raspberry Pi Pico 2W and the connected peripherals, ensuring stable operation.
  • LEDs: Connected to the Pico, LEDs serve as visual indicators for the system's status, such as signalling when the food bowl is low or when it has been successfully refilled.
  • BUZZER: Controlled by the Pico, the buzzer functions as an audible alarm, alerting the user when the main food reservoir is empty and requires refilling.
  • SERVO MOTOR: Controlled by the Pico, the servo motor acts as the mechanical actuator responsible for dispensing food from the reservoir into the pet's bowl when commanded by the control logic.
  • WEIGHT SENSOR: This sensor measures the amount of food currently in the pet's bowl. It sends this data to the Pico, which uses it to determine if a refill is necessary.
  • RTC (Real-Time Clock): Connected to the Pico, the RTC module maintains accurate timekeeping. This allows the system to log feeding times and enforce rules, such as minimum time intervals between feedings, contributing to a controlled feeding schedule.

LOG

  • Week 5 - 11 May

  • Week 12 - 18 May

  • Week 19 - 25 May

HARDWARE

The Raspberry Pi Pico 2W serves as the central controller for the Pet AutoFeeder, managing inputs and outputs.

  • Power Source:

    • Connects to the Pico 2W to provide operating voltage.
    • Also powers peripherals requiring higher current, like the Servo Motor.
  • Raspberry Pi Pico 2W Connections:

    • To LEDs: Connects via GPIO output pins to drive status LEDs. Requires current-limiting resistors.
    • To Buzzer: Connects via a GPIO output pin to activate the audible alert.
    • To Servo Motor: Connects via a PWM-capable GPIO pin to send control signals for dispensing food.
    • To Weight Sensor (HX711 Amplifier): Connects via two GPIO pins to read data from the HX711 module, which interfaces with the load cell.
    • To RTC Module (DS3231): Connects via designated I2C pins to communicate with the Real-Time Clock for timekeeping.

Bill of Materials (BOM)

DeviceUsagePrice
Raspberry Pi Pico 2WCentral microcontroller, runs code, controls devices40 lei
Micro Servomotor SG90 (90°)Actuator for food dispensing mechanism14 lei
RTC Module ( DS3231)Real-Time Clock for tracking time19 lei
Celula de Sarcina 10kg + Amplificator HX711Weight sensor system to measure food in the bowl28 lei
BuzzerAudible alert for low reservoir1 lei
BreadboardPrototyping connections between components11 lei
LEDVisual indicator< 1 lei
BUTTONUser stop buzzer< 1 lei

Software

LibraryDescriptionUsage in Project
rp2040-halHardware Abstraction Layer for RP2040.Controls Pico's GPIO (LEDs, Button), PWM (Servo, Buzzer), I2C (RTC), PIO (if WS2812 used).
embedded-halStandard traits for embedded hardware interaction.Provides the standard API traits implemented by rp2040-hal and used by peripheral drivers.
embedded-ioStandard traits for I/O operations (Read/Write).Provides standard I/O interfaces, potentially used by sensor or future comms crates.
cortex-m-rtRuntime support for ARM Cortex-M.Handles basic microcontroller startup, interrupt vector setup, and program entry point.
panic-haltSimple panic handler for no_std.Halts the CPU on unrecoverable errors during development/operation.
fugitTypes for time duration and frequency.Used for specifying delays, PWM settings, and time intervals for RTC logic.
hx711Driver for HX711 load cell amplifier.Interfaces with the HX711 chip to read data from the bowl's weight sensor.
ds3231Driver for DS3231 Real-Time Clock module.Communicates with the DS3231 RTC to track time for enforcing feeding intervals.
defmtHighly efficient logging framework for embedded.Provides fast, formatted logging capabilities crucial for debugging embedded code.
defmt-rttRTT backend for defmt.Transmits defmt log messages to the host computer via a debug probe connection.
  1. TOP 5 Pet Feeders
  2. Project Inspiration
  3. Comercial Product