Smart Pet Water Dispenser
A smart device that automatically refills a pet's water bowl and monitors water temperature, providing convenience for pet owners.
Author: Cosac Alexia
GitHub Project Link: https://github.com/UPB-PMRust-Students/project-alexiacosac
Descriptionβ
The Smart Pet Water Dispenser is an automated system designed to keep pets hydrated by refilling their water bowl whenever the level drops too low. Powered by a Raspberry Pi Pico W, it uses a water level sensor and a water pump to maintain consistent water levels without constant human intervention.
To ensure safety and usability, the system also monitors water temperature via a sensor and displays it on an LCD screen, while an RGB LED provides status indicators (green for normal, red for errors). It also features remote connectivity for monitoring and controlling the system through a simple web interface.
Motivationβ
I chose to work on this project because ensuring pets have constant access to clean water is a common challenge for many pet owners, especially during busy schedules or when away from home. As a cat owner, I have personally faced the difficulty of maintaining a reliable water supply for my pet, which motivated me to develop the Smart Pet Water Dispenser.
Architectureβ
The architecture components of the Smart Pet Water Dispenser:
-
Sensor Data Processing Component β Responsible for receiving and processing input from the water level and temperature sensors. It continuously monitors the state of the system to provide relevant data to the control unit.
-
Control Logic Component β The central decision-making unit that evaluates sensor data to trigger appropriate actions. Based on the water level and temperature readings, it decides whether to activate the water pump or signal an alert via the RGB LED.
-
Actuation and Feedback Component β Manages the response of the system to control signals. It operates the water pump to refill the bowl and uses the RGB LED to provide feedback about the systemβs health (e.g., red for errors, green for normal operation).
-
User Interface Component β Displays real-time data, such as water temperature and system status, to the user via an OLED display. It ensures visibility into the system's current state.
-
Connectivity and Remote Monitoring Component β Allows the user to monitor and control the dispenser remotely via a web interface. This module communicates with the Raspberry Pi Pico over a network to offer access to system data and control over actions such as refilling the water remotely.
Logβ
Week 5 - 11 Mayβ
Week 12 - 18 Mayβ
Week 19 - 25 Mayβ
Week 26 - 2 Juneβ
Hardwareβ
The hardware components include:
-
Raspberry Pi Pico
Controls the entire system and interfaces with sensors and actuators.
-
ESP8266 or ESP32 (Wi-Fi Module)
Provides Wi-Fi connectivity for remote monitoring and control.
-
Water Level Sensor
Detects when the water level drops and triggers the pump.
-
Temperature Sensor (DS18B20)
Monitors the water temperature and displays it on the OLED screen.
-
Electric Water Pump (5V)
Pumps water into the bowl when the level is low.
-
Relay or MOSFET
Switches power to the water pump safely.
-
Diode
Protects the circuit from back EMF generated by the pump.
-
RGB LED
Shows system status (green for normal, red for errors).
-
OLED Display
Displays water temperature and system status.
-
5V Power Supply
Powers all system components.
-
Breadboard and Jumper Wires
For prototyping and connecting components.
-
Tubing and Water Reservoir
Stores and transports water to the pump.
-
Resistors
Limits current to protect components.
Schematicsβ
Place your KiCAD schematics here.
Bill of Materialsβ
Device | Usage | Price (RON) | Link |
---|---|---|---|
Raspberry Pi Pico W | Main microcontroller with Wi-Fi | 39.97 | Robofun |
ESP8266 Wi-Fi Module | Provides Wi-Fi connectivity | 19.00 | Robofun |
Water Level Sensor | Detects low water level | 33 | eMag |
DS18B20 Temperature Sensor | Monitors water temperature | 9.62 | Robofun |
Electric Water Pump 5V | Pumps water into the bowl | 13.49 | eMAG |
Relay Module 5V | Controls power to the water pump | 12.00 | Robofun |
1N4007 Diode | Protects circuit from back EMF | 0.25 | Vendigo |
RGB LED | Status indication (green, red) | 11.4 | Robofun |
OLED Display 0.96" | Displays water temperature and system status | 35 | eMag |
5V Power Supply | Powers the entire system | 12.00 | Robofun |
Jumper Wires | Connecting components on breadboard | 2.6 | Robofun |
Silicone Tubing 1m | Transports water from reservoir to bowl | 9.00 | Iazuri Acvarii |
Softwareβ
Library | Description | Usage |
---|---|---|
rp2040-hal | Controls GPIOs, timers, and PWM | Used for controlling sensors and the water pump |
embedded-hal | Standard interface for external devices | Used for hardware abstraction |
panic-halt | Stops the program on critical errors | Used for error handling |
embassy | Manages asynchronous tasks | Used for task management |
ds18b20 | Reads temperature from DS18B20 | Used for reading water temperature |
ssd1306 | Displays information on OLED screen | Used for displaying water temperature |
smart-leds | Controls the RGB LED indicator | Used for visual status indication |
pwm | Controls the power level of the water pump | Used for controlling water pump speed |
wifi | Manages Wi-Fi connectivity | Used for connecting to the network for remote control and monitoring |
hyper | HTTP library | Used for building the web interface to monitor and control the dispenser remotely |