Download MEproject_final2

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Smart Aquarium System
ME3484 Project Report
Group 6
HyungMo Kang
Joel Aurelus
Manuel Cruz
Ameer Burnett
Page 1 of 22
Table of Contents
Introduction………………………………………………………………………….2
Components………………………………………………………………………3-12
 Food Dispenser…………………………………………………………..3-4
 Water Level Sensor…..……………………………………………….4-8
 Temperature Sensor…………………………………………………….9
 Manual Shutdown Switches…………………………………………11
 Water Heater……………………………………………………………….11
Project Code……………………………………………………………………13-19
Cost Estimate………………………………………………………………….19-20
Conclusion…………………………………………………………………………….20
Page 2 of 22
Introduction
The Smart Aquarium is a simple, cost-effective product that automates nearly all
needs of aquatic life and reduces what were once daily tasks, to simple weekly ones. It is
a self regulating system capable of monitoring and maintaining desired water level and
tank temperature as well as distributing food at a specified time everyday.
The Smart Aquarium system implements feedback sensors and actuators in order
to attain continuous information on the status of the fish tank environment and assure
proper dispensing of food. Integrated pumps and heaters regulate temperature and water
level while the automatic feed consists of an intelligent tray feature which allows not only
for timed dispensing, but also for accurate amounts of food to be delivered every time,
avoiding over/underfeeding of the aquatic life being cared for.
What makes this product such a vital implementation to the maintenance of
aquariums is the reduction of required labor and cost by allowing for the smart aquarium
to take care of daily tasks normally monitored by employees. This is especially useful
where there are multiple tanks to be cared for and would normally take up a long time to
check up on all of them. Its versatility allows for implementation in not only small
aquariums, but to be adapted for any aquatic life that can safely reside in enclosed region.
Page 3 of 22
Components
Food Dispenser
The automatic Food Dispenser component consists of a pair of interlinked servo
motors coupled with tray-mounted light emitting diode (LED) and photo-resistor to
monitor and dispense the proper amount of food at any given time. Controlling the time
when the food is dispensed is an internal timer within the Basic Stamp that is preset to the
desired time and self increments as other features of the Smart Aquarium are executed.
The setup of the Food Dispenser consists of self-retracting gate and tray that react
according to the information received by the Basic Stamp from the photo-resistor and
LED as to how much food has been deposited in it. The gate will open allowing food to
drop into the tray as long as the photo-resistor sees that a specified amount of light
(mostly from LED) is detected. Once the light level drops below the preset value, the
Basic Stamp will close the gate stopping more food from being deposited on the tray and
following this action, it will direct the tray to open and allow the food to drop down to the
tank. Once the food is dropped, the tray returns to its original position and the photoresistor and LED are both deactivated.
Figure 1: Circuitry used for LED and photoresistor
Page 4 of 22
Figure 2: Circuitry used for servomotors
Water Level Sensor
The water level sensor uses the changing level in of water in a tube inserted into
the aquarium in order to determine the water-level in the tank itself. Attached to opposite
ends of the tube are two strips of aluminum foil tape. The two strips of tape serve as
capacitive plates. The rising and falling of the water-level inside of the tube serves as a
changing dielectric inside of a capacitor. Thus, the capacitance value between the two
strips of aluminum foil tape on opposing sides of the plastic tube changes with water
level, and can be used to determine water level.
5 voilts
Fish Tank
Capacitor
1 Kiloohm
P9
30 Megaohm
Figure 3: Circuitry used for water-level sensing
After the capacitive sensor was set up and initiated so that the water level changes
within the capacitor tubing according to the actual water level in the tank, the basic stamp
is utilized to detect capacitance changes throughout the sensor with the use of an RC
circuit and RCTIME. Due to the oscillating nature of the discharge time of the capacitor
caused by the floating point limitation on the BS2, multiple RCTIME reading were taken
Page 5 of 22
and compared to ensure that the proper level was being read and to decrease spikeinduced errors. RCTIME was run two consecutive times. The first was given a discharge
time of 1 millisecond and the second 2 milliseconds. Once these two values were
acquired, a third RC value was constructed by calculating the average of the two; due to
the truncation of decimals, these three values were utilized to get more specific ranges
and further restrict a water level setting to a more unique range and increase accuracy.
These three values were recorded with the use of Stamp Plot Lite and their oscillation
ranges for each water level were compared. The results of these plots allow for each level
to be quickly recognized and compensate for errors.
What were noticed after all three trials were run and all graphs plotted with
occasional erroneous data spikes was a definitive range of values which only a certain
water level would produce. Where the medium and minimum levels were found to have
very similar discharge responses, the maximum level was able to provide distinguishable
values and vice versa. The three different rctime values were able to be used to positively
identify each level and based on all three measurements create a function with PBasic
that would utilized the conclusions drawn from these values and then go on to monitor
the fish tank level with respect to the desired level and temperature. Plots of all three tests
and the different oscillations along with their definitive ranges can be seen in the
following pages.
Page 6 of 22
Calibration Graphs for the Maximum Water Level:
RCT1 for Maximum Level
2000
RCTime Values
1800
1600
1400
1200
y = -0.2362x + 1350.3
1000
800
1
61
121
181
241
301
361
421
481
541
Tim e (Se c)
RCT2 for M aximum Le v e l
RCTime Values
1500
1400
1300
y = 0.1274x + 1306.4
1200
1100
1000
1
61
121
181
241
301
361
421
481
541
601
661
721
Time (Sec)
RCTavg for Maximum Level
550
RCTime Values
500
450
400
y = -0.0424x + 395.21
350
300
250
200
1
61
121
181
Time (Sec)
Figure 4
241
301
361
781
Page 7 of 22
Calibration Graphs for Medium Water Level:
RCTime Values
RCT1 for Medium Level
1700
1600
1500
1400
1300
1200
1100
1000
900
800
y = -0.1404x + 1182.6
1
61
121
181
241
301
361
421
Time (Sec)
RCT2 for Medium Level
1600
RCTime Values
1500
1400
y = -0.3448x + 1296.4
1300
1200
1100
1000
1
61
121
181
241
301
361
421
481
Time (Sec)
RCTavg for Medium Level
350
RCTime Values
340
330
320
y = -0.084x + 334.47
310
300
290
280
1
61
121
181
241
Time (Sec)
Figure 5
301
361
421
Page 8 of 22
Calibration Graphs for Minimum Water Level:
RCT1 for M inimum Le v e l
6000
RCTime Values
5000
4000
3000
y = 0.0937x + 1132.1
2000
1000
0
1
40
79
118 157 196 235 274 313 352 391 430 469 508 547
Tim e (Se c)
RCT2 for M inimum Le v e l
RCTime Values
1600
y = 0.0248x + 1339.7
1500
1400
1300
1200
1100
1000
1
61
121
181
241
301
361
421
481
541
Time (Sec)
RCTav g for M inimum Lle v e l
RCTime Values
390
370
350
330
y = -0.0258x + 338.16
310
290
270
1
61
121
181
241
301
Time (Sec)
Figure 6
361
421
481
541
Page 9 of 22
Comparison of Ranges Calibration Graphs:
RCT1 Comparative Values
RCT Value
2000
1861
16991719
1500
Maximum Water Level
871 839
773
1000
Medium Water Level
Minimum Water Level
500
0
1
2
Max / Min
RCT Value
RCT2 Comparison
1800
1600
1400
1200
1000
800
600
400
200
0
1495
1547
1460
1130
1032
1144
Highest
Middle
Low est
1
2
Max / Min
RCTavg Comparison
RCT value
450
400
415
392
350
317
350
300
250
281
280
Maxim um
Medium
200
150
100
Minim um
50
0
1
2
Max / Min
Figure 7
Page 10 of 22
Temperature sensor
The 592 temperature probe is used as an analog sensor. The temperature probe’s
primary job is to take temperature readings of the water in the aquarium. The
temperature probe acting as a thermometer is wired in the circuitry shown in figure
below.
Figure 8: Circuitry for the temperature probe
The circuit shown is known as a RC circuit. The temperature transducer is
electrically a current source, which is also a special type of regulated resistor. The
temperature probe is acting as the resistor in the circuit. A certain discharge time is
given by the capacitor based on the resistance of the probe, which is influenced by the
temperature. The discharge time is captured by the basic stamp using RCTIME. The
name RCTIME comes from R for resistance, C for capacitance, and the time it takes for a
resistor to charge the capacitor.
The temperature probe calibration is based on the RCTIME value. It is assumed that
temperature increases linearly; so an “equation of a line formula” was implemented to
calibrate a linear temperature reading. The calibrated formula was found to be:
TC = Kal/rct*10 + (Kal//rct*10/rct) - 273
which is expressed in Celsuis.
The temperature probe mainly worked in conjunction with the temperature
potentiometer. The temperature potentiometer is implemented so that the user can set the
desired temperature inside the tank. If the temperature inside the tank is greater than the
set temperature desired by the user, the water-pumps (in the Figure below) would be
activated. There are two pumps; one is placed inside the tank, and the other outside the
tank. To lower the temperature to the desired temperature set by the user, the warmer
water inside the tank is pumped out at the same rate as cooler water is being pumped
inside the tank. This process maintains the desired water level. It continues until the
desired temperature is reached.
If the temperature reading inside the tank is lower than the desired temperature set
by the user, the water heater inside the tank is activated to increase the temperature to the
desired temperature set. Once the temperature inside the tank is the same as the
potentiometer temperature setting, there is no activation of either the pumps or water
heart.
Page 11 of 22
Figure 9: Water-pump circuitry
The motor in the pump draws 300ma and 3volts, therefore the transistor is used to
amplify the current available from basic stamp. The emitter follower transistor is used in
this circuit. The voltage at the emitter follows the voltage at the base. When pin 0 and 1
goes high, the base sees 5 volts, the emitter collector current is there after activated, and
the 300mA need to turn on the motor is driven by the transistor. When the pins go low
the voltage at the base is 0volts and the motor turns off.
Figure 10: Temperature - Potentiometer circuitry
The circuit above shows the potentiometer circuitry. The potentiometer shown
above is used to set the desired temperature in the tank. The potentiometer, like the
temperature probe operates, in a RC circuit. 5 volts is provided by pin 5 when it is driven
Page 12 of 22
high. It forces the capacitor to be in a discharged state (same potential across both plates
of the capacitor). Having discharged the capacitor the RCTIME command switches pin 5
from output to input. When pin 5 crosses transition from high to low (1.4V), the time
taken to do so is captured using a variable in the RCTIME command. The time taken for
the circuit to move from high to low is controlled by the potentiometer; changing the
resistor value changes the RCTIME value. The calibrated formula of the potentiometer is
given as: setTemp = (2*setTemp/3 + 22219)/1000, which is also in Celsius. The linear
line equation was used as basis for the calibration.
Y = mX + b, the potentiometer was adjusted to its 2 extremes. The RCTIME
value at those extremes was noted and used for y values. The x values were the ranges in
temperature values attainable by the temperature probe. Eg.(x1, y1,), (x2,y2), =>
(37Celcius, 123RCTIME), (22Celcius, 23RCTIME). Using these points the slope and yintercept was found. The formula : setTemp = (2*setTemp/3 + 22219)/1000 is the linear
line equation.
Automatic Shutdown Switches
There are two shutdown features in the smart aquarium design. One shutdown
switch is used to terminate the system, while the other switch is used to stop automatic
feeding. The need for the automatic shutdown can be for emergency reasons, so that the
user can disable the system immediately and at will. The toggle switch used to shutdown
the system also turns it back on.
The second shutdown switch is being used to stop automatic feeding option
programmed into the system. If the user desires not to have an automatic feeding system,
he or she has the discretion to disable that feature rather than taking it apart. The same
switch can also be used to enable automatic feed without reprogramming.
The figure below shows the wiring for both switch circuitries.
Figure 11: Circuitry for the toggle switches
Pin 2 and 3 goes high when the switch is open. They are then pulled up to the 10k
resistor connected to the Vdd, which limits the current to 0.5mA. Pin 2 and 3 goes low
when the switch becomes closed.
Page 13 of 22
Water Heater
The solid state relay we utilized requires 3 volts control voltage, and it can supply
output voltage of up to 240VAC and output current of up to 1A. The water heater
requires 120VAC and 0.5A in order to activate, thus the solid state relay gives enough
voltage and current to activate it. The water heater is controlled by the solid state relay,
and the relay is activated when pin 6 from Basic Stamp 2 (BS2) goes high (5V). To
ensure the safety of BS2, 1k ohm resistor is connected in series with the pin, which
allows maximum of 5mA of current flow.
120 V AC
Hot wire
j
1 kohm
P6
Solid
State
Relay
Water
Heater
Neutral
Wire
Figure 12: Relay / Water Heater circuitry
Project Code
The software used for the project was designed to manage first the water level in
the tank, then the temperature, and lastly the feeding procedure. The program consists of
two main segments and 3 functions. One of the main segments is designated to sensing
the current water level and obtaining the value of the desired (user-defined) water-level.
Similarly, the other main segment is for obtaining the desired temperature value and
sensing the present temperature inside of the tank. Two of the three functions manipulate
the two water pumps, which are used for both temperature and water-level control. The
third function implements the feeding process.
potvalue
measTemp
measTemp2
TC
setTemp
rct
result
s
water_level
value
var word
' an array of potentiometer values for the temperature
var word
' a variable that will hold temperatures being set
var byte
' a variable to check multiple reading the actual temp
var word
' degrees Celsius
var word
' temp set
var word
' this is the variable for the thermometer
var word
' rctime value of photoresistor
var byte
' condition variable
var word
' value used to recieve water level
var nib
' this will controle the "FOR" loop for the shutdown loop
in_level
phase
rct1
rct2
rctavg
var bit
pumpin
Pumpout
con 0
con 1
var word
var word
var word
' controls whether or not the program is in the water-level setting
' variable used in the calibration of water-level sensor
' variable used in the calibration of water-level sensor
' variable used in the calibration of water-level sensor
' pin value
' pin value
Page 14 of 22
potmeter
con 5
' pin value pin used for rctime calculations for the setting of
desired temperature
capsensor
con 9
' pin value connected to capacitive sensor and use for rctime in
turnonpump
photo
con 8
' pin value
Relaystate con 6
' pin value control signal for the ssr used to control 120V
water heater
ledon
con 11
' pin value used to power the LED in the light sensing system
used to feed the fish
thermometer con 10
' pin value pin used in rctime to find the current temperature
value
feeder
con 13
' pin value connected to servo motor to control the food tray
ramp
con 15
' pin value connected to servo motor to control the food door
Kal
con 6300
' constant to be determined
FeedConst
con 5000
input 2
' used to shutoff automatic feedfish function
input 3
' used to put program in suspend mode
Figure 11
Above is a list of all of the variables used in creating the program, together with a
description of their individual functions.
'****************************** Start of the Program ************************************
START:
x=0
'****************************** Beginning of Water-Level Sensing ************************
LEVEL:
debug "in level",cr
high capsensor
pause 1
rctime capsensor,1,rct1
'debug dec rct1,cr
pause 2000
high capsensor
pause 2
rctime capsensor,1,rct2
'debug dec rct2,cr
pause 1000
rctavg = (rct1 +rct2)/20
'debug dec rctavg,cr
pause 1000
low capsensor
if rct1<1862 and rct1>870 and rctavg<416 and rctavg>318 then
highest_water_level
if rct1<1700 and rct1>838 and rctavg<351 and rctavg>280 then medium_water_level
if rct1<1720 and rct1>774 and rctavg<393 and rctavg>279 then lowest_water_level
highest_water_level:
value = 13
goto end1
medium_water_level:
value = 39
goto end1
lowest_water_level:
value=65
end1:
high 12
pause 2000
rctime 12, 1, water_level
water_level=water_level/100
low 12
debug ?water_level, cr
Page 15 of 22
IF in3 = 0 THEN SHUTDOWN
'SHUT DOWN THE SYSTEM
set_level:
if value>=(water_level-13) and value<=(water_level+13) then exit
if value<water_level then waterin
if value>water_level then waterout
goto level
'----------------------------------------- End of Water Level Sensing ------------------Figure 12
exit:
debug "in exit", cr
in_level=in_level+1
goto feedfish
At the start of the program, the variable x is set equal to zero. The variable is
increased throughout the program. It’s used to determine whether or not the automatic
feeding process should take place. The feeding procedure will occur when the value of x
is 24 and the program is sent to the “feedfish” function (as shown on the last line of the
above section of code).
The label LEVEL in the code above marks the beginning of the water-level
section of the program. The water level sensor is able to detected and maintain the water
at 3 different levels of depth: low, medium, and high. The first three RCTIME values are
used together in the calibration of the capacitive sensor. The three IF statements
following the RCTIME commands are used to determine the value of the variable
‘value’, which could be either 13, 39, or 65. The next IF statement determines whether or
not the value of pin 3 is zero, at which point the program will go into shutdown/suspend
mode. These IF statements / shutdown checks are placed in strategic locations throughout
the program.
The next RCTIME command uses pin 12 to obtain the value of the desired water
level. That value is stored in the variable ‘water_level’. The three IF statements under the
label ‘set_value’ are used to determine whether or not the actual water level is in an
acceptable range of the desired water level, and sends the program to the appropriate
functions.
The program only leaves the water level segment when the variable ‘value’ is
within 13 of the value ‘water_level’; in other words, it stops monitoring the level of water
in the tank when the actual level in the tank is within a specific range of the user defined
water level. This occurs when the first of the three IF statements under the label
‘set_value’ is true, at which point program is sent to the label ‘exit’. In exit, the bit
variable ‘in_level’ is set to the value 1. The value of in_level is one at this point because
it was previously unassigned, and all unassigned variables have a default value of zero.
The changing of the variable can be thought of as a way to let the actuating functions
know whether or not they are being used to regulate water level or temperature.
Note that all of the pins used to put pins set to high for the RCTIME command
used in this section of code are then set low. This is to guarantee that the Basic stamp
doesn’t exceed it’s source current limitations.
Page 16 of 22
'**************************** Beginning of Temperature Sensing **************************
TEMP_CHECK:
debug "in temp_check", cr
pause 2000
x = x+2
setTemp = 0
for j=0 to 2
High potmeter
pause 1000
rctime potmeter,1, potvalue
debug ?setTemp,cr
setTemp = setTemp + potvalue
x=x+1
next
setTemp = (2*setTemp/3 + 22219)/1000
debug "The value is ", ?setTemp,?x, cr
debug? potvalue
low potmeter
if in3 = 0 then shutdown
'SHUT DOWN THE SYSTEM
debug "In the temp_check function", cr
'Initializations
measTemp2 = 0
' Checking the current Temperature
for i=0 to 4
low thermometer
' discharge the capacitor
RCtime thermometer,0,rct
' time for the volts to rise to 1.3
next
TC = Kal/rct*10 + (Kal//rct*10/rct)-307 ' calculate Celsius temperature
low thermometer
debug ?rct,?thermometer,?setTemp,?TC,cr
if TC > setTemp then waterin
goto heateron
IF in3 = 0 THEN SHUTDOWN
'SHUT DOWN THE SYSTEM
'---------------------------- End of Temparature Sensing -------------------------------Figure 13
The above section of code is the segment of the program that senses actual
temperature inside of the tank and receives the desired temperature value from the user.
In the first half of the segment the variable ‘setTemp’ is being used to obtain the desired
value of temperature. “Calibration Formula.”
In the next section of code, a current temperature reading is obtained using the pin
specified by the name thermometer, which is connected to an RC circuit containing the
AD 592 temperature probe. Another RCTIME calculation is performed in order to obtain
a value that is related to the current temperature value in the tank. The readings are
calibrated according the formula TC = Kal/rct*10 + (Kal//rct*10/rct)-307. ????
Like the water-sensing portion of the code, the value temperature portion obtains
the desired value of the temperature first, senses the actual temperature in the tank
second, and lastly sends the program to the appropriate actuating function. Again, each
pin that is turned high in the temperature portion of the code is then turned low.
Page 17 of 22
'************************************** Essential Functions *****************************
WATERIN:
debug cls,"Pumping water in.", cr
high pumpin
pause 5000
low pumpin
pause 2000
x = x+12
debug ?x,cr
if in_level=1 then waterout
IF in3 = 0 THEN SHUTDOWN
'SHUT DOWN THE SYSTEM
goto level
WATEROUT:
debug "Pumping water out.",cr
high pumpout
pause 10000
low pumpout
pause 2000
x = x+7
IF in3 = 0 THEN SHUTDOWN
goto level
'SHUT DOWN THE SYSTEM
HEATERON:
if TC >= setTemp then end3
High Relaystate
pause 9000
x = x+9
debug ?x, "heater on", cr
IF in3 = 0 THEN SHUTDOWN
'Activate the Relay
'SHUT DOWN THE SYSTEM
end3:
low Relaystate
goto temp_check
IF in3 = 0 THEN SHUTDOWN
'SHUT DOWN THE SYSTEM
Figure 14
The first essential function is the ‘WATERIN’ function, in which water is pumped
into the tank. Water could be pumped into the tank to regulate either water level or
temperature. If water is being pumped in to regulate temperature, then the program must
remove some water to compensate for the added water; the program must go to water out.
The value of the variable in_level determines whether or not the program jumps to the
WATEROUT label after WATERIN or to LEVEL. In the WATEROUT label, water is
pumped out of the tank and the program is sent to the label LEVEL.
The program only arrives at the HEATERON label when the temperature in the
tank is below the temperature value sensed in the TEMP_CHECK label. In this label, the
pin represented by the tag name ‘Relaystate’ is set high. Setting this pin high turns on the
water heater in the tank. The command ‘low Relaystate’ given after the label end3 is
declared, meaning that the heater is only turned off when the temperature sensed in
TEMP_CHECK is equal to or greater than the user-input temperature value.
'****************************************Feedfish Function*******************************
FEEDFISH:
debug "Feeding Function"
for s = 0 to 25
Page 18 of 22
pause 10
pulsout ramp,500
pause 10
next
s=0
for s = 0 to 25
pause 10
pulsout feeder,500
pause 10
next
'servo-motor preparing to open
if x<24 then continue
if in2=1 then continue
x=0
debug ?x
for s=0 to 25
'open ramp
pulsout ramp, 860
pause 10
debug "doing the loop",cr
next
debug cls,"ramp is open",cr
low ledon
'turn on led
loop1:
low photo
pause 1000
rctime photo,0, result
debug cls, ?result
if (result-20000) < 15000 then loop1
debug "Now closing ramp.",cr
for s=0 to 25
pulsout ramp, 500
pause 10
next
'closing ramp
debug "Dispensing Food",cr
for s=0 to 25
'open feeder
pulsout feeder, 1000
pause 10
next
pause 3000
high ledon
'Giving the food time to fall
'turn off led
for s=0 to 25
'closing feeder
pulsout feeder, 500
pause 10
next
continue:
if in3 = 0 then shutdown
'SHUT DOWN THE SYSTEM
goto temp_check
----------------------------------------------------------------------------------------Figure 15
The first three “For” loops in the feedfish functions are there to ensure that the
function servo-motors have the ramp and feeder sufaces of the fish-feeder in a closed
position. In the following IF statements the program checks to make sure that x has a
value that is at least 24 and that the digital voltage value at input pin 2 isn’t one. If either
of the conditions are true, then the program skips to the label ‘continue’, which is at the
end of the function.
Page 19 of 22
If both of the IF statements return false, then the program proceeds to open the
ramp. Under the label named loop1 the program uses the RCTIME command again to
determine whether or not the resistance value of the photo-resistor used in the feeder
mechanism is high. In other words it checks to determine if light is being blocked by
food. If the RCTIME value, which is stored in the variable ‘result’ is high, then the
program proceeds to the next for loop, which closes the ramp. The for loop after that
opens the feeder and dispenses the food. After three seconds, the program goes to the
next for loop, which closes the feeder. At the end of the feedfish function, the program
goes to the TEMP_CHECK label.
'************************************Shutdown / Suspend Function*************************
end
SHUTDOWN:
low Relaystate
low potmeter
low capsensor
low pumpin
low pumpout
high ledon
low 12
SUSPEND:
debug cls,"IN SUSPEND MODE",cr
pause 1000
if in3 = 0 then suspend
goto start
Figure 16
In the shutdown/suspend function, the every one of the pins used to control an
actuator is turned low to ensure minimum energy consumption/loss in suspend mode. The
program then enters the loop under the label SUSPEND and will not come out of the loop
until the voltage at input pin 3 is high, or until the toggle switch connect to pin 3 is
flipped.
Cost Estimate
Below is a chart itemizing the cost of building the aquarium prototype
-Prototype:
Basic Stamp 2 & Board of Education
Automatic Food Dispenser
Water Heater
Solid State Relay
Water Tank
Water Tank Cover
The Water Tubes & Aluminum Tape with Insulator
Electrical Box
Multiple Power Connectors
Toggle Switches
$100
$40
$20
$14
$11
$8
$7
$5
$4
$4
Total Cost
$213
Page 20 of 22
-Mass Production:
The BS2 and Board of Education will not be used in mass production. The $100 cost of
the stamp and board of education will be replaced by a $5 cost for a PIC type controller
with the aquarium program installed.
PIC with Aquarium program installed
Automatic Food Dispenser
Heater (with appropriate power depending on tank size)
Solid State Relay (depending on type of heater)
Water Tubes & Aluminum Tape with Insulator
Water Pump
Electrical Box to secure wiring
$5
$40
$25
$15
$10
$60
$5
Total Cost
$160
Conclusion
The Smart Aquarium is a cost-effective system that is capable of not only having
real market value and potential, but also truly utilizes the meaning of smart appliance. It
creates for itself marketability by replacing or reducing virtually all tasks that are tied into
caring for aquatic life such as fishes. The Smart Aquarium is incredibly versatile as well
as fully upgradeable, enabling it to be suited for larger animals such as seals and whales.
The mass production cost of this device is moderate enough to accommodate budgets of
small pet shops looking to maintain a small employee roster. The Smart Aquarium is
compact and self contained, not requiring constant surveillance.
Future upgrades for the Smart Aquarium such as multiple tank stability through a
single system and interactive alarms can further enhance the role of this system in caring
for aquatic animals as more customized customer needs arise. Overall, this system is very
capable of meeting and surpassing all expectations with many ways of it improving and
expanding it over time.
Page 21 of 22