Advertisement
vitareinforce

NodeMCU

Jun 24th, 2018
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.29 KB | None | 0 0
  1. #include <ESP8266WiFi.h>
  2.  
  3. const char* ssid = "nama_access_point_wifi";
  4. const char* password = "password_access_point_wifi";
  5.  
  6. const int PWMELPin = 14; // D5 Enable PWM Left Motor
  7. const int PWMERPin = 12; // D6 Enable PWM Right Motor
  8. const int L1Pin = 5; // D1 = Left Motor Lead 1
  9. const int L2Pin = 4; // D2 = Left Motor Lead 2
  10. const int L3Pin = 0; // D3 = Right Motor Lead 1
  11. const int L4Pin = 2; // D4 = Right Motor Lead 2
  12. const int LEDPin = 13; // D7 Led Pin, digunakan untuk rekayasa 5V pin
  13.  
  14. WiFiServer server(80); //inisiasi wifi server pada port 80 (standar http)
  15.  
  16. void setup() {
  17.  
  18.   /*
  19.    * enable pin sebagai output
  20.    */
  21.   pinMode(PWMELPin, OUTPUT);
  22.   pinMode(PWMERPin, OUTPUT);
  23.   pinMode(L1Pin, OUTPUT);
  24.   pinMode(L2Pin, OUTPUT);
  25.   pinMode(L3Pin, OUTPUT);
  26.   pinMode(L4Pin, OUTPUT);
  27.   pinMode(LEDPin, OUTPUT);
  28.  
  29.   //Setup Serial dengan baud rate 115200 (default node mcu)
  30.   Serial.begin(115200);
  31.  
  32.   //delay 10 milisecond
  33.   delay(10);
  34.  
  35.   //koneksi ke wifi dengan nama akses point dan password yang telah ditentukan
  36.   WiFi.begin(ssid, password);
  37.  
  38.   /*
  39.    * Loading indicator ketika wifi masih belum terkoneksi
  40.    * dengan delay 500 milisecond
  41.    */
  42.   while (WiFi.status() != WL_CONNECTED) {
  43.    delay(500);
  44.    Serial.print(".");
  45.   }
  46.  
  47.   /*
  48.    * Wifi sudah terkoneksi
  49.    */
  50.   Serial.println("");
  51.   Serial.println("WiFi connected");
  52.  
  53.   /*
  54.    * Nyalakan layanan wifi server
  55.    */
  56.   server.begin();
  57.   Serial.println("Server started");
  58.  
  59.   // Print IP Address, ip address ini digunakan untuk aplikasi android
  60.   Serial.println(WiFi.localIP());
  61.  
  62.   //matikan semua motor
  63.   stopMotor();
  64.  
  65.   //set LEDPin agar selalu pada kondisi high sehingga dapat menyediakan tegangan 5V pada pin tersebut
  66.   digitalWrite(LEDPin, HIGH);
  67. }
  68.  
  69. void loop()
  70. {
  71.   /*
  72.    * Tunggu sampai ada client yang terkoneksi
  73.    */
  74.   WiFiClient client = server.available();
  75.   if (!client) {
  76.     return;
  77.   }
  78.  
  79.   /*
  80.    * Tunggu sampai ada client yang mengirimkan data
  81.    */
  82.   while(!client.available()){
  83.     delay(1);
  84.   }
  85.  
  86.   /*
  87.    * Baca request data yang masuk sebanyak satu baris
  88.    */
  89.   String req = client.readStringUntil('\r');
  90.   client.flush();
  91.  
  92.   /*
  93.    * Pengecekan request data
  94.    */
  95.   if (req.indexOf("/maju/0") != -1) {
  96.     MotorL(1, 1);
  97.     MotorR(1, 1);
  98.     Serial.println("maju");
  99.    } else if (req.indexOf("/maju/1") != -1) {
  100.     stopMotor();
  101.     Serial.println("stop maju");
  102.   } else if (req.indexOf("/mundur/0") != -1) {
  103.     MotorL(0, 1);
  104.     MotorR(0, 1);
  105.     Serial.println("mundur");
  106.   } else if (req.indexOf("/mundur/1") != -1) {
  107.     stopMotor();
  108.     Serial.println("stop mundur");
  109.   } else if (req.indexOf("/kanan/0") != -1) {
  110.     Serial.println("kanan");
  111.     MotorL(1, 1);
  112.     MotorR(0, 1);
  113.   } else if (req.indexOf("/kanan/1") != -1) {
  114.     stopMotor();
  115.     Serial.println("stop kanan");
  116.   } else if (req.indexOf("/kiri/0") != -1) {
  117.     MotorL(0, 1);
  118.     MotorR(1, 1);
  119.     Serial.println("kiri");
  120.   } else if (req.indexOf("/kiri/1") != -1) {
  121.     stopMotor();
  122.     Serial.println("stop kiri");
  123.   } else {
  124.     client.stop();
  125.     return;
  126.   }
  127.  
  128.   client.flush();
  129. }
  130.  
  131. /*
  132.  * Stop semua motor
  133.  */
  134. void stopMotor() {
  135.   digitalWrite(L1Pin, LOW);
  136.   digitalWrite(L2Pin, LOW);
  137.   digitalWrite(L3Pin, LOW);
  138.   digitalWrite(L4Pin, LOW);
  139. }
  140.  
  141. /*
  142.  * Fungsi Gerak Motor Ke Sebelah Kiri
  143.  * Parameter:
  144.  * - Direction =  Arah Gerakan (1 Maju, 0 Mundur)
  145.  * - Speed = Kecepatan Gerakan (1 Cepat, 0 Lambat)
  146.  */
  147. void MotorL(int Direction, int Speed)
  148. {
  149.   // Left Motor
  150.   if (Speed == 1)
  151.   {
  152.      analogWrite(PWMELPin, 250);
  153.   }
  154.   else
  155.   {
  156.      analogWrite(PWMELPin, 20);
  157.   }
  158.   if (Direction == 1)
  159.   {
  160.      digitalWrite(L1Pin, HIGH);
  161.      digitalWrite(L2Pin, LOW);
  162.   }
  163.   else
  164.   {
  165.      digitalWrite(L1Pin, LOW);
  166.      digitalWrite(L2Pin, HIGH);
  167.   }
  168. }
  169.  
  170. /*
  171.  * Fungsi Gerak Motor Ke Sebelah Kanan
  172.  * Parameter:
  173.  * - Direction =  Arah Gerakan (1 Maju, 0 Mundur)
  174.  * - Speed = Kecepatan Gerakan (1 Cepat, 0 Lambat)
  175.  */
  176. void MotorR(int Direction, int Speed)
  177. {
  178.   // Right Motor
  179.   if (Speed == 1)
  180.   {
  181.      analogWrite(PWMERPin, 250);
  182.   }
  183.   else
  184.   {
  185.      analogWrite(PWMERPin, 20);
  186.   }
  187.   if (Direction == 1)
  188.   {
  189.      digitalWrite(L3Pin, HIGH);
  190.      digitalWrite(L4Pin, LOW);
  191.   }
  192.   else
  193.   {
  194.      digitalWrite(L3Pin, LOW);
  195.      digitalWrite(L4Pin, HIGH);
  196.   }
  197. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement