#include <WiFi.h>
#include <HTTPClient.h>
const char* ssid = "ESP32-Access-Point";
const char* password = "123456789";
//Your IP address or domain name with URL path
const char* serverNameForward = "http://192.168.4.1/forward";
const char* serverNameSideways = "http://192.168.4.1/sideways";
String forward;
String sideways;
int ENA = 04;
int IN1 = 02;
int IN2 = 14;
int IN3 = 15;
int IN4 = 13;
int ENB = 12;
unsigned long previousMillis = 0;
const long interval = 100;
const int frequency = 500;
const int pwm_channel = 0;
const int resolution = 8;
void setup() {
Serial.begin(115200);
Serial.println("Starting");
//pinMode(ENA, OUTPUT);
//pinMode(IN1, OUTPUT);
//pinMode(IN2, OUTPUT);
//pinMode(IN3, OUTPUT);
//pinMode(IN4, OUTPUT);
//pinMode(ENB, OUTPUT);
//digitalWrite(IN1, LOW);
//digitalWrite(IN2, LOW);
//digitalWrite(IN3, LOW);
//digitalWrite(IN4, LOW);
//ledcSetup(pwm_channel, frequency, resolution);
//ledcAttachPin(ENA, pwm_channel);
// ledcWrite(pwm_channel, 10);
WiFi.begin(ssid, password);
Serial.println("Connecting");
while(WiFi.status() != WL_CONNECTED) {
delay(100);
Serial.println(".");
}
Serial.println("");
Serial.print("Connected to WiFi network with IP Address: ");
Serial.println(WiFi.localIP());
}
void loop() {
unsigned long currentMillis = millis();
if(currentMillis - previousMillis >= interval) {
// Check WiFi connection status
if(WiFi.status()== WL_CONNECTED ){
forward = httpGETRequest(serverNameForward);
sideways = httpGETRequest(serverNameSideways);
Serial.println("Forward: " + forward);
Serial.println("Sideways: " + sideways);
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
if(forward.toInt() > 2500) {
Serial.println("Going forward");
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
if(forward.toInt() < 1500) {
Serial.println("Going backward");
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
if(sideways.toInt() > 2500) {
Serial.println("Going left");
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
}
if(sideways.toInt() < 1500) {
Serial.println("Going right");
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
}
// save the last HTTP GET Request
previousMillis = currentMillis;
}
else {
Serial.println("WiFi Disconnected");
delay(1000);
}
}
}
String httpGETRequest(const char* serverName) {
WiFiClient client;
HTTPClient http;
// Your Domain name with URL path or IP address with path
http.begin(client, serverName);
// Send HTTP POST request
int httpResponseCode = http.GET();
String payload = "--";
if (httpResponseCode>0) {
// Serial.print("HTTP Response code: ");
// Serial.println(httpResponseCode);
payload = http.getString();
}
else {
Serial.print("Error code: ");
Serial.println(httpResponseCode);
}
// Free resources
http.end();
return payload;
}