Project Name: AquaCare
Project Functional Description:
Our project aims to develop a smart fish tank system designed to simplify fish care by automating key maintenance tasks and monitoring tank conditions for pet owners to ensure fish health. Implemented using an STM32 microcontroller, this solution is targeted at both hobbyists and families, aiming to reduce the effort required for fishkeeping while promoting healthier environments for aquatic life. AquaCare is powered through wallpower and has a simple user interface. This device can be mounted on any size fishtank between 3 and 15 gallons. The AquaCareHQ, which houses the PCB and main control of the design, will mount to the fishtank lid. The water level and temperature sensors will be placed in the water near the AquaCareHQ. The interactive screen and keyboard will be mounted on the front glass of the fishtank for ease of use. Finally, the feeder will sit on the edge of the tank with the feeder opening above the water.The key components of our design are:
- Live tank condition monitoring
- Filter health monitoring
- Historical data of tank conditions
- Interactive screen navigated using a keyboard
- Alerts with unhealthy tank conditions
- An automatic feeder
See below for further detail into these features.
Tank Condition Monitoring
AquaCare continuously monitors the health of your fish tank using a Waterproof 1-Wire DS18B20 Digital temperature sensor. This sensor is extremely accurate for measuring tank temperature, providing a +/- 0.5 degrees Celsius margin of error. This sensor operates in a range of 3-5.5 V and can be easily interfaced to our microcontroller using I2C.
Filter Health Monitoring
AquaCare saves users from the extra expense of specialized tank filters with built-in alerts. The sensor instantly detects water and, when placed at a certain height in the tank, can indicate when a filter is clogged or malfunctioning. The sensor used in this design is the Adafruit Water Level Sensor that operates on 3-5 V and is an Analog device.
Historical Data of Tank Conditions
AquaCare features a built-in SD card (size not yet determined) that stores tank data readings for up to 24 hours. The data stored on this card will be displayed in a graph on the interactive screen. The microcontroller will report live data to the SD card via SPI. Similarly, the SD card will report this stored data back to the microcontroller to display on the LCD.
Interactive Screen
AquaCare features an interactive screen, navigated using a 4x4 keypad, allowing users to seamlessly browse through its menus. The main screen displays live tank data in real time, while another screen presents a graphical view of historical data stored on the SD card, helping users track trends. Additionally, a settings screen enables users to customize tank condition thresholds and set feeding intervals, providing full control over their aquarium’s environment. The screen used in AquaCare is an EVE2 graphical LCD that interfaces via SPI. This screen operates at 3.3V and has RGB color capability to efficiently display the graphical information. The LCD and the microcontroller will have to communicate constantly, via SPI, to read from the sensors to display live data, to fetch stored data from the SD card to display historical data, and to report if the user has interacted with the screen and changed any thresholds for temperature or feeding levels.
Alerts with Unhealthy Tank Conditions
AquaCare continuously compares sensor readings to user-set thresholds to assess tank health. If any parameter falls outside the defined range, the screen will instantly alert users to the specific issue, ensuring timely adjustments for a healthy aquatic environment. The screen used in this design has audio capabilities to alert the user both visually and audibly if they choose.
Automatic Feeder
AquaCare’s automatic feeder dispenses the ideal amount of food based on the user-set feeding schedule, ensuring a well-balanced tank environment. The dispensing action will be operated by a latch controlled by a Stepper Motor. This motor operates on 5V and has a holding torque of 2kg-cm, making it efficient for keeping the dispenser latch shut when not dispensing. The feeder also has the capability to alert the user when the food level is getting low. Built internally into the design is an ultrasonic sensor that can sense, using distance, when the food level is too low. Once this certain distance is reached, the screen will alert the user to replenish the food level.
LCD Menu Operations:
- A: Live sensor readings from tank, graphic of food level
- B: Graph of historical data
- C: Menu for users to show thresholds
- D: Button to clear alerts
- 1-9: Used to set numerical thresholds
- #: Confirm / select
- *: Used to pan through pages (right circular)
Project Specific Design Requirements (PSDRs):
- PSDR #1 (Hardware): Ability for a 4x4 keypad to interface with the microcontroller via I2C.
- PSDR #2 (Hardware): Ability for an SD card to interface with the microcontroller via SPI.
- PSDR #3 (Hardware): Ability for a graphical LCD to communicate with the microcontroller via SPI.
- PSDR #4 (Software): Utilzing the capabilities of a graphical LCD to display historical sensor data.
- PSDR #5 (Software): Creating a simple user interface to navigate the various menus of the LCD.
- (Hardware): Ability for an Internet/Wifi module to interface with the microcontroller.
- (Software): Ability to create an app/server that interfaces with the wifi on the microcontroller.