Kamis, 20 Oktober 2016

Control LED_BUILTIN pada board ESP8266 NodeMCU V1.0 melalui web (Arduino IDE)

Pada contoh ini akan dibuat aplikasi dimana dapat mengaktifkan dan mematikan LED_BUILTIN pada board NodeMCU V1.0 dengan melakukan pull LOW (on), dan pull HIGH(off) yang dikendalikan melakui web.

Gambar 1. Lokasi Led BuiltIn pada board NodeMCU V1.0


Perangkat yang diperlukan:
1. Board ESP8266 NodeMCU V1.0
2. Micro USB Cable
3. Smartphone yang telah diaktifkan fungsi Hotspot
4. CP2102 (USB to Serial Converter) driver yang telah diinstall
6. Arduino IDE yang telah diinstalasi board manager ESP8266

Langkah-langkah:
1. Install CP2102 (USB to Serial Converter) driver jika anda belum melakukannya
2. Install Arduino IDE jika anda belum melakukannya
3. Install board manager ESP8266
4. Aktifkan Hotspot pada smartphone anda, tentukan SSID dan Password
Gambar 2. Pengaktifan Hotspot pada smartphone

5. Lakukan parameter setting pada menu Tools


Gambar 3. Hasil Setting untuk membuat aplikasi

6. Lakukan koding sebagai berikut:

#include <ESP8266WiFi.h>

const char* ssid = "isikan SSID hotspot"; //sesuai dengan step 4 diatas
const char* password = "isikan password hotspot"; //sesuai dengan step 4 diatas

int ledPin = D0; //GPIO 16 red led on board inverted logic (LOW=ON, HIGH=OFF)
//int ledPin = D4; //GPIO 2 blue led on board inverted logic (LOW=ON, HIGH=OFF)

WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, HIGH);

  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);

  WiFi.begin(ssid, password);

//ulangi koneksi ke Hotspot sampai selesai
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");

  //start the server
  server.begin();
  Serial.println("Server started");

  // print the IP address, nantinya dimonitor dengan Serial Monitoring
  Serial.print("Use this URL to connect: ");
  Serial.print("http://");
  Serial.print(WiFi.localIP());
  Serial.println("/");

}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }

  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }

  // Read the first line of the request
  String request = client.readStringUntil('\r');
  Serial.println(request);
  client.flush();

  // Match the request

  int value = LOW;
  if (request.indexOf("/LED=ON") != -1)  {
    digitalWrite(ledPin, LOW);
    value = LOW;
  }
  if (request.indexOf("/LED=OFF") != -1)  {
    digitalWrite(ledPin, HIGH);
    value = HIGH;
  }

//Set ledPin according to the request
//digitalWrite(ledPin, value);

  // Return the response
  client.println("HTTP/1.1 200 OK");
  client.println("Content-Type: text/html");
  client.println(""); //  do not forget this one
  client.println("<!DOCTYPE HTML>");
  client.println("<html>");

  client.print("Led pin is now: ");

  if(value == HIGH) {
    client.print("On");
  } else {
    client.print("Off");
  }
  client.println("<br><br>");
  client.println("<a href=\"/LED=ON\"\"><button>Turn On </button></a>");
  client.println("<a href=\"/LED=OFF\"\"><button>Turn Off </button></a><br />"); 
  client.println("</html>");

  delay(1);
  Serial.println("Client disonnected");
  Serial.println("");
}

7. Lakukan verifikasi
8. Lakukan upload

9. Aktifkan Serial monitoring pada Arduino IDE (Tools->Serial Monitor)

Gambar 4. Serial Monitoring Server

10. Catat Nomor IP Server yang diberikan oleh hotspot
11. Aktifkan browser pada smartphone anda, dan browse ke http://192.168.43.207


Gambar 5. Hasil Browse

12. Silakan coba klik Turn-on dan Turn-Off
Selamat mencoba.
Salam,
Hendra.



Tidak ada komentar:

Posting Komentar