Mobile Control Soil Moisture
The Mobile Controlled soil checker helps the presence of water in the soil, which could be controlled with the help of Smart phones. The application which is in Smart phone allows it to control the movement of vehicle and also check the presence of water in the soil. The vehicle could be controlled in certain directions such that Front, Back, Left, Right. The servo placed in help the control the movement of soil moisture sensor and soil moisture sensor checks the water presence. The serial monitor in mobile helps in monitoring the vehicle movement and also water presence in the soil.
Apparatus
required
1) Arduino
2) Motor
Shield
5) Servo
*Click the above things to buy it.
Connection
·
Connect Arduino to the motor shield and connect the
two motors to the motor shield with
respect to source code
·
Connect the servo with the motor shield in the servo
port with respect to source code.
·
Connect the soil moisture sensor output to the A0 and
vcc to +5V and Ground to the Ground pin.
·
Connect the Bluetooth module TX pin to Arduino RX pin
and the Bluetooth RX pin to Arduino TX pin and +5V and Ground to the Ground
pin.
Mobile Monitering
Check out these photos to know its working
The Black box which allows to knows the movement and control of the vehicles. The arrows allows it for control of directions.
Up = 1 Left = 2 Stop = 3 Right = 4 Back = 5 Soil Checker = 6
Up = 1 Left = 2 Stop = 3 Right = 4 Back = 5 Soil Checker = 6
*Data which is sent from mobile application to HC-05 Bluetooth module when respective buttons are pressed.
Source Code
#include
"AFMotor.h";
#include
<Servo.h>
Servo
myservo1;
AF_DCMotor
motorRight(1, MOTOR12_64KHZ);
AF_DCMotor motorLeft(3, MOTOR12_64KHZ);
char
input;
int pos =
0;
void setup()
{
Serial.begin(9600);
Serial.println("NBSL TECH SMART
CAR");
myservo1.attach(9);
motorRight.setSpeed(0);
motorLeft.setSpeed(0);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);
}
void loop()
{
motorRight.setSpeed(255);
motorLeft.setSpeed (255);
if(Serial.available()>0)
{
input= Serial.read();
if(input=='1')
{
pos = 0; {
Serial.println ("Soil Moisture"
);
myservo1.write(pos);
delay(100);
}
Serial.println ("Going
forward");
delay (15);
motorRight.setSpeed(255);
motorLeft.setSpeed(255);
motorRight.run(FORWARD);
motorLeft.run(FORWARD);
}
if(input=='2')
{
pos = 0; {
Serial.println ("Soil Moisture"
);
myservo1.write(pos);
delay(100);
}
Serial.println ("Going left"
);
motorRight.setSpeed(80);
motorLeft.setSpeed(255);
motorRight.run(BACKWARD);
motorLeft.run(FORWARD);
}
if(input=='3')
{
pos = 0; {
Serial.println ("Soil Moisture"
);
myservo1.write(pos);
delay(100);
}
Serial.println ("Stop!" );
motorRight.setSpeed(0);
motorLeft.setSpeed(0);
motorRight.run(RELEASE);
motorLeft.run(RELEASE);
}
if(input=='4')
{
pos = 0; {
Serial.println ("Soil Moisture"
);
myservo1.write(pos);
delay(100);
}
Serial.println ("Going right"
);
motorRight.setSpeed(255);
motorLeft.setSpeed(80);
motorRight.run(FORWARD);
motorLeft.run(BACKWARD);
}
else if(input=='5')
{
pos = 0; {
Serial.println ("Soil Moisture"
);
myservo1.write(pos);
delay(100);
}
Serial.println ("Going
backward");
delay (15);
motorRight.setSpeed(255);
motorLeft.setSpeed(255);
motorRight.run(BACKWARD);
motorLeft.run(BACKWARD);
}
if(input=='6')
{
pos = 90; {
Serial.println ("Soil Moisture"
);
myservo1.write(pos);
delay(200);
}
delay(1500);
int sensorValue = analogRead(A0);
Serial.println("SOIL" );
Serial.println(sensorValue);
delay(1);
if (sensorValue < 1000)
{
Serial.println("No Required" );
delay(1000);
}
else if (sensorValue > 1000)
{
Serial.println("Alert!
Water Required" );
delay(1000);
}
pos = 0; {
Serial.println ("Soil Moisture"
);
myservo1.write(pos);
delay(200);
}
}
}
}
This comment has been removed by a blog administrator.
ReplyDelete