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("");
}
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)
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