You are on page 1of 5

#include <ESP8266WiFi.

h>
#define M1 D2
#define M2 D3
#define M3 D7
#define M4 D8
#define limitSwitch D1
#define metal D0
int state=1;

// defines pins numbers

const int trigPin = 2; //D4


const int echoPin = 14; //D5

// defines variables
long duration;
int distance;
int r=0;

const char* ssid = "AndroidAP";


const char* password = "xbyn4396";
unsigned char status_M1=0;
unsigned char status_M2=0;
unsigned char status_M3=0;
unsigned char status_M4=0;

WiFiServer server(80);

void setup() {
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(115200);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
pinMode(M1, OUTPUT);
pinMode(M2, OUTPUT);
pinMode(M3, OUTPUT);
pinMode(M4, OUTPUT);
pinMode(metal, OUTPUT);
pinMode(limitSwitch,INPUT);

Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
server.begin();
Serial.println("Server started");
Serial.println(WiFi.localIP());
}

void loop() {
int state=1;
int val = digitalRead(limitSwitch);

if(val!=state)

digitalWrite(metal,HIGH);
Serial.println( "************metal detected*************");

delay(500);
digitalWrite(metal,LOW);

// Clears the trigPin


digitalWrite(trigPin, LOW);
delayMicroseconds(2);

// Sets the trigPin on HIGH state for 10 micro seconds


digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);

// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);

// Calculating the distance


distance= duration/58.2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
delay(100);

if((distance<=100)&&(r==1)&&(r!=2)&&(r!=3)&&(r!=4)&&(r!=5)&&(r!=0))
{
{digitalWrite(M1,LOW);
delay(1);
digitalWrite(M2,LOW);
delay(1);
digitalWrite(M3,HIGH);
delay(1);
digitalWrite(M4,LOW);
delay(1);}
Serial.println("LEFT");
delay(350);

{
digitalWrite(M1,HIGH);
delay(1);
digitalWrite(M2,LOW);
delay(1);
digitalWrite(M3,HIGH);
delay(1);
digitalWrite(M4,LOW);
delay(1);
Serial.println("FORWARD ");
}

WiFiClient client = server.available();


if (!client) {
return;
}

Serial.println("new client");
while(!client.available())
{
delay(1);
}
String req = client.readStringUntil('\r');
Serial.println(req);
client.flush();

if(req.indexOf("/FORWARD") != -1)
{

r=1;
digitalWrite(M1,HIGH);
delay(1);
digitalWrite(M2,LOW);
delay(1);
digitalWrite(M3,HIGH);
delay(1);
digitalWrite(M4,LOW);
delay(1);
Serial.println("FORWARD ");
}

if (req.indexOf("/BACKWARD") != -1)
{
r=2;
digitalWrite(M1,LOW);
delay(1);
digitalWrite(M2,HIGH);
delay(1);
digitalWrite(M3,LOW);
delay(1);
digitalWrite(M4,HIGH);
delay(1);
Serial.println("BACKWARD");
}
if(req.indexOf("/LEFT") != -1)
{
r=3;
digitalWrite(M1,LOW);
delay(1);
digitalWrite(M2,LOW);
delay(1);
digitalWrite(M3,HIGH);
delay(1);
digitalWrite(M4,LOW);
delay(1);
Serial.println("LEFT");
}

if (req.indexOf("/RIGHT ") != -1)


{
r=4;
digitalWrite(M1,HIGH);
delay(1);
digitalWrite(M2,LOW);
delay(1);
digitalWrite(M3,LOW);
delay(1);
digitalWrite(M4,LOW);
delay(1);
Serial.println("RIGHT ");
}
if(req.indexOf("/STOP") != -1)
{
r=5;
digitalWrite(M1,LOW);
delay(1);
digitalWrite(M2,LOW);
delay(1);
digitalWrite(M3,LOW);
delay(1);
digitalWrite(M4,LOW);
delay(1);
Serial.println("STOP");
}

String web = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n";


web += "<html>\r\n";
web += "<body>\r\n";
web += "<h1>ROBO Status</h1>\r\n";
web += "<p>\r\n";

web += "</p>\r\n";
web += "</p>\r\n";
web += "<a href=\"/FORWARD\">\r\n";
web += "<button>FORWARD </button >\r\n";
web += "</a>\r\n";
web += "</p>\r\n";

web += "<a href=\"/BACKWARD\">\r\n";


web += "<button> BACKWARD </button >\r\n";
web += "</a>\r\n";
web += "<p>\r\n";

web += "<p>\r\n";

web += "</p>\r\n";
web += "</p>\r\n";
web += "<a href=\"/LEFT\">\r\n";
web += "<button> LEFT </button >\r\n";
web += "</a>\r\n";
web += "</p>\r\n";

web += "<a href=\"/RIGHT\">\r\n";


web += "<button> RIGHT </button >\r\n";
web += "</a>\r\n";

web += "<p>\r\n";
web += "<p>\r\n";

web += "<p>\r\n";

web += "</p>\r\n";

web += "</p>\r\n";

web += "</a>\r\n";
web += "</p>\r\n";

web += "<a href=\"/STOP\">\r\n";


web += "<button>STOP</button >\r\n";
web += "</a>\r\n";

web += "<p>\r\n";

web += "<h1>Metaldetection Status</h1>\r\n";


web += "<p>\r\n";
if(state != 0)
web += "************Metal detected************\r\n";

web += "</p>\r\n";
web += "</p>\r\n";

web += "</body>\r\n";
web += "</html>\r\n";

client.print(web);
}

You might also like