HOW TO MAKE NODEMCU CAR || SKY TECH - RICK

How to make NodeMCU car


FOLLOW US on INSTAGRAM

@sky_tech_rick1

App link and Code 

CLICK HERE

DRIVE LINK


CODE:- Below


#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 = 800;         // 400 - 1023.

int speed_Coeff = 3;


const char* ssid = "NodeMCU Car";

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);

}

Material Used:)


FlyRobo [India]:

   Node MCU ESP8266: https://bit.ly/2OiUbgV

   L298N Motor Driver: https://bit.ly/3fbXEtc

   BO motor with wheel: https://bit.ly/2CkNrvS

   9 Volt Battery: https://bit.ly/2Z9JpzN

   Jumper Wire: https://bit.ly/2DmGScY


Amazon [India]:

  Node MCU ESP8266(CP2102): https://amzn.to/2HgYZkj

  L298N Motor Driver: https://amzn.to/2SY0JSg

  BO Motor or gear Motor: https://amzn.to/2R0FaTV

  BO motor with wheel: https://amzn.to/2T1TDMH

  BO motor wheel: https://amzn.to/2UXyq8c

  2s,7.4 v,1000mah,30C Li-po Battery(Robu.in): https://goo.gl/qTrzHb

  2s Battery Balance connector: https://amzn.to/2KRofzy

  Jumper Wire: https://amzn.to/2H9NJYO


Thanks for watching;

#SKYTECH-RICK

#SKYTECHRICK







Comments

  1. Greetings from Xiaomi India, please share your valuable feedback on the interaction you had with our customer support team:
    https://m.beehive.in.intl.miui.com/gd7CgL3hWJdtD42kNAg0nA/cx-india/?info=8436431656

    ReplyDelete
  2. Dear Xiaomi Customer,

    Our repair services are available ensuring all safety precautions against COVID19 as suggested by the Government of India. In the interest of all our customers and employees, we request you to take an appointment in advance as per the availability of slots in your PIN code and visit the service centre by wearing a face mask and keeping the product invoice handy. A prior appointment can be taken here:
    https://miservicemanager.mi.com/customer.html

    An SMS confirming the time slot and the nearest Service Centre address will be sent once you successfully take an appointment.

    ReplyDelete
  3. Appu's Mobile Care, International Market ,Ground Floor, Shop No. B-16, Sevoke

    ReplyDelete

Post a Comment

Popular posts from this blog

HOW TO ADD NODEMCU BOARD TO ARDUINO IDE (SOFTWARE)

Ultrasonic Sensor - All types of projects available here.