Professional Documents
Culture Documents
h>
#define M1 D2
#define M2 D3
#define M3 D7
#define M4 D8
#define limitSwitch D1
#define metal D0
int state=1;
// defines variables
long duration;
int distance;
int r=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);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
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 ");
}
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");
}
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 += "<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 += "<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 += "<p>\r\n";
web += "</p>\r\n";
web += "</p>\r\n";
web += "</body>\r\n";
web += "</html>\r\n";
client.print(web);
}