WEEK 9

Title of activity

Design PCB circuit for output( Solenoid and Water Pump)

Objective

  • After the circuit been tested on simulation, we start progress with PCB.
  • Before we go to etching process, firstly we construct the circuit in the Diptrace software, after that print the circuit that have done on the transparent paper.
  • After produced the circuit on DipTrace, my partner and i  do etching. So we go to PCB Laboratory Workshop, UNIKL BMI to do it at 1st floor.
  • After that, soldering component on PCB.
  • Learn how to etching using all the chemical.
  • To try our best to make a clean and tidy PCB board.
  • Learn how to Drilling PCB and soldering the component on PCB.



Etching Proces


First step : Scan the circuit that print on the transparent paper,then put the UV board on   
it,after that scan it in the UV board scanner.


PCB before been printed and transparent paper with circuit printing





Print the Circuit from Transparent Paper to the PCB by UV




  • Second step : Start etching Process






  • The result of the process

Printed Circuit from DipTrace to transparent paper and to the PCB



Drilling Proces


For the process of drilling at the UV board,  we have to drill the hole at UV board, its have different drill bit which have small,normal and large. But in my (F.Y.P) UV board, we just use a small drill bit. The process we doing maybe not take a long time to make it.

The equipment that we used to doing the process are drill machine,and drill bit and spreader.




There is a box equipment that we used to do this process which are "super mini drill 1PK-500".


Inside the box, the component we used are drill machine (which used battery and can be rechargeable), drill bit and charger.

Make sure the drill is straight to make precise hole


And Finally, The produced PCB Relay Circuit For Solenoid and Water Pump.

Soldering Component

Component Place on PCB



WEEK 8


Title of activity

Circuit Simulation on ISIS Proteus based on Arduino MicroController

Objective


  • Test Arduino Coding on Proteus
  • Integrate Software and Hardware by Simulation 

Introduction 

First of all, there's a slight change when conducted simulation compare to the real project. It is due to the sensor part. In real project the sensor will detect water, but in simulation there is no water. So,the sensor would be change to Potentiometer where if the voltage is high the motor will run and likewise. But the main objective is to test the coding and integrate it with the hardware. The hardware part is still using relay circuit like in the project, the only difference is the type of motor.

First, Construct the relay circuit, arduino and the sensor part(potentiometer) on ISIS Proteus.
Constructed Circuit on ISIS Proteus
 
From this circuit there is 3 part:
  1. Arduino in the centre as Mictocontroller Unit
  2. Sensor Part (Potentiometer) below Arduino
  3. Relay Circuit (TWO motor for OUTLET and INLET)
The sensor part been connected to analog input of Arduino Pin A1 and A2 and the output part; OUTLET connect to Pin 13 and INLET connect to Pin12.



Next, after construct the circuit we can start design the coding on Arduino software.

coding in snippet below,



int sensorLOW = A1;    //
int sensorHIGH = A2;
int LowValue, HighValue;
int OUTLET = 13;      // select the pin for
int INLET = 12;  // variable to store the value coming from the sensor
int x=1;
int y=1;

void setup() {
  // declare the ledPin as an OUTPUT:
  pinMode(OUTLET, OUTPUT);
  pinMode(INLET, OUTPUT); 
}

void loop() {
  
  while(x!=0){
    // read the value from the sensor:
    LowValue = analogRead(sensorLOW);
     
    // turn the ledPin on
    if (LowValue<500){
      digitalWrite(OUTLET, LOW);
      delay(1000);
      x=0;
    }
     
    else{
      digitalWrite(OUTLET, HIGH);
      delay(1000);
    }    
  }
 
  while(y!=0){
    // read the value from the sensor:
    HighValue = analogRead(sensorHIGH); 
    // turn the ledPin on
    if (HighValue>500){
      digitalWrite(INLET, LOW);
      delay(1000);
      x=0;
    }
   
    else{
      digitalWrite(INLET, HIGH); } 
      delay(1000); 
    }
}



So how the coding Works?

First, Arduino will check the potentiometer at LowLevel......IF the voltage level below than half the OUTLET motor will stop, else the OUTLET motor will running.

Then, After the OUTLET motor stop.....Arduino will check the potentiometer at HighLevel...... 
IF the voltage level above than half the INLET motor will stop
else the INLET motor will continue running.


After compile the coding the HEX file can be found in here,

Compiled coding on Arduino




Get the HEX file

After uploading the HEX file to Proteus, before start the simulation notice that the motor in stop condition (see above picture) because the relay circuit is OPEN

When START the simulation, the OUTLET motor is running because LowLevel voltage is above than half

Outlet motor START

the OUTLET motor is stop because LowLevel voltage is below than half

OUTLET motor STOP


After that, the INLET motor start running because the HighLevel voltage is below than half

INLET motor Start

the INLET motor will stop when HighLevel voltage is above than half

INLET motor Stop


 Conclusion

From the simulation above there are things that can be verified
  1. Relay Circuit is working
  2. Hardware and Software can be integrated
  3. Although the simulation are not exactly as the project, but the concept is still the same. The sensor are detect analog voltage, maybe in real project the value are not stable, therefore the only thing need to adjust is in the software part (coding).
Finally, the simulation is succeed and proved that software and hardware for this project can be integrated.

Next we will start on design PCB for our project...

WEEK 7



Title of activity

  • Make the research about the Arduino software because our project are use Arduino programming.
  • Research on ISIS Proteus for simulation

Objective


  • To identified the suitable Arduino coding for our project.
  • To try an error of the coding.
  • Integrate Software and Hardware on ISIS Proteus Simulation



Arduino

As mention earlier in the previous week there has a control unit that connect the input part and output part. This project is based on Arduino as the control unit. This week activity is get to know about Arduino. What is the main characteristic of the micro controller. What type of input to use ADC and more.


Analog Input

The real world is not digital. Considering temperature fluctuation as an example, it changes within some range of values and generally does not make abrupt changes over time. We often measure environmental parameters like temperature, light intensity, or whatever using analog sensors. These resulting signals are stored as sequential digital data.

Analog Signals

An example would be to measure and record room temperature every minute. One could watch a thermometer and write down the readings. The sequence of data would look like (in Celsius): 20.3, 20, 20.5, 21, 20.8 ...
We face a number of issues here. First of all Arduino cannot understand temperature as such, it needs to be translated into an electrical value. Second that electrical value has to be translated into a number that can be processed within Arduino.
As said, microprocessors cannot handle temperature values as humans do. We need to translate that to something the microchip can read. In order to do so, we can use sensors that will transform, in this case, temperature into a voltage value between 0 and 5 volts. This values are different from the HIGH and LOW that characterize digital signals, because they can take any value between 0 and 5 volts. 0.3 volts, 3.27 volts, 4.99 volts are possible values.
This is what we call an analog signal. It differs from the digital ones in being able of taking many more than just two values. The amount of possibilities depends only in the capabilities of the processor/micro-controller you are working with in each case. As we will see later, Arduino can only distinguish 1024 different levels between 0 and 5 volts.

Bringing Analog Signals into Arduino

Each sensor can translate a range of physical world values into electrical values. Let's imagine that our temperature sensor reads between 0C and 100C. Typically it should then assign 0 volts to 0C and 5 volts to 100C. Thanks to this we can easily translate levels of voltage into temperature and vice-versa.
The next issue has to do with the finite resolution of digital technology. Arduino has the possibility of reading values from the real world, which have been translated into electrical values between 0 and 5 volts. Try now to answer this question for a second: how many voltage values are there between 0 and 5 volts? The answer is simple: endless. Imagine two voltage values in the range we are working with, that are as close as possible, e.g. 3.4 and 3.41 volts. It is possible to have endless values in between those two: 3.401, 3.403, 3.402539 ...
This means that we would need a processor with the ability to represent endless numbers, but Arduino cannot. Therefore, we speak about different levels. In particular Arduino divides the range of 0 to 5 volts into 1024 different voltage levels or intervals. 0 volts is in the interval 0, and 5 volts in the interval 1023. In this way, 2.5 volts would be in the interval 511 as well as 2.52 volts or 2.5103.

This operation of translating an analog voltage value into different levels is what we call Analog to Digital Conversion. One small hardware part inside the microprocessor that comes with the Arduino I/O board is dedicated to translate analog voltages into these values, it is the Analog to Digital Converter also called ADC. 


Source is
HERE

 
ISIS Proteus


Alhamdulillah we found some info on youtube that Arduino can be integrated with ISIS Proteus. Simply just download the library as below:


Arduino Library        - This link will make instruction on how to get arduino inside ISIS Proteus
Youtube Video Link  - This link will show how to get HEX code from arduino and upload to Proteus



 So, Next week we will start on simulation about the project.







WEEK 6



Title of activity

  • To test the Water Level Sensor


Objective / content


  • The idea to detect water level is simply by the basic circuit loop where the water conductivity itself can be the connector of the circuit. Simply connect the 5V and GND to the water and another two rod (jumper) that will determine the level whether it is low or high. If the water is below than Low Level Rod, then the rod will be open circuit to that 5V and GND. If the High Level Rod is touch the water, then it will detect 5V. The rod will be connected to analog input of arduino that can read the voltage from the rod.Then the output of arduino will be connected to either solenoid to drain the water or water pump to refill the water into the tank of aquarium.
  • To control the output must include another circuit because output cannot be driven by arduino. Arduino usually will inject 5V to the output pin then, a relay circuit will fetch the signal and act as a switch to turn on/off the output either solenoid or water pump.

 Component List:
  1. Arduino UNO
  2. 12V Relay
  3. 2N2222 Transistor
  4. 1N4004 Diode
  5. 12Vdc adaptor

Shop that sell elctronics component

  After gather all the component, the circuit is constructed on the breadboard and run the program by arduino software. 

Construct the circuit by the component in the breadboard.
 After we construct the circuit then we demonstrate the system to Sir Halim and be verified. Sir Halim then instruct us to continue for the testing of sensor system so that the water will change automatically without pushing a button..




















WEEK 5



Title of activity


  • In this week,all of Muslim peoples celebrate Aidil adha Eid. My friend and i went back to our hometown and village to enjoy the weekend with lovely family.
  • At the same time, we also not forget to do it some research about our final year project (F.Y.P)



WEEK 4




Title of activity


  • Research on project

Objective


  • The main objectives or our aim of this project is to develop the Aquarium Automatic Cleaning System which can help the consumers that has an aquarium and we create the automatic cleaning for aquarium which facilitate the user in maintaining or cleaning their aquariums.


SCOPE AND LIMITATIONS

 The scope of this project is use to detect the cloudiness of the water in the tank and automatically change it to new water. For the limitation, this system is developed in specific cloudy of water it not perfectly as turbidity sensor.

       PROJECT BLOCK DIAGRAM AND DESCRIPTION


Block Diagram Description


Water Cloudy Sensor:        Detect cloudy of the water and trigger the (M.C.U)to start                                                                   the process.

M.C.U:                                  Arduino as micro-controller will receive signal from water                                                                   cloudy sensor and send signal to solenoid to start drain                                                                     the water.

Water Level Sensor:           Water level sensor will detect the water level and send                                               signal to (M.C.U) if the water is in low level (M.C.U) will stop                                               the solenoid if the water level is in high level water pump                                                                   will stop.

Water Pump:                       When solenoid have been stop (M.C.U) will send another                                                                   signal to water pump to start pump the water.

WEEK 3




Title of activity
  • Produce Gantt chart.
  • Research on proposed project.

Objective
  • To produce details of fyp project progress on each week.
  • To find information that connected to proposed project.

Content
  • Produce Gantt chart in Microsoft excel.
  • Search in the internet information that related to this project.
  • Make sure all the info about the dateline,sent report and the details of exhibition.
Turbidity Sensor
     Turbidity sensor works as a device that measure the cloudiness  of the water whether the water contained suspended particles that make the water turn cloudy or clear. There are many method to read the cloudiness water. One of the method is by running the water between LDR and LED. If the water is cloudy enough it will block LED and the reading from LDR would changed.
For more info go HERE

Water Level Sensor

       
       To drain and fill the water simply just connects the tank with Solenoid and Water Pump. The issue is how to control the water level. Supposedly when start draining water the solenoid will turn on and the water will flow out but, to start refill the water by water pump the solenoid must be closed off otherwise the water will drain straight to solenoid and act just like filtering the water obviously, that not the way for this project.

       To stop the water from keep drain there must be something trigger to send signal to the control unit telling that the water is drain enough the control unit will send signal to solenoid to turn off. After that the motor pump can start its part to refill the water until full. Similarly, there must be something trigger to send signal to control unit telling that the water is full enough so that water pump not continuously on.

      Usually there have been Hi-Lo water level sensors that can do the triggering job in the market. But those sensors quite not necessary because this project is run base on control unit that have build in many advantage. Therefore, from the control unit can be design a trigger circuit as replacement for Hi – Lo water level sensor.