0% found this document useful (0 votes)
126 views5 pages

ESP8266 Robot Car Tutorial Guide

The document provides a tutorial for building an ESP8266-based robot, including links to a tutorial video, board preferences, and a controller app. It contains Arduino code for controlling the robot's movements and speed settings. Additionally, it outlines the setup process for connecting the robot to WiFi and handling commands via a web server.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views5 pages

ESP8266 Robot Car Tutorial Guide

The document provides a tutorial for building an ESP8266-based robot, including links to a tutorial video, board preferences, and a controller app. It contains Arduino code for controlling the robot's movements and speed settings. Additionally, it outlines the setup process for connecting the robot to WiFi and handling commands via a web server.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd

ESP8266 BOT

By Namai

Tutorial video - [Link]

Board link (to be pasted in arduino preferences) -


[Link]

App link (controller) - [Link]


id=[Link].esp8266wifirobotcar

Code (To be pasted in the arduino IDE) -

#define ENA 5 // Enable/speed motors Right GPIO5(D1)


#define ENB 12 // Enable/speed motors Left GPIO12(D6)
#define IN_1 4 // L298N in1 motors Rightx GPIO4(D2)
#define IN_2 0 // L298N in2 motors Right GPIO0(D3)
#define IN_3 2 // L298N in3 motors Left GPIO2(D4)
#define IN_4 14 // L298N in4 motors Left GPIO14(D5)

#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 = "Namai's Robo"; // CUSTOMIZE YOUR BOT NAME HERE
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);

[Link](115200);

// Connecting WiFi

[Link](WIFI_AP);
[Link](ssid);

IPAddress myIP = [Link]();


[Link]("AP IP address: ");
[Link](myIP);

// Starting WEB-server
[Link] ( "/", HTTP_handleRoot );
[Link] ( HTTP_handleRoot );
[Link]();
}

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() {
[Link]();

command = [Link]("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( [Link]("State") ){
[Link]([Link]("State"));
}
[Link] ( 200, "text/html", "" );
delay(1);
}

Link to DIY wensite: [Link]

You might also like