Skip to main content

How To Make Wi-Fi Car With NodeMCU| NodeMCU Projects| Topped With Fun




Circuit Diagram:


 Code:


#define ENA   14           // Enable/speed motors Right        GPIO14(D5)

#define ENB   12            // Enable/speed motors Left         GPIO12(D6)

#define IN_1  15            // L298N in1 motors Right           GPIO15(D8)

#define IN_2  13            // L298N in2 motors Right           GPIO13(D7)

#define IN_3  2             // L298N in3 motors Left            GPIO2(D4)

#define IN_4  0             // L298N in4 motors Left            GPIO0(D3)


#include <ESP8266WiFi.h>

#include <WiFiClient.h> 

#include <ESP8266WebServer.h>


String command;              //String to store app command state.

int speedCar = 80;              // 400 - 1023.

int speed_Coeff = 3;


const char* ssid = "XXXXXXXXXXX";       //SSID Name

ESP8266WebServer server(80);


void setup() {

 

 pinMode(ENA, OUTPUT);

 pinMode(ENB, OUTPUT);  

 pinMode(IN_1, OUTPUT);

 pinMode(IN_2, OUTPUT);

 pinMode(IN_3, OUTPUT);

 pinMode(IN_4, OUTPUT); 

  

  Serial.begin(115200);

  

// Connecting WiFi


  WiFi.mode(WIFI_AP);

  WiFi.softAP(ssid);


  IPAddress myIP = WiFi.softAPIP();

  Serial.print("AP IP address: ");

  Serial.println(myIP);

 

 // Starting WEB-server 

     server.on ( "/", HTTP_handleRoot );

     server.onNotFound ( HTTP_handleRoot );

     server.begin();    

}


void goAhead(){ 


      digitalWrite(IN_1, LOW);

      digitalWrite(IN_2, HIGH);

      analogWrite(ENA, speedCar);


      digitalWrite(IN_3, LOW);

      digitalWrite(IN_4, HIGH);

      analogWrite(ENB, speedCar);

  }


void goBack(){ 


      digitalWrite(IN_1, HIGH);

      digitalWrite(IN_2, LOW);

      analogWrite(ENA, speedCar);


      digitalWrite(IN_3, HIGH);

      digitalWrite(IN_4, LOW);

      analogWrite(ENB, speedCar);

  }


void goRight(){ 


      digitalWrite(IN_1, HIGH);

      digitalWrite(IN_2, LOW);

      analogWrite(ENA, speedCar);


      digitalWrite(IN_3, LOW);

      digitalWrite(IN_4, HIGH);

      analogWrite(ENB, speedCar);

  }


void goLeft(){


      digitalWrite(IN_1, LOW);

      digitalWrite(IN_2, HIGH);

      analogWrite(ENA, speedCar);


      digitalWrite(IN_3, HIGH);

      digitalWrite(IN_4, LOW);

      analogWrite(ENB, speedCar);

  }


void goAheadRight(){

      

      digitalWrite(IN_1, LOW);

      digitalWrite(IN_2, HIGH);

      analogWrite(ENA, speedCar/speed_Coeff);

 

      digitalWrite(IN_3, LOW);

      digitalWrite(IN_4, HIGH);

      analogWrite(ENB, speedCar);

   }


void goAheadLeft(){

      

      digitalWrite(IN_1, LOW);

      digitalWrite(IN_2, HIGH);

      analogWrite(ENA, speedCar);


      digitalWrite(IN_3, LOW);

      digitalWrite(IN_4, HIGH);

      analogWrite(ENB, speedCar/speed_Coeff);

  }


void goBackRight(){ 


      digitalWrite(IN_1, HIGH);

      digitalWrite(IN_2, LOW);

      analogWrite(ENA, speedCar/speed_Coeff);


      digitalWrite(IN_3, HIGH);

      digitalWrite(IN_4, LOW);

      analogWrite(ENB, speedCar);

  }


void goBackLeft(){ 


      digitalWrite(IN_1, HIGH);

      digitalWrite(IN_2, LOW);

      analogWrite(ENA, speedCar);


      digitalWrite(IN_3, HIGH);

      digitalWrite(IN_4, LOW);

      analogWrite(ENB, speedCar/speed_Coeff);

  }


void stopRobot(){  


      digitalWrite(IN_1, LOW);

      digitalWrite(IN_2, LOW);

      analogWrite(ENA, speedCar);


      digitalWrite(IN_3, LOW);

      digitalWrite(IN_4, LOW);

      analogWrite(ENB, speedCar);

 }


void loop() {

    server.handleClient();

    

      command = server.arg("State");

      if (command == "F") goAhead();

      else if (command == "B") goBack();

      else if (command == "L") goLeft();

      else if (command == "R") goRight();

      else if (command == "I") goAheadRight();

      else if (command == "G") goAheadLeft();

      else if (command == "J") goBackRight();

      else if (command == "H") goBackLeft();

      else if (command == "0") speedCar = 400;

      else if (command == "1") speedCar = 470;

      else if (command == "2") speedCar = 540;

      else if (command == "3") speedCar = 610;

      else if (command == "4") speedCar = 680;

      else if (command == "5") speedCar = 750;

      else if (command == "6") speedCar = 820;

      else if (command == "7") speedCar = 890;

      else if (command == "8") speedCar = 960;

      else if (command == "9") speedCar = 1023;

      else if (command == "S") stopRobot();

}


void HTTP_handleRoot(void) {


if( server.hasArg("State") ){

       Serial.println(server.arg("State"));

  }

  server.send ( 200, "text/html", "" );

  delay(1);

}



Comments

Popular posts from this blog

IOT Based Heart Rate And SpO2 Tracker With NodeMCU MAX30100 And Blynk Application With Code Diagram

Circuit Diagram: SCL PIN - D1 , SDA PIN - D2 , INT PIN - D0 Code: #include <Wire.h> #include "MAX30100_PulseOximeter.h" #define BLYNK_PRINT Serial #include <Blynk.h> #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> #include "Adafruit_GFX.h" #include "OakOLED.h" #define REPORTING_PERIOD_MS 1000 OakOLED oled; char auth[] = "*********************";             // Authentication Token Sent by Blynk char ssid[] = "********************";        //WiFi SSID char pass[] = "*********************";        //WiFi Password // Connections : SCL PIN - D1 , SDA PIN - D2 , INT PIN - D0 PulseOximeter pox; float BPM, SpO2; uint32_t tsLastReport = 0; const unsigned char bitmap [] PROGMEM = {   0x00, 0x00, 0x00, 0x00, 0x01, 0x80, 0x18, 0x00, 0x0f, 0xe0, 0x7f, 0x00, 0x3f, 0xf9, 0xff, 0xc0,   0x7f, 0xf9, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xf0,  ...

Obstacle Avoiding Car With Ultrasonic Sensor|Autonomous Car Using L293D Motor Driver|Topped With Fun

Download The Libraries Here:- Motor-Shield-l-master Arduino-NewPing-master Circuit Diagram:- Code:- #include <AFMotor.h>   #include <NewPing.h> #include <Servo.h>  #define TRIG_PIN A4  #define ECHO_PIN A5 #define MAX_DISTANCE 200  #define MAX_SPEED 190 // sets speed of DC  motors #define MAX_SPEED_OFFSET 20 NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE);  AF_DCMotor motor1(1, MOTOR12_1KHZ);  AF_DCMotor motor2(2, MOTOR12_1KHZ); AF_DCMotor motor3(3, MOTOR34_1KHZ); AF_DCMotor motor4(4, MOTOR34_1KHZ); Servo myservo;    boolean goesForward=false; int distance = 100; int speedSet = 0; void setup() {   myservo.attach(10);     myservo.write(115);    delay(2000);   distance = readPing();   delay(100);   distance = readPing();   delay(100);   distance = readPing();   delay(100);   distance = readPing();   delay(100); } void loop() {  int distanceR = 0; ...