#include <Servo.h>
Servo myservo1; // create servo object to control a servo
#define BLYNK_PRINT Serial
#include <ESP8266_Lib.h>
#include <BlynkSimpleShieldEsp8266.h>
char auth[] = "rPCNUbMxbzdkCQ5ERfCUj-83Jj5eGouh";
char ssid[] = "Wifi_Project";
char pass[] = "1a2b3c4d5e";
#define ESP8266_BAUD 115200
ESP8266 wifi(&Serial);
#define trigPin1 2
#define echoPin1 3
#define trigPin2 4
#define echoPin2 5
int ir,metal;
long duration, distance, Sensor1,Sensor2;
void setup() {
myservo1.attach(9);
myservo1.write(90);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);
pinMode(trigPin2, OUTPUT);
pinMode(echoPin2, INPUT);
pinMode(A0,INPUT);
Serial.begin(ESP8266_BAUD);
//Serial.begin(9600);
delay(10);
Blynk.begin(auth, wifi, ssid, pass);
}
void loop() {
Blynk.run();
ir = digitalRead(A0);
metal=digitalRead(A1);
SonarSensor(trigPin1, echoPin1);
Sensor1 = distance;
Serial.print("Sensor Metal: ");
Serial.println(Sensor1);
SonarSensor(trigPin2, echoPin2);
Sensor2 = distance;
Serial.print("Sensor Non Metal: ");
Serial.println(Sensor2);
Serial.print("IR: ");
Serial.println(ir);
Serial.print("Metal: ");
Serial.println(metal);
Blynk.virtualWrite(0,Sensor1);
Blynk.virtualWrite(1,Sensor2);
if(metal == 0 && ir == 1) //no object
{
myservo1.write(90);
}
if(metal == 1 && ir == 0) //metal
{
myservo1.write(50);
}
if(metal == 0 && ir == 0) //non metal
{
myservo1.write(130);
}
delay(1000);
}
void SonarSensor(int trigPin,int echoPin)
{
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration/2) / 29.1;
}
The project is success even though the servo motor is a bit loose and needed to be glue.
Lastly is the blynk apps display, the project will not move if not linked to the apps/wifi.
No comments:
Post a Comment