The smallest Wifi smartphone controlled 4WD car using ESP8266, Blynk and Arduino Code

link Projects https://www.youtube.com/watch?v=QwzRC-Ov-Zo

//Need to improve code//

/*
  Wifi/Blynk controlled 4WD car using ESP 8266
  Used Pin ESP07
  D5-14 motorA1 ; D6-12 motorA2
  D1-05 motorB1 ; D2-04 motorB2
  D4-02 Rightflasher
  RX-03 Leftflasher
  D7-13 Headlight ; tx-01 buzzer
*/
#include  < ESP8266WiFi.h >
#include  < BlynkSimpleEsp8266.h >

int X = 512;
int Y = 512;
int maximo = 0;
int Rflasher = 0;
int Lflasher = 0;
int buzzer = 0;
int police = 0;
int flasherLedState = LOW;          //Initial led state

long previousMillis = 0;        // Time control
long flasherLedInterval = 300;     // Interval time to run

#define RED 0
#define BLUE 0

byte whichLED = RED;
byte Red_State = LOW;
byte Red1_State = LOW;
unsigned long switchDelay = 250;
unsigned long strobeDelay = 50;
unsigned long strobeWait = strobeDelay;
unsigned long waitUntilSwitch = switchDelay;  // Initial state

char auth[] = "xxxxxxxxxxxx"; // You should get Auth Token in the Blynk App.

void setup()
{
  Serial.begin(9600);// Set console baud rate
  Blynk.begin(auth, "SSID", "PASS");// You will connect your phone to this Access Point and this is the password

  pinMode(14, OUTPUT); // Pin motor A1
  pinMode(12, OUTPUT); // Pin motor A2
  pinMode(2, OUTPUT); // Pin Rightflasher
  pinMode(3, OUTPUT); // Pin Leftflasher
  pinMode(5, OUTPUT); // Pin motor B1
  pinMode(4, OUTPUT); // Pin motor B2
  pinMode(1, OUTPUT); // PinoBuzzer

}

BLYNK_WRITE(V1)  // 0~1023
{
  int X1 = param[0].asInt();
  X = X1;
  int Y1 = param[1].asInt();
  Y = Y1;
}
BLYNK_WRITE(V2)//      slider PWM from 0 to 1023
{
  maximo = param.asInt();
}

BLYNK_WRITE(V3)     //      button Rightflasher
{
  Rflasher = param.asInt();
}

BLYNK_WRITE(V4)    //      button Leftflasher
{
  Lflasher = param.asInt();
}

BLYNK_WRITE(V5)    //      button buzzer
{
  buzzer = param.asInt();
}


BLYNK_WRITE(V7)     //      button police
{
  police = param.asInt();
}

void loop()
{
  Blynk.run();

  if (X != 512 && Y != 512)
  {

    if ( X > 311 && X < 711  &&  Y > 311 && Y < 711 ) //  Motor Stop
    {
      analogWrite(14, 0); //IN-1A motorA = 0
      analogWrite(12, 0);  //IN-1B


      analogWrite(5, 0); //IN-2A motorB = 0
      analogWrite(4, 0); //IN-2B
    }

    if ( X > 311 && X < 711  &&  Y > 711)  // motor forward
    {
      analogWrite(14, maximo); //motorA = maximo;
      analogWrite(12, 0);

      analogWrite(5, maximo);//motorB = maximo;
      analogWrite(4, 0);
    }

    if ( X > 311 && X < 711  &&  Y < 311)  // Motor backward
    {
      analogWrite(12, maximo);// motorA = maximo;
      analogWrite(14, 0);
      analogWrite(5, maximo);// motorB = maximo;
      analogWrite(4, 0);
    }
    if ( X > 711 &&  Y > 711)  // Right Forward
    {
      analogWrite(14, maximo);//motorA = maximo;
      analogWrite(12, 0);
      analogWrite(5, 0);//motorB = 0;
      analogWrite(4, 0);
    }

    if ( X < 311 &&  Y > 711)  // Left Forward
    {
      analogWrite(14, 0);//motorA = 0;
      analogWrite(12, 0);
      analogWrite(5, maximo);//motorB = maximo;
      analogWrite(4, 0);
    }

    if ( X > 711 &&  Y < 311)  // Right backwards
    {
      analogWrite(12, maximo);//motorA = maximo;
      analogWrite(14, 0);
      analogWrite(5, 0 );//motorB = 0;
      analogWrite(4, 0);
    }

    if ( X < 311 &&  Y < 311)  // Left backwards
    {
      analogWrite(12, 0);//motorA = 0;
      analogWrite(14, 0);
      analogWrite(5, maximo);//motorB = maximo;
      analogWrite(4, 0);
    }
  }

  if (Rflasher != 1 && Lflasher != 1)
  {
    if (police == 1)
    {
      digitalWrite(2, Red_State);
      digitalWrite(3, Red1_State);

      if ((long)(millis() - waitUntilSwitch) >= 0) {
        // time is up!
        Red_State = LOW;
        Red1_State = LOW;
        whichLED = !whichLED;  // toggle LED to strobe
        waitUntilSwitch += switchDelay;
      }

      //  police effect
      if ((long)(millis() - strobeWait) >= 0) {
        if (whichLED == RED)
          Red_State = !Red_State;
        if (whichLED == BLUE)
          Red1_State = !Red1_State;
        strobeWait += strobeDelay;
      }
    } else {
      digitalWrite(2, LOW);
      digitalWrite(3, LOW);
    }
  }

  unsigned long currentMillis = millis();    //Current time
  if (currentMillis - previousMillis > flasherLedInterval) //Logic of time verification
  {
    previousMillis = currentMillis;    // Saves the current time

    if (flasherLedState == LOW)
    {
      flasherLedState = HIGH;
    } else {
      flasherLedState = LOW;
    }
    if (Rflasher == 1 && police == 0)
    {
      digitalWrite(2, flasherLedState);
    } else {
      digitalWrite(2, LOW);
    }
    if (Lflasher == 1 && police == 0)
    {
      digitalWrite(3, flasherLedState);
    } else {
      digitalWrite(3, LOW);
    }
  }
  if (buzzer == 1)
  {
    tone(1, 500, 200); //Horn tone "FA"
  }
}
10 Likes

It is a real cute little car! :+1: But please go back and edit your post with properly formatted code… and then perhaps ask a question as well :wink: (in reference to - //Need to improve code// )… or are you just showing it to us?

Also, MORE DETAILS PLEASE :smiley: what are you using for motors and controller that small??

EDIT - OK, I guess I could have watched until the end of the video before asking :stuck_out_tongue:

Again, real nice work!

Nice little car, world’s smallest iot car. Really awesome.nice work.

WOW what a tiny funny game to play with , can you provide parts list so we all can get own hands on
such little cute game

Wow!!! Such a small car, I love it!!! Thanks for sharing!
Just one question… How many minutes can you drive your car with this little battery??

cool project thanks for sharing :slight_smile:

Is there a build Log for this thing? I’d LOVE to have one of this driving on our 1:87 modelrailroad :smiley:

Thanks Psoro, This car I can’t drive more than 5 minutes. Depends on the quality and capacity of the battery.

I do not have a build log yet , Parts List is inside of youtube video.

I noticed. I’ll go from there.

I think I’ll build a mouse thing around it and use it to play with the cats, lol.

Hi sir your project of the smallest car is superb and I also wanted to build something like you.
I am really amazed with your work.
I am studying your project and collecting all the parts as mentioned in your tutorial on YouTube.
Here I have one doubt regarding mosfet as there are three pins on it. Which pin is going to led and other connection as I have previously mentioned that I am not an engineer but an enthusiast.
Can you please provide me details of circuit.
It will be very helpful of you.
I have previously built one Wi-Fi car as well by following tutorials on YouTube.
Please provide me details of circuit.
Thanks again for such a good idea.

[Unformatted code removed by moderator]

@Mamtesh Please edit your post, using the pencil icon at the bottom, and add triple backticks at the beginning and end of your code so that it displays correctly.
Triple backticks look like this:
```

Copy and paste these if you can’t find the correct symbol on your keyboard.

Pete.