PRE2023 3 Group12: Difference between revisions

From Control Systems Technology Group
Jump to navigation Jump to search
(Update Logbook)
Line 1,119: Line 1,119:
|Feedback session (0.5 hrs), Meeting session (1 hrs), Database (2hrs), Connecting Arduino to Firebase (3hrs), Final presentation (4hrs)
|Feedback session (0.5 hrs), Meeting session (1 hrs), Database (2hrs), Connecting Arduino to Firebase (3hrs), Final presentation (4hrs)
|10.5 hrs
|10.5 hrs
|-
|Nout
|
|
|-
|Sanshray
|
|
|-
| rowspan="6" |7
|Saqib
|Feedback session (0.5 hrs), Meeting and working in innovation space (3 hrs)
|
|-
|Mara
|
|
|-
|Aseem
|
|
|-
|Adrien
|
|
|-
|Nout
|
|
|-
|Sanshray
|
|
|-
| rowspan="6" |8
|Saqib
|
|
|-
|Mara
|
|
|-
|Aseem
|
|
|-
|Adrien
|
|
|-
|-
|Nout
|Nout

Revision as of 11:56, 27 March 2024


Members

Name Student ID Email
Aseem Mahamood 1789767 a.mahamood.aseem@student.tue.nl
Sanshray Malhotra 1792318 s.malhotra1@student.tue.nl
Nout Van Bommel 1842110 n.g.h.v.bommel@student.tue.nl
Saqib Khan 1783432 s.a.s.khan@student.tue.nl
Mara Pop 1671820 m.pop@student.tue.nl
Adrien Verriele 1710303 a.a.m.verriele@student.tue.nl

Introduction

Problem Statement:

Many homeowners have aquatic pets of certain kinds either for aesthetic reasons or out of genuine compassion for the animals. In the world of aquariums and fish, one of the most important things is ensuring healthy water conditions. There can be various reasons for people to wanting to own an aquatic pet. It can be difficult to ensure these parameters with insufficient knowledge or time constraints.  An aquarium owner comes across various tasks and problems. Owning and maintaining a fish tank can be difficult. These include feeding schedules, water parameters, pH-levels and temperature. It can be difficult to test regularly and keep values on certain levels. All these factors can have negative impact on the fish their health and happiness. For many aquatic pet owners, it can be helpful to have a tool that takes care of the fish during periods of absence. This will prevent stress and illness among the animals in the tank.

Our proposed solution is an aquarium robot, that will be able to monitor and maintain water parameters. Our system aims to take away most difficulties that arise when owning an aquarium. This enables the user to ensure optimal chemical levels and temperature. Our system will be able to sense the tank its temperature, pH, turbidity and ammonia levels. The sensors are selected such that they will withstand the constant exposure to water and give accurate results. A microcontroller acts when certain levels get out of balance. Dispensing the correct amount of food on certain times during the day can be important too. The system will be able to dispense food when needed. By using Wi-Fi and an application, the system will be able to contact the user and send real-time values to the user. This and other actuators will ensure safe, preset values inside the aquarium. The user will get notified when a problem arises, and inform the user about its actions.

Objectives:

The objectives of our device are that:

- It should be slash resistant, only the sensors will get submerged.

- It should be safe for the fishes

- It should continuously collect sensor data (PH, temperature and ammonia concentration)

- It should be able to act when an issue arises

- It should inform the user via an app if there is an issue detected and state its action (high or low PH level, unstable water temperature, unsuitable ammonia concentration)

- The user should be able to set the optimal environment parameters for the aquarium (with initial recommendations for new users, maybe per species of fish)

- App should inform the user of potential solutions for the issue (if there are major issues/ problems)

- Inform the user once a time that everything is fine.

- Inform the user supplies are low (in case of pH control system, chemicals)

Users:

  • Homeowners with Aquatic Pets: These users keep fish or any other aquatic creature simply for the sake of aesthetic enjoyment or as a hobby. They may have various levels of expertise when it comes to maintaining an aquarium's optimal condition, from beginners, who might lack detailed knowledge about the different needs of their aquatic pets, to enthusiasts with plenty of experience.
  • Veterinary Clinics: Professionals who provide medical care or rehabilitation for aquatic animals could use the system to monitor and ensure the health of their aquatic patients.
  • Educational institutions: Institutions such as schools and universities that use aquariums for educational purposes may benefit from the device to teach students about marine life care
  • Maintenance Services: Experts who have to maintain aquariums for clients could use the device to provide excellent quality services while ensuring long-term health and stability to the aquariums.


What Do The Users Require:

  • Ability to remotely track and monitor environmental changes such as pH, water temperature and ammonia concentration in the fish tank through an application on their phone or websites.
  • Ability for them to set their own ideal parameters in the application (with suggestions of what these ideal parameters could be for certain scenarios).
  • Alerts and suggestions on what to do when parameters are far from ideal.
  • Autonomy and trustworthiness of the system

Planning:

The planning is provisional and will most likely change slightly to further complement with the project and the limited time.

week 2:

Specify exact scope of the project (use papers to select a project we will build upon or improve)

create plan, find feasible assignments for everyone to work on

Come up with idea/concept (everyone should think about new, out-of-the-box designs)

Functional specifications should be made based on the needs of our users, underpinned by arguments

week 3:

deadline for finishing full planning

a final design should be selected to work on

tasks should be divided for each to work on

research on parts and software

research on concepts and specifications

write formal technical specifications and requirements

week 4:

Create UML diagrams

Design user interface

Order parts

Work on the wiki

arduino code

week 5,6&7:

Implement software

Build hardware

Testing

week 8:

Improve prototype base on testing

Work on final presentation

Finalize prototype and wiki

State-of-the-art

As long as there exists a problem, people will try to fix it. There have been numerous researches that have addressed this problem. Of course there is a big economic part in the world of fish farming and large aquariums. These large lakes, ponds or tanks need big quantities of supplements and equipment. The famers can have a hard time keeping track of tank-parameters. There have been multiple researchers addressing this problem, mostly by creating a monitoring system, which monitors one or multiple parameters in the tank. Paper [1] highlights another problem in this world, which has to do with food and waste reduction. For farmers it can be economically beneficial if less food is needing. This can be achieved by a system of sensors and actuators.   In all problems, the measured water parameters get send to the user, an can be accessed using an app [2].

Likewise, researchers have done projects on aquarium monitoring. These projects address the same problem, stating the difficulties an aquarium owner can encounter. Again most projects focus on monitoring one or more parameters and sending these to the user [6],[13]. Small sensors are boing used to measure pH and ammonia. These sensors are useful because of there size, price and accuracy. There are various ways to build upon the existing research in aquarium management. Automation of the control of these parameters is a good build upon the existing ideas. There has been a team that tried to achieve this, creating an automating feeding system [8]. This system is able to add food to the tank when needed, and results show active control on the food supplied.

The rapid development of new, cheaper sensors makes it possible to create systems that can support aquarium owners [14]. This development is crucial in allowing the creating of these systems. More extended sensors are also worked on, to allow the monitorization of fish farms [12].

Functional specifications and requirements

Sensors

ID Description Priority
R1 The system senses pH with an accuracy of at most ± 0.1pH Must have
R2 The system senses pH at intervals of at most 1 minute Must have
R3 The system senses temperature with an accuracy of at most ± 0,5 ° C Must have
R4 The system senses temperature at intervals of at most 1 minute Must have
R5 The system senses turbidity with an accuracy of at most ± 40 NTU Could have
R6 The system senses turbidity at intervals of at most 1 minute Could have
R7 The system senses ammonia (NH3) concentration with an accuracy of at most ± 0.005 ppm Should have
R8 The system senses ammonia (NH3) concentration at intervals of at most 1 minute Should have
R9 The sensors have IPx8 water resistance Must have

Actuators

ID Description Priority
R10 The system always keeps the water temperature at at most 3 ° C below the temperature set by the user,

assuming this temperature is between 10° C and 30° C, the room temperature is at least 25° C

Must have
R11 The system dispenses the quantity of food specified by the user, with an precision of ± 0.5g Must have
R12 The system dispenses food a the interval specified by the user Must have
R13 The system keeps the pH within ± 0.5pH of the value specified by the user Could have
R14 The heater plate does not harm the fish Must have
R15 The pH products do not harm the fish Must have
R16 The submerged actuators have IPx8 water resistance Must have
App
ID Description Priority
R17 The app displays the last registered water parameter values Must have
R18 The app allows the user to preset water parameters Must have
R19 In case of abnormal value, the app sends a notification to the user Must have
R20 The app displays the time the fish have last been fed Should have
R21 In case of abnormal values, the app displays information on how to fix the problem Should have
R22 The app has different parameter presets for cold water and tropical fish Could have
R23 The app displays information on different species of fish Could have
Other hardware
ID Description Priority
R24 The main case have IPx4 water resistance Must have
R25 The wires have IPx8 water resistance Must have
R26 The system is powered by 12 V 2A barrel connector power supply Must have
R27 The total production price is less than €100 Could have


Won’t have:

Fish tracking on movement and eating cycle.

Long term data storage.

Actuators/sensors on all important water parameters.

USE Analysis

Users

Homeowners with Aquatic Pets

These users need a reliable system that is easy to use and maintains the optimal conditions within their aquariums. Ideally, the solution can minimize the effort and time that is required for regular maintenance while also ensuring the health and well-being of their pets. This group can range from beginners who may have little knowledge about aquatic pets to experienced enthusiasts. The system should be user-friendly and provide educational resources for less experienced users. They need to be able to regularly check the app for updates on the aquarium's condition. Regular monitoring and adjusting of water parameters like pH, temperature, and ammonia levels can be tedious and time-consuming. There's also a risk of human error, leading to unhealthy conditions for the fish.

Aquarium stores

These users require a system that can manage multiple tasks efficiently, ensuring optimal conditions for the health and breeding of fish. They value accuracy and reliability, and most importantly, the system has to adapt to different species. Professional users have a deeper understanding of aquaculture and may require advanced features and greater control over the system. Some of the challenges may include consistent water quality across multiple tanks. Also, any issues that may occur have to be quickly addressed to prevent loss of stock. Therefore, these users need an alert system that can immediately send notifications for any parameters that fall outside safe ranges.

Society

Work

Enterprise

Many systems that take care of this are designed to be user-friendly, offering various options for monitoring and controlling a wide range of parameters including temperature, pH level, ammonia concentration, ensuring optimal conditions for aquatic life. These systems provide programming and control capabilities through both computers and mobile devices, allowing for remote management[1]. This is particularly beneficial for aquarium stores managing multiple tanks and homeowners who need to maintain their aquariums while away.

Results From User Survey And Discussions

Fish Health Monitoring Survey Results
Concerns From Users Survey Results
App Preferance Survey Results
Automated Regulating Survey Results

As previously mentioned, owning an aquarium can be a lot of work. There are certain tasks that need to be checked multiple times each month, as well as feeding and water filtering. This can be a burden for people, mostly during times of absence. This can be seen from the survey results with more than 55% of aquarium users not monitoring the health of their fish.

Owners that go on a long trip or vacation will need to ask someone else to monitor their aquarium for them. Remembering to feed every day can be hard for some users too. An elderly women mentions that it can a lot of work to check and learn all important water parameters. Good information on how to keep certain species of fish would be useful. A automated system could be created to notify the user when a change of filter is needed. Many aquarium users in our survey said they don't know when to clean the wateer as there is no specified time to do this, the standard is every month but the truth is sometimes due to temperature, PH, climate and all other environmental, external and other factors this can vary a lot. This will be a better solution (notifying the user when a change of filter / water is needed) than just changing it once every month or so, as the filter may be clean enough to be us.

This can be seen from the survey result where 81% of aquarium owners say the cleanliness of the water concerns their fish the most hence as mentioned above a system to notify when cleaning the water is required is crucial. Furthermore 72% of aquarium owners say temperature concerns their fish and as well as PH (~45%) the other factors are a mintory and only make up around 27% or less. Therefore a system to monitor and regulate temperature as well as PH would be ideal as this was a suggestion by more than 72% of users for the product to mintor PH, temperature and the cleanliness of water and display the data on the app whereas the other factors such as dissolved oxygen or ammonia levels were a mintory (approximately less than 18% of aquarium users were interested in that). Moreover, more than 55% of aquarium users want temperature to be regulated automatically on top of already monitoring it and more than 72% of aquarium users want the same for PH as well, due to these being the most crucial aspects to cover and the most concerning according to aquarium users.

Major fish community websites and blogs post information on the most common tasks of an aquarium owner. Some water parameters should be checked weekly to ensure good water quality. Most aquarium owners don't keep track of these parameters, or only measure the most important ones. There are owners that enjoy the work they get from owning an aquarium, but this is different for users who own these aquatic pets for their esthetics or their addition to a calm environment. For these users it would be useful to create a system that takes care of the fish, such that the user can enjoy their fish not worrying about anything. A common response as well for any other extra functionaly in the system was to incoperate feeding facilities this is a good option and can be implemented using the <Time.h> library in Arduino alongside a servo motor, the time library in Arduino can "count" time in a background thread whilst the servo motor can spin and "drop" food at the time specified on the app which the information for this is sent to the Arduino via BLE.

_

_

Design Of Our System (ADD CAD Models)

The choice has been made to make a all-in-one connected fish tank automation system. The system would keep track of the water temperature, pH, turbidity and ammonia levels. Temperature would be adjusted automatically with the activation of a heater if it falls below a threshold. Furthermore the system would dispense a certain amount of fish food at a certain frequency given by the user. The system would be a box to be attached at the top of a wall of the tank, just above the water. Temperature, pH, turbidity and ammonia sensors, as well as the heater would at the bottom of the system, submerged in the water. Inside of the box would be a microcontroller, a wi-fi module, and the food dispensing system, composed of an Archimedes screw controlled by a servo motor and a food tank. All of this would be enclosed in a 3D-printed case taking as less space as possible.

This system would be coupled with a mobile app, on which the user would be able to see the parameters in real time and be notified if one of them is out of its normal range, with advice to fix them. The user would also be able to input parameters to decide on the quantity and frequency of food dispensed. It would also access other information on the fish tank like the time the fishes were last fed, or any alert if the system is malfunctioning. The communication between the app and the system can be done remotely from anywhere with the use of a database that stores the water parameters and other values of every device, which would be constantly updated by data from the respective sensors or user inputs.

App Design

Design of the app

To facilitate the user experience, the device is connected to an Android app.

Design of the app

First Design:

The app contains eight possible pages, which include: the start page, a log-in and sign-up page, a profile page, page that contains all of the monitored aquariums, a page that shows graphs about parameters and an extra page that can be used to ask questions in case any problems arise.

Second designThe original design of the app has been modified according to the most important features for the user. The app was developed in Android Studio using Kotlin as the programming language. The final version of the app has four different pages. When first opening the app the user will be introduced to the main page ('Dashboard') where it can find all of the aquariums that were introduces on the profile. The user can always add aquariums if necessary. By clicking on an aquarium the user will be taken to a separate page that will contain statistics about the aquarium such as pH level, temperature etc.

For a more personalized experience, the user can create a profile, where it can add personal details and a profile picture. It can also use Google accounts do directly create a profile. The profiles are added to a data base. The app is very easy to use. The user can navigate from page to page using the menu that can be found at the bottom of the page.

The notifications of the app will be displayed on a separate page. In this way the user will be up-to-date to any modifications regarding the parameters, or in case any interventions may arise.

Create Profile for user


Design of the app


Research on aquarium environment parameters and optimal conditions for ornamental fish

As the selected user group for this project is home owners with ornamental fish aquariums and aquarium stores that may also breed their indoor ornamental fish, the optimal conditions coincide for these user groups as they all involve small scale indoor freshwater aquariums as the environment. The water condition factors that affect general living and breeding conditions of ornamental fish are temperature, hardness/softness, pH, ammonia concentration, chlorine concentration, carbon dioxide and oxygen.


Temperature of the water

The temperature of a fish tank is usually a main concern during the transport and introduction of new fish due to risks of thermal shocks the fish can get that can be caused when a rapid change to the temperature in their environment occurs (2). For general health and well being of fish, temperature requirements are split into two types: cold water fish and tropical fish. Common cold water fish include gold fish, Koi and certain species of barbs, tetras and loaches. Common tropical fish include bettas, Guppies, Mollys and certain species of laches and tetras. These two types different types of fish should generally not be in the same aquarium due to the different temperature needs. While tropical fish can tolerate 21 °C up to 30 °C, the optimal conditions for tropical fish are 24°C to 27°C with 27°C to 28 °C being suitable for breeding of many types of tropical fish (3). Temperatures above 32°C, are detrimental to the health of most fish. As for cold water fish, they can tolerate from 15°C up to 24°C. With some specifies preferring temperatures lower than 15°C (4).

In cases of the fish tank temperature getting too low for the fish types, solutions include simply increasing the temperature of the room or installing water heaters that are generally heating coils enclosed in a glass tube. A water heater of 5 to 6 watts is required per gallon of water (2).

In cases of the fish tank’s temperature being too high, solutions include reducing artificial lighting over the tank or blocking out natural lighting, cooling down the room that the tank is present in, installing better filtration systems to cycle water faster and even simply running a fan on the water’s surface (5).


Hardness of the water

General hardness or total hardness refers to the measure of calcium and magnesium salts as well as other ions such as sulphites and chlorides of magnesium and calcium present in the water. Below 75 ppm water is considered as soft. From 75 to 150 ppm is moderately hard and 150 to 300 ppm is hard. Beyond that water is considered very hard. Most freshwater fish can thrive in a wide range of hardness and most of the time does not require any water treatment unless fish known to come from regions of extreme total hardness (either soft or very hard) is being raised (6). Water hardness anywhere from 100 to 300 ppm is known to be optimal for growth of most ornamental fish. Only when general hardness is below 12 ppm would require liming (3).

pH

pH refers to a logarithmic scale of hydrogen ion (H+) concentration in aqueous solutions. For most ornamental fish, a pH of 7 to 8 is suitable for growth, breeding and general health (1). But the pH levels must never fall below 5 and raise above 8.5 for aquarium water. Certain ornamental fish prefer slightly acidic water (with pH of 6.2 to 7) such as rosy barb, tiger barb, tetra, angel and daino. Fishes like koi, goldfish and cichlids prefer slightly alkaline water (3). pH can be increased if necessary with doses of calcium hydroxide and decreased if necessary with acids like hydrochloric acid.

Aquariums page and Notification page with Statistics.


Ammonia concentration

Fish waste contains many end products of nitrogen metabolism such as uric acid, urea ammonia. With ammonia being one of the most hazardous to fish. In water, ammonia exists as either NH3 in its gaseous state or in an ionized state as NH4+. It is the unionized state (NH3) that is harmful to fish as it damages gills and causes fish to gape for air at the water surface (although other issues could also lead to similar symptoms). According to Subhendu Datta’s paper on aquarium water quality management, 0.4 ppm of NH3 is considered acute toxicity level meaning a short term or single dose can be lethal. While 0.05 ppm of NH3 with long term exposure can lead to the above mentioned symptoms. Damage to gills can already occur at 0.25 mg/lt (2). Ammonia poisoning is mainly a concern when the fish tank is first established and still lacks a strong cultivation of bacteria that break down these harmful compounds. These bacteria mainly reside in the filters of the water cycling and filtering system and hence require ample time with batches of feeder fish before the ornamental fish can be introduced to an aquarium. The ideal ammonia concentration in the system should be trace amounts (it should be noted that ammonia testing kits usually measure both NH3 and NH4 combined). In events of sudden ammonia spikes, fish should be transferred to other tanks (being mindful of the necessary procedures to avoid thermal shocks) and allow the bacteria load to increase and break down the ammonia. Other discouraged solutions include using ammonia detoxifiers (2).

Other than when the aquarium is first established, ammonia concentrations can also increase when too many fish are added at once, the fish tank is heavily populated, the filtration system is not functioning properly or is insufficient and when the fish are being overfed. Apart from factors that increase ammonia concentration, the toxicity of ammonia can also increase at higher water temperatures and pH levels above 7.0 (6). This is because the equilibrium between NH3 and NH4+ is dependant of pH and temperature and yield of NH3 is preferred at higher temperatures and pH which should be taken into account as NH3 is 300 to 400 times more toxic to fish than NH4+ (1).


Chlorine concentration

Tap water is a readily available source of clean water that can be used to fill fish tanks. However, the main issue with this is chlorine content in tap water. Chlorine amounts as low as 0.1 ppm is enough to be considered toxic for most ornamental fish (3). However, this can easily be solved by letting the water sit in the tank for a few days to let the chlorine escape and make the water suitable for fish. Aerating the water with air pumps can greatly help this process. Alternatively, if time is of concern then the water can also be treated with commercially available chemicals such as sodium thiosulphate (2). Once initially dealt with, chlorine concentrations do not need to be monitored unless more tap water is added when water changes.  


Dissolved Oxygen

For warm water fishes, the recommended level of dissolved oxygen is 4 to 5 mg per litre. Dissolved oxygen may be a crucial to monitor as low dissolved oxygen levels may stunt growth, affect feeding and can lead to hypoxia. This causes high levels of stress for the fish and cellular damage (1). To prevent this, most aquarium systems have a aerators. The capacity and amount of aerators required depends on the volume of water and is always indicated by the product’s description. So as long as ample aeration is occurring in the system, the use of analog dissolved oxygen monitors may be omitted as they are expensive and inessential for home users keeping ornamental fish.  

Refrences: (1) https://www.researchgate.net/publication/339285368_Importance_of_Optimum_Water_Quality_Indices_in_Successful_Ornamental_Fish_Culture_Practices

(2) https://www.researchgate.net/publication/268195853_Aquarium_Water_Quality_Management

(3) https://courseware.cutm.ac.in/wp-content/uploads/2020/06/Session-7-1.pdf short good info with table.

(4) https://www.thesprucepets.com/aquarium-water-temperature-1381896 random fish specialist website. Not research paper.

(5) https://fishlab.com/aquarium-temperature/ non research paper website mainly about temperature and fish.

(6) https://www.aqueon.com/articles/freshwater-aquarium-water-quality mainly about ammonia and nitrates and stuff

IP-code for safeness

Our design will have to meet certain standard to be able to operate safely close to the water. This is needed for the fish’s and user’s protection. There are certain requirements defined by the European union on levels of protection against multiple factors. This ingress protection code is useful for finding viable sensors and actuators for our project. The IP-code is build up out of multiple layers. Generally the code looks like : IPXXA, with X being a number and A a letter. If there isn't any specified value, the x will either remain or be left out (if on the end of the code). The first X can have levels from 0 to 6, representing different levels of dust-resistance. The second 0-9 levels is for water-resistance.

Type IP-requirement
fully submerged sensors IPx8
submerged actuators IPx8
wires (or casing wires) IPx8
casing microcontroller&servo IPx4

If the microcontroller is placed on the outside of the tank, there will only be splashing water from time to time. Therefor there will be less need for good water resistance. IPx8 requires an object to be functional when submerged for longer periods. This should always be specified by the manufactures. For our project, it will be necessary to aim for the longest durability possible. A 3d printed casing for the microcontroller and small tubes for the wires will be useful for their water resistance. It is important to create no expose from the copper wires or any other electrical connection to the water, as this could have consequences.


Different materials could be used to ensure a water-resistant casing. High density plastics created in a vacuum are particularly good at keeping out water.

Other materials like wood could be used, but need a coating to ensure water resistance.

To create a watertight seal, there are multiple options. We could choose to apply a liquid coating, which is quite cheap, but needs to be applied multiple times.

The liquid tape should be applied with a brush, and should rest for half an hour before applying the next layer.

Another option would be to use self fusing silicon tape. This tape is made from a special cured rubber, which sticks to itself with ease. It is easy to apply and could be used to protect the wires from water.

The wires can be wrapped in the tape, which will create a water tight seal after a couple minutes. The tape should be used to seal of connections, as it only sticks to itself.

Multiple layers should be applied, this will create a firm watertight connection.

epoxy gels or coatings are used in a lot of different situations. These are applied when liquid, but get solid to create a watertight seal.

Rubber rings or strips are also watertight. They could be used to seal of the entrances as well. it will be hard producing such rings that fit, as a bundle of wires could have a irregular shape.

https://thecavepearlproject.org/2023/03/17/waterproofing-your-electronics-project/

Like shown in the following article, water and living creatures have an influence on the materials. Hard casings with connections like screwcaps are good options.

The final options for sealing the electronics are potting them, coating them or using a hard casing.

Tape can be used to seal of excess gaps or connections.

Sensors

Temperature Sensor

Temperature Sensor

An appropirate temperature sensor would be the DS18b20 waterproof temperature sensor, this is waterproof and is compatible to use with Arduino IDE. It requires a breadboard / soldering of wires (to be done at a later stage). This temperature sensor has three wires which all connect to a different pin in the Arduino. The black pin connects to a ground port, red pin connects to a VCC port which is powered by either 5v or 3.3v power supply. The yellow pin is connected to any chosen digital IO pin on the Arduino. The connections can be made using a breadboard or by using jumper wires with soldering of the loose wires on the temeprature sensor to the jumper wires (and then connecting the jumper wires to the Arduino itself). The coding with this sensor is relatively straightforward and involves using the libraries <OneWire.h> and <DallasTemperature.h>. A simple call to an in built method of the libraries after proper setting up (the call is sensors.requestTemperatures()) checks the temperature of the water the temperature sensor is inside and the values can be retrieved by calling: sensors.getTempCByIndex(0).

For more information see:

https://www.sensingthecity.com/water-temperature-sensor-with-arduino/

Possible purhcasing link(s):

https://www.hobbyelectronica.nl/product/ds18b20-waterdicht/

_

PH Sensor

PH Sensor

An appropirate PH sensor would be the Gravity analog PH sensor kit. This contains a PH probe and a signal conversion board. The PH probe is what is immersed in the liquid which is being tested for it's PH value whereas the signal conversion board acts like a communication mechanism between the PH sensor and the Arduino board, sending the read PH values to the Arduino. The wiring of this is as follows: the blue wire on the image on the right should be connected to any digital IO pin on the Arduino, the red wire requires to be connected to a 5V VCC pin and the last black wire should be connected to a ground pin. The connections are easier to be made using female to male jumper wires. The code works by setting the chosen digital IO pin to HIGH and LOW and using a formula to calculate the PH based on the transmitters response.

For more information see:

https://how2electronics.com/ph-meter-using-ph-sensor-arduino-oled/

Possible purchasing link(s):

https://store.arduino.cc/products/gravity-analog-ph-sensor-meter-kit

https://elektronicavoorjou.nl/product/ph-sensor-kit-v2/

_

Turbidity Sensor

Turbidity Sensor

This is a sensor to check the "clearness" of the water. There are two types of turbidity sensors which are linked below, both principly work the same. Turbidity is measured in terms of NTU which is a "Nephelometric Turbidity Unit". The lower this NTU value the better the water quality, higher NTU values mean worse water quality as there is an increased scattering of light (more particples and dirt in the water). The connections are simple but differ based on the turbidity sensor purchased in principle it requires a 5V VCC pin, a ground pin and any digital IO pin on the Arduino. The code works by running a for loop over 800 iterations to read the required sensor input which the result of the input is added to another local variable. After this the value is converted to NTU and can be viewed on the serial monitor or an external LCD (optional, not for our project).

For more information see:

https://www.esclabs.in/how-to-make-a-turbidity-meter-using-arduino/

https://www.youtube.com/watch?v=Bu8y-6Bpv0U

https://how2electronics.com/diy-turbidity-meter-using-turbidity-sensor-arduino/

Possible purchasing link(s):

https://www.fruugo.nl/turbidity-sensor-suspended-turbidity-value-detection-module-kit-for/p-159789019-339106679

https://elektronicavoorjou.nl/product/troebelheid-sensor/

_

Ammonia Sensor

Ammonia Sensor

The most suitable sensor to detect any ammonia presence in the fish water is the Mq137 ammonia sensor. Before using this sensor it must be calibrated to the environment around it therefore using an external program to do so. The wiring is simple in principle it requires a 5V VCC pin on the arduino to be connected to the VCC pin on the sensor, a ground pin on the arduino to be connected to the GND pin on the sensor and any digital IO pin on the Arduino to be connected to the AO pin on the sensor. A 47k ohm resistor is also needed to be used for the connection between the AO pin on the sensor and any digital IO pin. The code works by taking in the parameters set above after calibration and thereafter uses a logarithmic formula to calulate the PPM (parts per million) of ammonia present in the air around (also can measure ammonia in water, it is important to not put the sensor underwater).

For more information see:

https://circuitdigest.com/microcontroller-projects/arduino-mq137-ammonia-sensor

https://pastebin.com/dRbTnKUJ

https://www.reddit.com/r/arduino/comments/fvspdn/working_on_a_project_with_ammonia_gas_sensor/

Possible purchasing link(s):

https://www.fruugo.nl/mq137-ammoniak-gas-detectie-sensor-module-nh3-gas-sensor-module-huishoudelijke-apparaten-ana/p-161661060-343314884

https://dennisdeal.com/products/mq137-gas-sensor-module-mq-137-ammonia-sensor-module-nh3-sensor-module_1598294

Actuators

Heater Plate

Heater Plate

This is need for the "actuator" side of our autoamted fish care system. This heater plate will turn on whenever necessary (when the temperature of the aquarium is detected to be too high) and thereafter it will stay on until the temperature of the aquarium has reached the desired temperature. This works simply by connecting to an external 12v power source (so just a plug point), this will have to be controlled (turned on or off) by an external switch connected to the arduino to control this. It cannot be connected directly to the Arduino as the Arduino only supports providing power upto 5v hence this heater plate requires 12v. The arduino code will be simple logic ie (if sensors.getTempCByIndex(0) <= threshold1 THEN switch.on() and thereafter if sensors.getTempCByIndex(0) >= threshold2 THEN switch.off()).

For more information see:

https://www.electroniclinic.com/12v-dc-heater-plate-80w-ptc-heater-plate-12v-solar-heater/

https://www.youtube.com/watch?v=eWrkHLmWQJU

Possible purchasing link(s):

https://www.amazon.nl/-/en/Heating-Thermostat-Aluminum-Tempering-Optional/dp/B07Y5DKHBH

_

Servo motor

Servo motor

For the precise quantity of food to be dispensed a part must be moving for a certain amount of time to push or release the food into the water, and then stop. After some research it appear that a common way to achieve that is with an Archimedes screw rotated by a servo motor for a specific amount of time. This method as several advantages: it provides a continuous flow of food, such that any desired quantity can be precisely delivered, it only takes a small amount of space, and is relatively easy to implement as 3d models of Archimedes screws compatible with servo motors are available online. The servo motor can be directly connected to an Arduino via a 5V VCC and a ground pin. It is controlled very precisely, which allows for a very specific amount of food to be dispensed. It then suffices to write a line of code that sends power to the motor pin for a certain amount of time every x seconds, which are to be determined based on parameters given by the user (number of fishes, size of fishes...).

For more information see:

https://en.wikipedia.org/wiki/Servomotor

https://www.youtube.com/watch?v=tHOH-bYjR4k

Possible purchasing link:

https://www.tinytronics.nl/en/mechanics-and-actuators/motors/servomotors/ts90d-mini-servo-1.6kg-continuous

Microcontroller and communication

Microcontroller

Arduino Rev3

A microcontroller is needed to activate the actuators based on the data received by the sensors and the user. A very popular line of products for this kind of projects is the Arduino line, which provides rather cheap microcontrollers that are very modular and compatible with plenty of sensors and actuators via serial communication with pins. The most popular Arduino model is the UNO Rev3 which is based on a ATmega328P processor with 14 digital and 6 analog inputs/outputs. However it does not have built-in wi-fi, so another module such as the ESP8266 must be connected to it. Another option would be the Arduino Uno R4, which directly has wi-fi connectivity. Both products are compatible with the Arduino IDE software that is used for development, with a simple language to control the pins.

For more information see:

https://store.arduino.cc/products/arduino-uno-rev3

https://store.arduino.cc/collections/boards-modules/products/uno-r4-wifi

Possible purchasing links:

https://www.tinytronics.nl/en/communication-and-signals/wireless/wi-fi/modules/esp8266-wifi-module-esp-01-1mb

https://www.tinytronics.nl/en/development-boards/microcontroller-boards/arduino-compatible/arduino-uno-r4-wifi

_

Wi-fi module

ESP8266

In order to communicate with the mobile app the device must have a way to send and receive the data. A common way to achieve this with an Arduino is with the use of an ESP8266 module for Arduino. This modules enables wi-fi transmission and then transmits the data via serial communication to the microcontroller. Wi-fi is ideal for our user target group because personal fish tanks are generally in houses, meaning that a router will always be nearby to send the data over the internet. Another option would be to directly use an Arduino model that has wi-fi connection integrated, such as the Arduino Uno R4.

For more information see:

https://docs.arduino.cc/arduino-cloud/guides/esp32/

https://docs.arduino.cc/hardware/uno-r4-wifi/

Possible purchasing links:

https://www.tinytronics.nl/en/communication-and-signals/wireless/wi-fi/modules/esp8266-wifi-module-esp-01-1mb

https://www.tinytronics.nl/en/development-boards/microcontroller-boards/arduino-compatible/arduino-uno-r4-wifi

Database

In order for users to control the device remotely, there needs to be a server that takes requests from the mobile app and transfer them to the Arduino over the internet. A popular database for this kind of application is Google's Firebase. It is very easy to use, is already integrated in Android Studio, the software used to develop android apps, and also has its own Arduino library. An the Android side, it suffices to call FirebaseDatabase database = FirebaseDatabase.getInstance() and DatabaseReference myRef = database.getReference() to instantiate connection with the database. The database would consist of a set of values for each parameter, such as the optimal value, the current value, or the time when it was least measured. The application code would then use Firebase's API functions such as setValue to change these values on user input, or functions like onDataChange or valueEventListener to trigger an action when a value has been changed. On the Arduino side, we connect to the database with its url and authentication key, by calling Firebase.begin(url, key), and then use Firebase.getString() to get values from it, or Firebase.getString() to set the values.


The database could be organised in the following way: each record would be uniquely identified by a deviceID that is bound to a physical deviced and is shipped with it to users. Users could then enter it in the app when they set up the device to reference it. This way they are able to control several different devices from the app. In each record there would also be all the current and desired water parameter values, as well as other useful values such as the time the parameters were last measured, the time the food was last dispensed, or a boolean value indicating if the system is still functioning correctly. These values can then be accessed to read or write by both the Arduino and the mobile app, which are linked by the deviceID.

The Firebase Real Time Database is organized in a tree-like manner where each node is a associated with a number of children nodes, the database object being the root node. In this format, each device is a direct children of the root node, identified by its unique deviceID, and its children are the following attributes:

- desiredTemp, the desired water temperature set by the user,

- currentTemp, the last recorded water temperature,

- pH, the last recorded pH,

- turbidity, the last recorded turbidity

- desiredFoodMass, the desired food mass to de dispensed at each cycle of the feeding process,

- desiredFoodInterval, the desired interval at which fishes are fed.

- malfunction, a boolean indicating if the device is malfunctioning

-lastFedTime, the date and time at which the fish have last been fed

Equations To Model Temperature

The temperature of the water inside the tank can be predicted by the use of Physics. On every moment of time, we can predict future temperatures. The temperature at a time t, will be influenced by the temperature at t=0, the heater and any external factors like room temperature. The temperature change caused by the heater will also depend on the amount of water in the tank and the specific heat capacity. This specific heat capacity will determine how much energy is needed to warm up the tank 1°.

The surrounding environment can have an influence on the temperature. Newton’s cooling law explains the transfer of heat from or to the surroundings. The rate of change in temperature will be equal to k(M-T) with M and T being the temperature of the surroundings and of the water respectively. k is a positive proportional constant. Solving this equation yields T = M + e^(-k*t) for a cooler environment, and minus the exponential for a warmer environment. This only holds if the environment was the only factor in the system causing temperature changes.

The heater plate is a ptc heater plate, characterized by a exponential heating curve. We can estimate the power of the heater plate using the following equation:

P(t) = Pmax(1-e^(-kt))

This is for heating the plate, the cooling down will look similar but decays exponentially. Pmax is given by the seller. with around 25W you should have enough to heat a 20l tank. k is a constant specific for the plate. It characterizes the speed of the heating up.

The total temperature of the water can be captured in the following differential equation:

P(t) = m*c*dT/dt + U*A*(T(t)-Tenv)+Qev/dt

Here P(t) represents the power of the heater, m the mass, c the specific heat, U the overall heat transfer coefficient and A the surface area. This U could be different for each material and location of the tank, so should be estimated. It depends on the thickness of the glass and the properties of water and glass. The equation only holds for heating above room temperature.  

1/U = 1/hwater + dglass/kglass

With h being the transfer coefficient for water, d the thickness of the glass and k the thermal conductivity, being around 0.8-1.2. This is the coefficient for the 4 sides of the aquarium. The top side doesn’t have glass in contact with the water, should be seen as air-water surface. The bottom will have strong thicker support, like table or other stand, which will cause minor temperature loss.

The specific heat of water is a known constant, as it represents the amount of energy needed to heat up a kg 1 kelvin. The difference between T and Tenv influences the amount of heat lost to the environment.

Qev/dt is the amount of heat lost due to evaporation. Evaporation will be the main cause of heat loss, and will cause drops below room temperature. Therefor the heater will need to help bring the system back to room temperature.

Qev/dt = hfg * A* (P-Pvapor) = c2

Hfg is the evaporation heat of water, O the evaporation coefficient, A the surface area and P the humidity ratio. This is specific for each water temperature, which creates a difficult differential equation (as the formula for P is difficult). It is better to take an average value for the temperatures the system will lay around.

The heater will be able to transfer a certain amount of energy into the tank. For this it will need to heat up and cool down. We can use the formula to predict when to power the heater to end up at the right temperature each time. When the power is switches off, there is an finite amount of heat or energy still left inside the plate, this plate will then cool off until it reaches the same temperature as the water, during which this energy transfers into the water. This could be tested, so the formula is adjusted/shifted.


T(t) = (e^(-k t) P)/(-A U + c k m) + (-c2 + P)/(A U) + e^(-((A U t)/(c m))) ((c2 - P)/(A U) + P/(A U - c k m) + T0 - Te) + Te

P is the maximum power of the heater

A the surface area the tank could lose heat through. A bigger tank will lose less heat relative to a smaller tank, as the surface area / volume ratio is bigger.

c2 is the energy lost per time due to evaporation. As stated this should be constant for small disturbances in T.

Te is the environmental temperature, and T0 the starting temperature.

t=0 gives T0 and t-> inf gives T=Te +(P-c2)/(A U)

A and U can be large, which shows that sufficient power is needed to heat a system to a high temperature.

The model does not make any sense for t < 0, so this can be left out.

For aquarium that remain room temperature, a material like glass should be chosen, as it lets through heat more easily. IF the desired temperature is above room temperature, a strong heater and a different material is needed, like acrylic.

temperature spreading through a body can be described by the heat equation. If u(t,x,y,z) gives the temeprature in time and space, du/dt = a*▼2 u , with ▼2 the Laplacian operator.

Equations To Model PH

pH = -log(H+)

The pH depends on the concentration of H+ ions in the water. Certain substances react with water and give an H+ ion to the water. The pH will slightly increase when the temperature decreases. Because the conditions change, the equilibrium does too.

Relationship Between Turbidity And Voltage

By definition, turbidity is defined as total suspended solids (TSS)[2]. It is primarily a mechanism to measure how clear the water is (measure the particles bigger than 10 microns in the water). Turbidity is essential to test water quality and to ensure the water is clean which is especially important for aquatic life as it can impact their growth, quality of life, affecting gill functions and reproductive abilities[3]. Turbidity is measured in a unit called Nephelometric Turbidity Unit (NTU), this is judged by the amount of “scattering of light”, if there is more scattering of light there is higher turbidity (meaning the water is more dirty) and likewise a lower scattering of light indicates a lower turbidity and therefore cleaner water[4].


The sensor used to measure turbidity (gravity Arduino Turbidity sensor from DFRobot) actually sees the amount of light transmitted and received when the sensor is activated and this is measured in voltage, then a special relationship between voltage and turbidity is established to determine the turbidity in NTU of the water.

Graph of voltage against turbidity[5]

The relationship between the voltage measured and the turbidity of the water can be represented as:

y = -0.0012x + 4.0769 with an R squared coefficient of 0.998[6]. The graph for this can be seen from the right:

Where y is the voltage (in volts) and x is the turbidity (in NTU). From this there is a clear inverse relationship between turbidity and voltage due to the negative slope and the high R squared value indicates the reliability in this function therefore showing the negative gradient is not due to “chance” or unreliability in the data used.

Graph of turbidity against voltage[7]

Therefore, once the sensor retrieves the analog read in the code from performing an “Analog read” from the pin which the turbidity sensor is connected to, we can use the equation above to convert it to the appropriate turbidity level once we have converted it to an appropriate voltage:

float sensorValue = analogRead(turbidity_sensor); //This line retrieves the “analog” reading from the sensor

float voltage = sensorValue * (5.0 / 1024.0); //This line converts that analog reading to a voltage we use 5.0 / 1024.0, since 5 is the max voltage which can be measured, and it takes 1024 steps hence 5.0 / 1024.0 gives the maximum voltage per steps (the voltage).

float turbidity = (4.0769 – voltage) / 0.0012 //This is using the equation above to represent turbidity as a function of voltage.


However, there is also an alternative quadratic formula proposed for the relationship between turbidity and voltage, which is the following:

y = -1120.4x2 + 5742.3x – 4352.9[8].

Where y is the turbidity (in NTU) and y is the voltage (in volts). From this there is a clear inverse relationship between turbidity and voltage due to the negative slope and the concave down, negative graph given.

This would change the last line of code (the conversion from voltage to float) to the following:

double num1 = -1120.4 * (voltage) * (voltage)

double num2 = 5742.3 * voltage

float turbidity = (float) num1 + num2 - 4352.9

Keep in mind for this you would need to use the following import for both above calculations: #include <math.h>

Feeding mechanism

The feeding mechanism is composed of an Archimedes screw conveyor which is rotated by a servo motor for a certain amount of time at a certain speed each time the fishes need to be fed. To determine the right speed and amount of time to activate the motor based on the desired food quantity, we need to know the flow rate of the screw.

The flow rate Q is defined as the volume of a fluid per unit of time passing through an area, in m²/s. For an uniform flow with velocity V through an area A, the flow rate of an incompressible fluid can be calculated using the continuity equation[9]:

Q = AV

We assimilate the fish food as a fluid due to the small size of the food grains. A similar assumption as been made for modeling a livestock feed conveyor.[10] However as the screw cylinder is never completely full of the fluid, the area it passes through is smaller than the cylinder cross section area. We call this real area the effective area AE. Moreover the velocity of the fluid is equal to the screw axial transition speed VT, which is given in rotation/s as:

VT = Sω/2π = Sn/60[9]

With S being the pitch of the blades in meters and ω the angular velocity in radiant per second, or n being the number of rotations per minute. Therefore we can express the flow rate as:

Q = AEVT = AESn/60

To determine AE, we can also view the flow rate as the volume of fluid evacuated in one rotation of the screw multiplied by the rotational speed of the screw[11]. That is, it is the volume of fluid contained between two blades of the screw, multiplied by its rotational speed. We call the space between two blades a bucket. The effective area is thus the cross section area of the cylinder multiplied by a loading ratio φ, determining which proportion of a bucket is actually filled by the fluid. This is multiplied by the inclination coefficient C which here is 1 as the screw is horizontal The effective area is therefore:

AE= φA = φ*(Do2-Di2)*π/4*C = φ*(Do2-Di2)*π/4

With Do being the outer diameter of the screw (i.e. the diameter of the cylinder) and Di the inner diameter (i.e. the diameter of the axis of the screw).

Combining the last two equations gives:

Q = π/4*φ*(Do2-Di2)*S*n/60

However because recommendations on food quantity is often expressed as a mass, we convert the volumetric flow rate to the mass flow rate, also called conveyor capacity, by multiplying with the fluid density ρ:

Qmass = π/4*φ*(Do2-Di2)*S*n/60*ρ


Finally, to determine the amount of time t the motor is activated for in seconds, assuming a fixed rotational speed, we divide the needed food mass m by the conveyor capacity:

t = m/Qmass

State Machine Diagram

State Machine Diagram For Our Aquarium Manager

On the right hand side we see our initial approach at our automated aquarium manager represented clearly using a state machine diagram. In this initially the manager is off and when it is turned on (assuming there is power) it sends a notification to the user that it is on. It stays in a so called "checking state" in which the sensors are continuosly run until an issue is detected. For example if the temperature is too low, it exists the checking state (which turns off all the sensors), and enters the heater on state which turns on the heaters and only exits this state when the target temperature is reached (the event temphigh is met) then it turns off the heater. Similarly whenever the ph is too low it goes to the PHLow state subclassed in PHControl and releases the required chemicals to improve the ph and thereafter it goes back to the checking state (similar for PHHigh). Whenever there is high ammonia concentration detected it sends a notification to the user about this so it can be resolved as soon as possible in the NotifyAmmonia state subclassed in Notify User, once this notification is sent it goes back to the checking state again (similar for NotifyDirt). It ensures these NotifyUser substates are only entered if the notification hasn't already been sent (otherwise it will keep sending the same notification again). In the do/ in the checking state we check if the user has resolved the notification about high ammonia / dirt until we activate sending a notificiation for that issue again. Furthermore, we can see that if the manager is in the "HeaterOn" state and there is an issue regarding the PH, ammonia or dirt in the water it will exit that state temperoarily to send a notification to the user (relatively quick process ~5 seconds) or resolve the PH issue (just a rotation of the servo motor again this would take maximally around 10 or 15 seconds) and then return back to the HeaterOn state until the sufficent temperature is reached. Notice when exiting the HeaterOn state the exit statement is that the heater turns off this is not an issue as the processes in PHControlNotifyWhileHeaterOn take a maximum of 15 seconds therefore that won't do any harm to the fish regardless. Furthermore, appropriate variables are set to that it doesnt continuosly keep uncessarily notifying the user about the issue even if they have resolved it.

Circuit Diagram

work

Power Source

The power source that will be used for this project depends on factors around the specification of the project as well as the parts that are going to be used in order to create the final prototype. We specify the constraints that will determine what kind of power source will be appropriate for this project below.

Specification requirements:

As per the specifications the prototype of the product must have the following sensors:

-         pH sensor

-         temperature sensor

-         Ammonia sensor

-         Turbidity sensor

The pH sensor has a voltage requirement of 5V, the turbidity sensor requires 5V, the temperature sensor can be powered by either 3.3V or 5V depending on the variant lastly the ammonia sensor requires 5V.

The microcontroller chosen will be a variant of the Arduino board, Arduino boards including both nano and uno require a minimum input voltage of 7V and a maximum of 12V. Arduino uno models all have a 5V output pin as well as 3.3V pins. The pH, turbidity and ammonia sensors can all operate with 5V minimum however the temperature sensor can operate using just the 3.3 volt pin. Based on these power requirements, we can power all of the sensors in two configurations, either powering all of the sensors in parallel off the 5V pin or powering all sensors but the temperature sensor with 5V pin while powering the temperature sensor with the 3.3V pin. This can be done on all uno boards, some IoT nano boards however only have a 3.3V pin, these can hence not be used.

The prototype also requires additional components that will draw power outside of the sensors. These components are the heater plate as well as the servo motor. The servo motor requires 5V of power and can hence be connected to the 5V pin as well along with the other sensors. The heater plate requires 12V of power meaning that it cannot be powered by the Arduino. The heater needs to be powered by an external power supply. It is a possibility to use a step up buck convertor to convert the 5V input to 12V but then the current drawn by the 5V pin would exceed the arduino’s limit potentially and also buck convertors generate a lot of heat under such intense application which would not be desirable.

A good solution in order to power the entire circuit would be to power both the Arduino and it’s connected sensors and components as well as the heater in parallel. This can be done as both the Arduino as well as the heater can take 12V of power. The maximum rating of the Arduino is 12V, hence the rating can be met.

There are two ways to power the entire circuit and they depend on the use cases, one would be if the product can be connected to a power outlet, in that case it would be possible to use a cheap 12 V 2A barrel connector power supply that can be connected to the wall. The cable would need to be sliced and an additional wire would need to be soldered to the power supply in order to power the heater plate in parallel. Another possibility could be to use a pack or rechargeable cells that have a total power output of 12V. This could be done using regular alkaline battery cells/ rechargeable cells in parallel. Another solution could be to use a Li-Po battery pack however these would require a BMS circuit in order to prevent the battery from overcharging and undervoltage problems.

Sources With Summaries

1. Automated Monitoring System for the Fish Farm Aquaculture Environment

(https://www.researchgate.net/profile/Debabrata-Bej/post/Can-someone-recommend-a-good-article-on-sensor-networks-applied-to-monitoring-a-fish-farm/attachment/5f6ed9ade66b860001a46443/AS%3A939896537612289%401601100205417/download/07379340.pdf)

The paper introduces a method for fish farmers to actively control their farm. They introduce a problem of waste, unnecessarily created by a lack of monitoring their fish. The waste can be reduced by actively tracking the fish and feeding when needed. They also state that, for optimal farming, the conditions in such a tank should be kept at certain rates. The team establishes a device to monitor the data acquired, using simple but accurate sensors. They describe a way to measure the most important values and how they created a system available for the user. They create a software program that runs on android devices to give the farmers access to the results, and create a space where the farmers can change certain values based on the fish their needs. The paper doesn’t specifically state for which levels the system is made, and what would be optimal for certain species. The energy management of the system is very efficient, and because of the WIFI implementation they created an accessible system.

_

2. Design and implementation of a smart monitoring system for water quality of fish farms

(https://www.researchgate.net/profile/Nahla-Alchalaby/publication/333356582_Design_and_implementation_of_a_smart_monitoring_system_for_water_quality_of_fish_farms/links/5cf175dca6fdcc8475fb7cc3/Design-and-implementation-of-a-smart-monitoring-system-for-water-quality-of-fish-farms.pdf)

The paper focusses on the creation of a monitoring system for fish farms. The authors try to give real time information to the farmer via a mobile app. They see the rapid change in the health and agriculture sector towards a fully monitored and perfected system. The authors use an Arduino UNO and a pH and temperature sensor to monitor the values in the tanks. The user can use his phone with a Bluetooth connection to connect and get the real time information on their mobile device. There are some major improvements that could be made compared to this project. The information is quite limited and could be extended on. Also we could try to implement a more autonomous system that does certain tasks like changing pH or giving food. The system could also be upgraded to be more up to date and accessible.

_

3. Aquarium Monitoring and Automatic Feeding System Based on Internet of Things

https://ojs.unikom.ac.id/index.php/injuratech/article/download/10012/3770/

This article focuses on creating aquarium monitoring and automatic feeding systems for ornamental fish tanks and fish farms to support this high demand industry in Indonesia. The project focuses on 3 sensors and 1 actuator, namely the temperature sensor, pH sensor and turbidity sensor and a servo motor for the automatic feeding system. The idea is to have this system work togeather with a smart phone application that has 3 panels. A home screen that displays weather information for outdoor systems as well as displaying the feeding schedule and options to adjust it. The second panel focuses on monitoring the environmental data such as displaying temperature, pH and turbidity data. The final panel focuses on sharing the data and/or generating reports to be exported.

_

4. Aquarium Monitoring System Using Sensors

https://ajast.net/data/uploads/10119.pdf

This paper addresses the issue of fish tank maintenance time for homeowners and possible inconveniences it causes. The solution proposed is a fully automatic system that feeds the fish, monitors and displays temperature and a water circulating system with the additional function of heating that controls water temperature. This process of heating water when its circulating through pipes instead of directly adding a heater to the tank water allows for better and consistent temperature control. The fish feeder works with a simple servo motor and container controlled by an Arduino.

_

5. Monitoring the Value of Water Quality and Condition Parameters Using the Open Sensor Aquarium

https://iopscience.iop.org/article/10.1088/1742-6596/1255/1/012036/pdf

This research paper details a complete fish tank management system that collects data, betters the fish tank environment parameters and displays the information on a webpage. The system consists of sensors such as a CS-CO057 water level sensor, pH sensor, DS18B20 temperature sensor and analog electrical conductivity sensor that is all connected to an Arduino that sends the data to the server using a SIM900 transmission module. The actuators are a water heater that responds to temperature changes detected and an automatic feeder that operates at scheduled times. This system was tested for long term use.

_

6. A multi-functional fish tank remote monitoring system based on STM32

https://francis-press.com/papers/7016

This research paper focuses on a system suitable not only for ornamental fish tank keepers but also fish farming enthusiasts. Apart from the typical sensors such as temperature, turbidity, pH and water level sensors, this system also comes with a camera module and voice module to cater to the ornamental fish breeding and training aspect. All the sensors are connected to the STM32 core controller which is also connected to actuators such as servo motors for feeding and a wireless transmission module for sending data to be remotely accessed.  

_

7. Smart Aquarium Management System

https://www.researchgate.net/publication/345690191_Smart_Aquarium_Management_System

The paper discusses the development of a Smart Aquarium Management System designed to automate and remotely monitor aquarium conditions, including temperature, pH levels, feeding schedules, and aeration through an IoT-based solution. The system aims to reduce manual maintenance efforts by allowing users to control and monitor their aquariums via mobile application, ensuring optimal living conditions for fish. It also aims to replicate natural conditions as closely as possible, ensuring the health and well-being of fish and other aquatic organisms. This innovation addresses challenges faced by aquarists, such as feeding fish during absences and maintaining water quality, by providing real-time data and controls through a user-friendly interface.

_

8. Implementation of Smart Aquarium System Supporting Remote Monitoring and Controlling of Functions using Internet of Thingshttps://www.researchgate.net/publication/337567490_Implementation_of_Smart_Aquarium_System_Supporting_Remote_Monitoring_and_Controlling_of_Functions_using_Internet_of_Things

The article presents the implementation of a smart aquarium system that uses Internet of Things (IoT) technology for remote monitoring and control of aquarium functions. It introduces a fully automated system capable of operating without human intervention, focusing on features like mechanical fish feeding over the internet and monitoring parameters such as feed level, water temperature, pH, and water level remotely. The authors use various tools such as Arduino Mega 2560, ultrasonic sensor, ESP8266, LCD 20x4, PH sensor, temperature sensor, water pump motor, servo motor, four-channel relay module, water heater, and fan. These components work together to automate and remotely manage aquarium conditions, enhancing efficiency and facilitating non-intrusive care for aquatic life​.

_

9. A Review of Smart Fish Farming Systems

https://www.researchgate.net/profile/Faizan-Mustafa-4/publication/305818856_A_Review_of_Smart_Fish_Farming_Systems/links/5def2c0d299bf10bc34ec44a/A-Review-of-Smart-Fish-Farming-Systems.pdf?_sg%5B0%5D=started_experiment_milestone&origin=journalDetail

The paper provides an in-depth look at the application of AI in aquaculture engineering, focusing on the use of Artificial Neural Networks (ANN) to enhance water quality management for fish farming. It highlights the potential of AI to automate the monitoring and adjustment of critical parameters such as salinity, oxygen levels, pH, and temperature, ensuring optimal conditions for aquaculture. This integration aims to increase efficiency, reduce costs, and promote sustainable practices within the fish farming industry, demonstrating a significant advancement in aquaculture technology.

_

10. Intelligent Fish Tank Based on WiFi Module

https://front-sci.com/journal/article?doi=10.32629/jai.v1i1.16

The paper presents an innovative intelligent fish tank system that leverages a WiFi module for remote monitoring and control via an Android smartphone. Utilizing the STC89C52 microcontroller as its core, the system employs sensors to track water temperature and level, adjusting the latter as needed and allowing users to interact with the tank in real-time from anywhere. This approach showcases the practical application of IoT technologies in enhancing the care and management of aquatic environments, demonstrating significant advancements in home automation and smart device integration.

_

11. An Intelligent Behavior-Based Fish Feeding System

https://ieeexplore.ieee.org/abstract/document/7473754/?casa_token=di9yPTP-HA4AAAAA:AlsYqSYDXJyVp_m9uH40Kq-Nk0SMd4lePdkq0nqAAbOWJc3xZ9b2cmPpWf0cJBOeqENJHWc3sQ

The paper discusses an adaptive smart fish feeder system that adjusts feeding times and amounts based on observed fish behavior, aiming to solve problems associated with traditional feeding methods in aquaculture. This innovative system is expected to enhance fish welfare by reducing food competition and waste, thereby improving water quality. The study highlights the potential for increased farm productivity and efficiency through customized feeding strategies informed by fish responses, suggesting significant advancements in aquaculture practices.

_

12. Recent Advancement of the Sensors for Monitoring the Water Quality Parameters in Smart Fisheries Farming

https://www.mdpi.com/2073-431X/10/3/26

The paper discusses the use of machine learning method such as K-Nearest Neighbors, Random Forests, Decision Trees, Regression and Principal Component Analysis to categorize the quality of water for fishes. It proposes water temperature, pH, nitrites and nitrates, phosphorous, calcium, magnesium and dissolved oxygen as input parameters for these methods. The paper then proposes a system consisting of two water pumps controlled by a pump controller, a nitrate sensor and an impedance analyser as well as other sensors for all the parameters, all of this controlled by an arduino UNO. The system uses a LoRA shield for communication and is powered with a 12W solar panel and a battery. The collected data is sent on a cloud server to be analyzed on a user application. The estimated cost of the prototype is USD 250.

_

13. Water Quality Monitoring System for Fisheries using Internet of Things (IoT)

https://iopscience.iop.org/article/10.1088/1757-899X/1176/1/012016

The paper discusses the use of the Internet of Things to monitor fish and water in a fish production pond. It proposes a system with temperature and pH sensors, as well as a ultrasonic sensor for fishes controlled by an NodeMCU microcontroller and a ESP8266, which sends the data via wi-fi to a Blynk database that also sends notifications by e-mail. The conclusion of the experiment conducted with this system is that such an IoT device is able to efficiently track the quality of water for fishes, though some adjustments could be made to improve it, such as having a better user interface to track the data, adding more parameters in defining the quality of water, and using LoRaWAN for communication.

_

14. Design and Deployment of Low-Cost Sensors for Monitoring the Water Quality and Fish Behavior in Aquaculture Tanks during the Feeding Process

https://www.mdpi.com/1424-8220/18/3/750

The paper discusses the use of low-cost sensor for monitoring fishes and water in fish farms. The proposed system monitors water quality parameters, tank status, feed falling and fish swimming behavior. It uses a thermistor type negative temperature coefficient (NTC) temperature sensors, an inductive sensor for measuring conductivity an optical turbidity sensor and IR photodiode oil sensor. These are controlled by an Arduino MEGA with an ESP8266 wi-fi module. The system also uses smart protocols to send only the relevant information over the network to reduce energy waste. The estimated total cost for sensors is less than €90.

_

15. Development of Domestic Animals Shelter Environment Monitoring System using Internet of Things (IoT)

https://ieeexplore.ieee.org/document/10169332

This paper addresses the problems that occur in domestic animal shelters. They propose a solution using a system to control and measure certain parameters in those shelters. Using sensors and a microcontroller, the Arduino, they monitor the temperature, humidity, motion and gas levels. This is send to a blynk application where a farmer can view real-time values and get alerts when certain events occur, like high gas levels. The system also regulates the water and temperature in a shelter, by continually checking values and responding. The author states there can be a lot of improvement, like implementing more and better sensors.

_

16. IoT-Based Fish Farm Water Quality Monitoring System

https://www.mdpi.com/1424-8220/22/17/6700

This paper proposes a system to monitor water quality in fish farms. The system uses a robotic arm to submerge and take the sensors out of the water. The temperature sensor uses the constant voltage method and a low pass filter to reduce temperature noise drift and improve the accuracy. It also uses a water overflow sensor to prevent water from overflowing which could allow fishes to escape the tank. The system also monitors pH and dissolved oxygen. Finally, it uses LoRa for the wireless communication. The authors suggest to to improve the system with the use of deep learning and machine learning to better analyze the water quality.

_

17. Water Monitoring IoT System for Farming Ponds

https://stumejournals.com/journals/i4/2018/2/77.full.pdf

This paper describes an IoT system for monitoring water quality in fish farms. It uses an arduino MEGA2560, a temperature and water level sensor, as well as a clock. It controls a heater and lights to adjust the water temperature, displays the information on a LCD screen and notifies the user with a buzzer. It also uses the Wivity modem to provide internet connectivity. this module also implements a complete internat protocol stack to send data via HTTP to a cloud server. The authors suggest using more sensors to monitor other parameters such as dissolved oxygen or pH.

_

18. Aquaculture monitoring and control system: An IoT based approach

https://www.ijariit.com/manuscripts/v5i2/V5I2-1706.pdf

The paper proposes a distributed system for monitoring water turbidity, temperature and pH. The system is modular, portable and low-cost. It uses turbidity, temperature water level and pH sensors connected to a Raspberry PI. The data is sent to a cloud database and can then be retrieved via a mobile app. With the app users can also control the water flow and receive notification when the data exceeds a given threshold range. The system uses the ThingSpeak API to send the data onto the cloud. The conclusion of the experiment ran with the system is rather positive towards to use of IoT in fish farms.

_

19. Microcontroller Based Water Treatment Scheme for Fish Farming

https://ieeexplore.ieee.org/document/10406986

This paper sees the big growing market of fish farmers and highlights how we should implement todays technology into these farms to control and improve quality. They give multiple optimal parameters for multiple species of fish. The sensors used are all viable in these conditions. Their design focusses on temperature, pH and turbidity. Using an Arduino Uno and a GSM module, they create a system to track and monitor the values inside such fish tank. Chemicals can be used to control pH and a filter for the turbidity. They use multiple chemicals to lower or higher pH levels. The paper only gives a brief idea on how such structure should look, not creating a solution. Using the authors plans we could build such system, or parts.

_

20. Design and Analysis of IoT-based Aquarium Monitoring System for Guppy Fish Habitats

https://ieeexplore.ieee.org/document/10010912

This paper focusses on the improvement of health of guppy fish. They state that, following past research, optimal water quality is key to maintaining health fish. Using IoT, which has become more and more important due to the ability to transfer data between all kinds of devices, They want to reduce cost, work and time for fish owners. Using sensors for pH, turbidity and temperature, they create an system to test values in a tank and send them to a mobile device. With their system they test the impact of food types on the water quality and find that BBS type foods are better than pallet type foods. Furthermore they are able to create a simple but useful program to monitor the values in such fish tank. An improvement could be made on the amount and quality of sensors, or on the user interface, using a modern style app.

_

21. Aquarium Water Quality Management

https://www.researchgate.net/publication/268195853_Aquarium_Water_Quality_Management

This paper talks about fishes basic needs to live in aquarium water and the quality of the water. It provides data and insights on the optimal PH, oxygen, hardness, chlorine, temperature, salinity, hardness and more of the water for distinct fish species for their optimal survival and also for breeding purposes. Furthermore, there are tips for cleaning the water and resolving any conflicts regarding the water quality.

_

22. Aquarium Water Quality Management for Freshwater Ornamental Fishes

https://www.researchgate.net/publication/259358028_Aquarium_Water_Quality_Management_for_Freshwater_Ornamental_Fishes

The research paper above provides insights on optimal water chemistry for the health of aquarium fish. It emphasizes the importance of a very specific amount of chlorine for optimal wellbeing of the fish (in a range), tips for cleaning and removing chlorine is present as well as other filteration techniques to remove other waste. Furthermore, for healthy fish they emphasize on regular water cleanings with not exceeding threshold for water changes to put less stress on the fish and to apply certain instruments or minimize the "noise" in the aquarium overall.

_

23. Automatic Water Quality and Fish Feed Monitoring System in Aquarium Using LORA

https://www.researchgate.net/publication/372513381_Automatic_Water_Quality_and_Fish_Feed_Monitoring_System_in_Aquarium_Using_LORA

This article talks about how the growth and development of certain types of fish is influenced by factors such as the water temperature, PH level, quality of food and water turbidity. It mentions the importance of feeding and how some owners forget to or are unaware of this and to the quality of the water and condition of their fish tank. They have used an Arduino UNO microcontroller to build a system to feed the fish and maintain good water coditions. It mentions a PH of 6-8 is ideal alongside a temperature of 23-30 degrees celcius and water turbitity of 0-2500 NTU. LoRa SX1278 is used as a communicator service alongside a turbidity sensor and a DS18B20 temperature sensor, PH sensor, RTC, relay and a water pump. The sensors equipped continuosly monitor the water conditions using the LoRa and if the condition of the water is not to standard, the water pump is turned on.

_

24. Seneye POND V2 - monitoring system for ponds

https://www.marine-aquatics.eu/en/seneye-pond-v2-monitoring-system-for-ponds?ItemIdx=2

Article details existing product that monitors the PH level inside of a koi pond. Ammonia poisoning is one of the factors that cause the death of fish. The software automatically monitors the inside of the pond to detect toxic ammonia (NH3) traces at very low levels. The product is also able to detect swings in PH and temperature which could be harmful for the health of the fish. The device can be placed inside of a filter or can be set to float atop the pond.

_

25. Design of water quality monitoring system for aquaculture ponds based on NB-IoT

https://www.sciencedirect.com/science/article/abs/pii/S0144860919301189

Article details a project based on Narrow Band Internet of Things technology. enables remote collection and storage of data from multiple sensors such as temperature, pH, dissolved oxygen. It also provides centralized management of breeding ponds. The system described in the article uses the STM32L151C8 microcontroller and sensor terminal. This gives it real-time data acquisition, the data is then aggregated and transmitted over large distances to a IoT cloud platform through NB-IoT. The system has been tested in ChangZhou, JiangSu, China. The test demonstrates the system's ability to acquire water quality parameters on time with high degree of accuracy and reliability, this provided strong support for aquaculture production management and water quality regulation. A similar idea could also be implemented in order to monitor the parameters for an appropriate environment for fish across a spread out network of fish ponds.

Logbook

Week Student Work Done Total Time
1 Saqib Intro Lecture (2 hrs), Setup Wiki (0.5 hrs), Worked On Introduction (2 hrs), Research Papers And provided Summaries (1 hrs) 6.5 hrs
Mara Worked on "Users" (0.5 hrs), Researched papers and provided summaries (3h) 3.5 hrs
Aseem intro Lecture (2 hrs), worked on / edited introduction (1 hrs), read papers and added summaries (3 hrs) 6 hrs
Adrien Intro Lecture (2 hrs), Researched papers and provided summaries (3hrs), Plan and milestones (0.5hrs) 5.5 hrs
Nout Intro Lecture (2hrs), worked on introduction and planning (2h), read papers and make summaries(3hrs) 7 hrs
Sanshray Intro Lecture (2 hrs), Researched papers and wrote summaries (2 hrs) 4 hrs
2 Saqib Meeting (2 hrs), Research and summary of sensors (6 hrs), Worked on state machine diagram (2 hrs) 10 hrs
Mara
Aseem Feedback session (0.5 hrs), meeting (1.5 hrs), Research and report on environmental parameters and optiomal conditions for fish (12 hrs), planning tasks (1 hrs) 15 hrs
Adrien Feedback session (0.5 hrs), meeting (1.5 hrs), Research on sensors, actuators and design (6 hrs), report on wiki (4 hrs) 12 hrs
Nout Feedback session(0.5 hrs), research on state-of-the-art (2 hrs), worked on specifications (2.5 hrs), problem statement and introduction(2 hrs), IP code(2 hrs) 9 hrs
Sanshray Feedback session (0.5 hrs), Research about power sources (1 hrs), report about power sources (3 hrs), revision on CAD skills in siemens nx (3 hrs) 7.5 hrs
3 Saqib Feedback session (0.5 hrs), Worked on survey (1 hrs), Survey results summary (0.5 hrs), State Machine Diagram (1 hrs), Coding and relearing Arduino syntax and BLE communication (5 hrs) 8 hrs
Mara Worked on the design of the app using Figma (8.5 hrs), Worked on the use analysis (1.5 hrs) 10 hrs
Aseem Feedback session (0.5 hrs), worked on survey (2 hrs), researched circuit diagram (1hrs), researched relays and powering systems (2 hrs), learning arduino codeing (2 hrs) 7.5 hrs
Adrien Feedback session (0.5 hrs), research on database (6 hrs), research on components and design (4 hrs) 10.5 hrs
Nout feedback(0.5h), state-of-the-art(2h), IP-code(2h), research on users and needs (3h) 7.5 hrs
Sanshray Feedback session (0.5 hrs), Survey (2 hrs), research on android app dev (3 hrs), created preliminary CAD models (8 hrs) 13.5 hrs
4 Saqib Feedback session (0.5 hrs), BLE coding (5 hrs), Setup github (0.5 hrs), Final researching on parts (1 hrs), Turbidity research (3 hrs) 10 hrs
Mara Research on app development (2hrs), App development (5hrs), Meeting session (1 hrs) 8 hrs
Aseem Feedback session (0.5 hrs), meeeting (1 h), research on pH regulation for fish tanks (2 h), arduino code review (1 h), research on PDI for temperature control (5 hrs) 9.5 hrs
Adrien Feedback session (0.5 hrs), meeting (1 h), research on feeding mechanism (5h), formalize requirements (6h) 12.5 hrs
Nout feedback (0.5h), theory research and formula work(11h) 11.5 hrs
Sanshray Conceptual Designing (4 hrs), Design Sketches (1 h), Component prototype modelling (8 hrs) 13 hrs
5 Saqib Feedback session (0.5 hrs), Meeting session (1.5 hrs), Learning about Firebase and the realtime Database (2 hrs), Implementing PID in code (2 hrs), Implementing connecting Arduino to Firebase via WIFI (2 hrs), Ziegler and Nichols Tuning Methods Learning (1 hrs) 9 hrs
Mara Meeting session(1.5 hrs), App designs (features related to the design of the app using Photoshop) (1hrs), App development (6.5 hrs) 9 hrs
Aseem
Adrien Feedback session (0.5 hrs), Meeting session (1.5 hrs), Research on Firebase and realtime Database (3hrs), working on the app backend (4hrs) 9 hrs
Nout
Sanshray
6 Saqib Feedback session (0.5 hrs), Meeting session (1 hrs), Worked on building circuit for PID and temperature (6 hrs), Verified and checked components and circuit for PH and turbidity (4.5 hrs) 12 hrs
Mara App development (10hrs), Final presentation (0.5 hrs) 10.5 hrs
Aseem
Adrien Feedback session (0.5 hrs), Meeting session (1 hrs), Database (2hrs), Connecting Arduino to Firebase (3hrs), Final presentation (4hrs) 10.5 hrs
Nout
Sanshray
7 Saqib Feedback session (0.5 hrs), Meeting and working in innovation space (3 hrs)
Mara
Aseem
Adrien
Nout
Sanshray
8 Saqib
Mara
Aseem
Adrien
Nout
Sanshray
  1. Ash, E. (2024, February 26). Aquarium Controllers: 8 systems to control, monitor & Test your tank. Fish Tank Advisor. https://fishtankadvisor.com/best-aquarium-controller-reviews/
  2. Butt, Usman ali. “How to Measure the Turbidity in Water Using Arduino.” Engineers Garage, www.engineersgarage.com/how-to-measure-the-turbidity-in-water-using-arduino/. Accessed 9 Mar. 2024.
  3. Admin. “DIY Turbidity Meter Using Turbidity Sensor & Arduino.” How To Electronics, 22 Aug. 2022, https://how2electronics.com/diy-turbidity-meter-using-turbidity-sensor-arduino/. Accessed 9. March 2024.
  4. Admin. “DIY Turbidity Meter Using Turbidity Sensor & Arduino.” How To Electronics, 22 Aug. 2022, https://how2electronics.com/diy-turbidity-meter-using-turbidity-sensor-arduino/. Accessed 9. March 2024.
  5. Hakimi, I M, and Z Jamil. Development of Water Quality Monitoring Device Using Arduino UNO, IOP Conference Series: Materials Science and Engineering, 2021, https://iopscience.iop.org/article/10.1088/1757-899X/1144/1/012064/meta. Accessed 9 Mar. 2024.
  6. Hakimi, I M, and Z Jamil. Development of Water Quality Monitoring Device Using Arduino UNO, IOP Conference Series: Materials Science and Engineering, 2021, https://iopscience.iop.org/article/10.1088/1757-899X/1144/1/012064/meta. Accessed 9 Mar. 2024.
  7. Admin. “DIY Turbidity Meter Using Turbidity Sensor & Arduino.” How To Electronics, 22 Aug. 2022, https://how2electronics.com/diy-turbidity-meter-using-turbidity-sensor-arduino/. Accessed 9. March 2024.
  8. Admin. “DIY Turbidity Meter Using Turbidity Sensor & Arduino.” How To Electronics, 22 Aug. 2022, https://how2electronics.com/diy-turbidity-meter-using-turbidity-sensor-arduino/. Accessed 9. March 2024.
  9. 9.0 9.1 A.Yoosefdoost and W.Lubitz, Development of an Equation for the Volume of Flow Passing Through an Archimedes Screw Turbine, 2021
  10. M Liu, N. Wang, X. Chen, Y. Shan, J. Li, Design of feed screw conveyor, 2020
  11. G Dellinger et al 2016 IOP Conf. Ser.: Earth Environ. Sci. 49 102002: Numerical and experimental study of an Archimedean Screw Generator