Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save shahriarshafin/cf4206d8df4566213011cc03091b14b9 to your computer and use it in GitHub Desktop.
Save shahriarshafin/cf4206d8df4566213011cc03091b14b9 to your computer and use it in GitHub Desktop.
// updated -> 18-feb-2021 by Shahriar Shafin
#include <ESP8266WiFi.h>
WiFiClient client;
WiFiServer server(80);
const char* ssid = "Network Unavailable";
const char* password = "dontshare";
String data = "";
int leftMotorForward = 2;
int rightMotorForward = 15;
int leftMotorBackward = 0;
int rightMotorBackward = 13;
int rightMotorENB = 14;
int leftMotorENB = 12;
void setup()
{
pinMode(leftMotorForward, OUTPUT);
pinMode(rightMotorForward, OUTPUT);
pinMode(leftMotorBackward, OUTPUT);
pinMode(rightMotorBackward, OUTPUT);
pinMode(leftMotorENB, OUTPUT);
pinMode(rightMotorENB, OUTPUT);
pinMode(D2, OUTPUT); // the horn pin as an output
server.begin();
}
void loop()
{
client = server.available();
if (!client) return;
data = checkClient ();
if (data == "f") MotorForward();
else if (data == "b") MotorBackward();
else if (data == "left") left(); //wheel left
else if (data == "right") right(); //wheel right
else if (data == "l") TurnLeft();
else if (data == "r") TurnRight();
else if (data == "br") BackRight();
else if (data == "bl") BackLeft();
else if (data == "s") MotorStop();
else if (data == "ho") hornOn();
else if (data == "hf") hornOff();
else if (data == "rst") resetMCU();
}
void resetMCU(void)
{
ESP.restart();
}
void hornOn(void)
{
digitalWrite(D2, HIGH);
}
void hornOff(void)
{
digitalWrite(D2, LOW);
}
void MotorForward(void)
{
digitalWrite(leftMotorENB, LOW);
digitalWrite(rightMotorENB, HIGH);
digitalWrite(leftMotorForward, LOW);
digitalWrite(rightMotorForward, HIGH);
digitalWrite(leftMotorBackward, LOW);
digitalWrite(rightMotorBackward, LOW);
}
void MotorBackward(void)
{
digitalWrite(leftMotorENB, LOW);
digitalWrite(rightMotorENB, HIGH);
digitalWrite(leftMotorForward, LOW);
digitalWrite(rightMotorForward, LOW);
digitalWrite(leftMotorBackward, LOW);
digitalWrite(rightMotorBackward, HIGH);
}
void left(void)
{
digitalWrite(leftMotorENB, HIGH);
digitalWrite(rightMotorENB, LOW);
digitalWrite(leftMotorForward, LOW);
digitalWrite(rightMotorForward, LOW);
digitalWrite(leftMotorBackward, HIGH);
digitalWrite(rightMotorBackward, LOW);
}
void right(void)
{
digitalWrite(leftMotorENB, HIGH);
digitalWrite(rightMotorENB, LOW);
digitalWrite(leftMotorForward, HIGH);
digitalWrite(rightMotorForward, LOW);
digitalWrite(leftMotorBackward, LOW);
digitalWrite(rightMotorBackward, LOW);
}
void TurnLeft(void)
{
digitalWrite(leftMotorENB, HIGH);
digitalWrite(rightMotorENB, HIGH);
digitalWrite(leftMotorForward, LOW);
digitalWrite(rightMotorForward, HIGH);
digitalWrite(rightMotorBackward, LOW);
digitalWrite(leftMotorBackward, HIGH);
}
void TurnRight(void)
{
digitalWrite(leftMotorENB, HIGH);
digitalWrite(rightMotorENB, HIGH);
digitalWrite(leftMotorForward, HIGH);
digitalWrite(rightMotorForward, HIGH);
digitalWrite(rightMotorBackward, LOW);
digitalWrite(leftMotorBackward, LOW);
}
void BackLeft(void)
{
digitalWrite(leftMotorENB, HIGH);
digitalWrite(rightMotorENB, HIGH);
digitalWrite(leftMotorForward, LOW);
digitalWrite(rightMotorForward, LOW);
digitalWrite(leftMotorBackward, HIGH);
digitalWrite(rightMotorBackward, HIGH);
}
void BackRight(void)
{
digitalWrite(leftMotorENB, HIGH);
digitalWrite(rightMotorENB, HIGH);
digitalWrite(leftMotorForward, HIGH);
digitalWrite(rightMotorForward, LOW);
digitalWrite(rightMotorBackward, HIGH);
digitalWrite(leftMotorBackward, LOW);
}
void MotorStop(void)
{
digitalWrite(leftMotorENB, LOW);
digitalWrite(rightMotorENB, LOW);
digitalWrite(leftMotorForward, LOW);
digitalWrite(leftMotorBackward, LOW);
digitalWrite(rightMotorForward, LOW);
digitalWrite(rightMotorBackward, LOW);
}
String checkClient (void)
{
while (!client.available()) delay(1);
String request = client.readStringUntil('\r');
request.remove(0, 5);
request.remove(request.length() - 9, 9);
return request;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment