AnaSayfa Arduino Wifi Kontrollü Araba ( Nodemcu )

Wifi Kontrollü Araba ( Nodemcu )

679

Herkese merhaba! Araba yapımlarına doyamadık. ? Arduino ile alıştığımız robot serisinde bu kez arduino yerine nodemcu ile internet üzerinden kontrol edeceğimiz bir araçla süsledik. Öncelikle neden nodemcu kullandık ? veya arduino ile yapamaz mıydık ?

Tabi ki yapabilirdik esp8266 wifi modülünü kullanarak bunu gerçekleştirebilirdik ama nodemcu bir nevi esp8266 sheild görevi gördüğü için işimizi oldukça kolaylaştırıyor ve kullanımı basitleştiriyor. Bu yüzden de nodemcu’u tercih ettim.

Malzemeler :

  • NodemCU
  • L298N motor sürücüsü
  • Robot kiti veya oyuncak araba
  • jumper kablolar
  • nodemcu ve l298n için 2 adet güç kaynağı (pil)

evet arkadaşlar malzeme listemiz bu kadar zaten amaç öğrenmek olduğundan hep aynı şaseyi kullanabilirsiniz (ben öyle yapıyorum )

 

Şase yapımını kanalımda bulabilirsiniz arkadaşlar

Devremizi kurduysak şimdi kodlamalara başlayabiliriz.

KOD :

</div>
<div class="syntaxhighlighter cpp">#include <ESP8266WiFi.h>
/* define port */
WiFiClient client;
WiFiServer server(80);
/* WIFI settings */
constchar* ssid = "wifi adınız";
constchar* password = "wifi şifreniz";
/* data received from application */
String data ="";
/* define L298N or L293D motor control pins */
intleftMotorForward = 2; /* GPIO2(D4) -> IN3 */
intrightMotorForward = 15; /* GPIO15(D8) -> IN1 */
intleftMotorBackward = 0; /* GPIO0(D3) -> IN4 */
intrightMotorBackward = 13; /* GPIO13(D7) -> IN2 */</div>
<div></div>
<div class="syntaxhighlighter cpp">voidsetup() {</div>
<div></div>
<div class="syntaxhighlighter cpp">Serial.begin(115200);
delay(10);
/* initialize motor control pins as output */
pinMode(leftMotorForward, OUTPUT);
pinMode(rightMotorForward, OUTPUT);
pinMode(leftMotorBackward, OUTPUT);
pinMode(rightMotorBackward, OUTPUT);
/* Connect to WiFi network */
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
/* start server communication */
server.begin();
Serial.println("Server started");
/* print the IP address */
Serial.print("Use this URL to connect: ");
Serial.print("http://");
Serial.print(WiFi.localIP());
Serial.println("/");
}</div>
<div></div>
<div class="syntaxhighlighter cpp">voidloop() {</div>
<div></div>
<div class="syntaxhighlighter cpp">/* If the server available, run the "checkClient" function */
client = server.available();
if(!client) return;
data = checkClient ();
/************************ Run function according to incoming data from application *************************/
/* If the incoming data is "forward", run the "MotorForward" function */
if(data == "forward") MotorForward();
/* If the incoming data is "backward", run the "MotorBackward" function */
elseif(data == "backward") MotorBackward();
/* If the incoming data is "left", run the "TurnLeft" function */
elseif(data == "left") TurnLeft();
/* If the incoming data is "right", run the "TurnRight" function */
elseif(data == "right") TurnRight();
/* If the incoming data is "stop", run the "MotorStop" function */
elseif(data == "stop") MotorStop();
/* Web Browser */
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("");
client.println("<!DOCTYPE HTML>");
client.println("<html>");
client.println("<head>");
client.println("<title> MERT ARDUINO and TECH </title>");
client.println("</head>");
client.println("<body>");
client.println("<center>");
client.println("<h2> WiFi CONTROLLED TANK via ESP8266 </h2>");
client.println("<br><br>");
client.println("<hr>");
/* Buttons */
client.println("<br><br>");
client.println("<a href=\"/forward\"\"><button>FORWARD </button></a>");
client.println("<a href=\"/backward\"\"><button>BACKWARD </button></a><br />");
client.println("<br><br>");
client.println("<a href=\"/left\"\"><button>LEFT </button></a>");
client.println("<a href=\"/right\"\"><button>RIGHT </button></a><br />");
client.println("<br><br>");
client.println("<a href=\"/stop\"\"><button>STOP </button></a><br />");
client.println("<br><br>");
client.println("<hr>");
client.println("<br><br>");
client.println("<pre><h3>Mert Arduino and Tech - YouTube</br> WiFi controlled Tank via Web Browser (WiFibot/Web/WiFi/IoT/ESP8266)</br> NodeMCU ESP8266 Project</br></h3></pre>");
client.println("</center>");
client.println("</body>");
client.println("</html>");
}
&nbsp;
/********************************************* FORWARD *****************************************************/
voidMotorForward(void)
{
digitalWrite(leftMotorForward,HIGH);
digitalWrite(rightMotorForward,HIGH);
digitalWrite(leftMotorBackward,LOW);
digitalWrite(rightMotorBackward,LOW);
}
/********************************************* BACKWARD *****************************************************/
voidMotorBackward(void)
{
digitalWrite(leftMotorBackward,HIGH);
digitalWrite(rightMotorBackward,HIGH);
digitalWrite(leftMotorForward,LOW);
digitalWrite(rightMotorForward,LOW);
}
/********************************************* TURN LEFT *****************************************************/
voidTurnLeft(void)
{
digitalWrite(leftMotorForward,LOW);
digitalWrite(rightMotorForward,HIGH);
digitalWrite(rightMotorBackward,LOW);
digitalWrite(leftMotorBackward,HIGH);
}
/********************************************* TURN RIGHT *****************************************************/
voidTurnRight(void)
{
digitalWrite(leftMotorForward,HIGH);
digitalWrite(rightMotorForward,LOW);
digitalWrite(rightMotorBackward,HIGH);
digitalWrite(leftMotorBackward,LOW);
}
/********************************************* STOP *****************************************************/
voidMotorStop(void)
{
digitalWrite(leftMotorForward,LOW);
digitalWrite(leftMotorBackward,LOW);
digitalWrite(rightMotorForward,LOW);
digitalWrite(rightMotorBackward,LOW);
}
/********************************** RECEIVE DATA FROM the WEB ******************************************/
String checkClient (void)
{
while(!client.available()) delay(1);
String request = client.readStringUntil('\r');
request.remove(0, 5);
request.remove(request.length()-9,9);
returnrequest;
}

 

İLGİLİ MAKALE  DHT11 ile Sıcaklık Nem Ölçümü

Projeyi beğendiyseniz Lütfen Kanalıma Abone olunuz 🙂

Daha Fazla İlgili Makale Yükleyin
Daha Fazla Yük Arduino

Bir Yorum Yazın

Ayrıca Kontrol Edin

Temel Arduino Eğitimi | Ders #13: Karakter Dizileri (Stringler)

Karakter Dizileri (Stringler): Arduino’da birden fazla karakter barındıran değişkenlere ka…