Final Project

HYDRATE


Since the beginning of the semseter, I've decided that I will go for an automated watering system for plants. Although the idea changed a little, it's still the same in essence.

Slide and Video





BOM

Below is the bill of materials:



Summary of the Final Project

Before going through the steps of building the final project, you can go through the following pages of what has been done previously:
Planning:
Week 1
Week 13
Week 20

Electronics:
Week 11
Week 12

Below are the steps I went through to build HYDRATE:

Electronics
The first part is electronics. I worked during week 11 and week 12 on the system of the final project. However, I did make a few changes to it. First, let's go through how that went:
I used this code to control the water pump:
//Soil Moisture Relay Sensor int Relay = 13;
int sensor = A0;
int val;
void setup() {
pinMode(13,OUTPUT); //Set pin 13 as OUTPUT pin, to send signal to relay
pinMode(A0,INPUT); //Set pin A0 as INPUT pin, to receive data from Soil moisture sensor.
Serial.begin(9600);
}
void loop() {
val = analogRead(A0);
Serial.println (val);
if(val < 300)
{
digitalWrite(13,HIGH); //if soil moisture sensor provides LOW value send HIGH value to relay
}
else
{
digitalWrite(13,LOW); //if soil moisture sensor provides HIGH value send LOW value to relay
}
delay(10000);
}
}

This time, however, I will be using a different sensor. A simple test made me realize that this sensor works the other way round. When the first sensor is dry, it shows the value=0. When the second one is dry, its value is 1023. For this reason, I will change the if(val < 300) part to if(val > 600 ). Changing the code to:
//Soil Moisture Relay Sensor
int Relay = 13;
int sensor = 8;
int val;
void setup() {
pinMode(13,OUTPUT); //Set pin 13 as OUTPUT pin, to send signal to relay
pinMode(A0,INPUT); //Set pin 8 as input pin, to receive data from Soil moisture sensor.
Serial.begin(9600);
}
void loop() {
val = analogRead(A0);
Serial.println (val);
if(val > 600 )
{
digitalWrite(13,HIGH); //if soil moisture sensor provides LOW value send LOW value to relay
}
else
{
digitalWrite(13,LOW); //if soil moisture sensor provides HIGH value send HIGH value to relay
}
delay(10000);
}

The next issue in electorincs is something I discussed in Week 20 . The fabduino I designed and fabricated didn't work as needed, therefore I used a ATMEGA168V. The way is I programmed the it is by uplouding the above code into the Arduion UNO board, then inserting its ATMEGA168V into my fabduino.

Below, you can see the trials as the system works:



Fabrication
Fabrication included two parts, laser cutting and 3D printing. The laser cutting was for the case that would have the electronics and boards in it. My design has a lot of wires (and a pipe) and therefore was a challenge. I created this case (Which I now believe should have been half this size):


After laser cutting:



Placing the circuit inside:



Sealing:



The second part is the 3D printing to fabricate what will act like a reservoir:



I had an idea of placing the valve beneat the bowl but later changed my mind, so I needed to fabricate something to cover the hole in the reservoir:

And this is the final product after printing:



I sealed the extra piece to the bowl using the glue gun, and tested the bowl to make sure there is no leakage. This is the final product:



Of course, there is a big room for improvements in the future. The system can be made more complex by adding remote control features, the power supply can be made more effecient; reducing wires, and the size of the board and case could be reduced. Regradless, this has been a huge learning curve for me and I believe that it helped me master the covered modules during the semester.

License

In Week 19 as I was exploring potential licenses, I decided that I will not use any license for my project.

Files

Code
Reservoir - For 3D printing (STL file)
PCB.brd
Case - For laser cutting (DXF files):
1
2
3
4
5
6
7
8
9

Acknowledgements

I must acknowledge the unlimited support that was provided by QBIC Fablab's staff. Mr. Robert Garita and Eng. Bilel have been extremely helpful and supportive to the last minute. Eng. Tasneem, in specific, has been exceptional - she went above and beyond her working hours to explain and fill any knowledge gaps we had, and made sure to refer us to knowledgable people we can go to when she couldn't help. I would also like to acknowledge the support of the Fab Academy students who were always supportive to each other in their respective fields of expertise.

Copyright © Your Website 2018