Membuat Access Point dengan NodeMCU

Kali ini saya akan mencoba share cara membuat acccess point, dengan web server untuk dapat dipergunakan pada NodeMCU, yang nantinya dapat dipergunakan untuk berbagai keperluan pengendalian I/O. Kita langsung saja lihat bagian per bagian dari kode ESP8266nya.

Berikut ini adalah Libray yang dipergunakan :

1:  #include <ESP8266WiFi.h>  
2:  #include <ESP8266WebServer.h>  

Kemudian dari library ESP8266WebServer.h class yang dipergunakan adalah :


1:  ESP8266WebServer server(80);  


Berkutnya adalah mendeklarasi seluruh variable yang akan dipergunakan, dimana variable ssid, dan password untuk access point dapat anda ubah sesuai dengan keinginan anda begitu pula halnya dengan indikator dapat diganti dengan pin yang sesuai dengan keinginan anda dalam hal ini saya mempergunakan pin 2 yang berarti adalah internal indikator yang terdapat pada ESP8266

1:  const char* ssid = "ESP8266";  
2:  const char* pass = "12345678";  
3:  const int indikator = 2;  

Berikutnya adalah bagian NOTFOUND webservice, ini adalah fungsi untuk menampilkan PAGE NOT FOUND saat ESP8266 diaccess namun halaman yang diakses tidak ditemukan.

1:  void handleNotFound(){  
2:   String message = "PAGE NOT FOUND\n\n";  
3:   message += "URI: ";  
4:   message += server.uri();  
5:   message += "\nMethod: ";  
6:   message += (server.method() == HTTP_GET)?"GET":"POST";  
7:   message += "\nArguments: ";  
8:   message += server.args();  
9:   message += "\n";  
10:   for (uint8_t i=0; i<server.args(); i++){  
11:    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";  
12:   }  
13:   server.send(404, "text/plain", message);  
14:   Serial.println("Page is Not Found");  
15:  }  

Berikutnya adalah fungsi setup, dimana fungsi ini adalah fungsi default saat NodeMcu dinyalakan :


1:  void setup() {  
2:    pinMode(indikator,OUTPUT);  
3:    digitalWrite(indikator,HIGH);  
4:    Serial.begin(115200);  
5:    Serial.println("");  
6:    Serial.println("");  
7:    Serial.println("Device 1");  
8:    Serial.println("================================================");  
9:    Serial.print("Product ID       : ");  
10:   Serial.println(ESP.getChipId());  
11:   Serial.print("Core Version      : ");  
12:   Serial.println(ESP.getCoreVersion());  
13:     
14:   /* ------------ Connection --------------------- */  
15:   WiFi.disconnect(true);  
16:   WiFi.mode(WIFI_AP);   
17:   WiFi.softAP(ssid, pass);  
18:   Serial.print("Local IP        : ");  
19:   Serial.println(WiFi.softAPIP());  
20:   Serial.print("Device MAC       : ");  
21:   Serial.println(WiFi.macAddress());  
22:   Serial.println("================================================");  
23:   digitalWrite(indikator,LOW);  
24:     
25:   /* ------------ Web Service --------------------- */  
26:   server.on("/", [](){  
27:    server.send(200, "text/plain","Web running");  
28:    Serial.println("Root Page");  
29:   });   
30:    
31:   /* ------------- Web NotFound ------------------- */  
32:   server.onNotFound(handleNotFound);  
33:   server.begin();  
34:  }  

Pada fungsi setup, baudrate yang dipergunakan untuk komunikasi serial adalah 115200 serta variabel indikator yang telah dideklarasikan sebelumnya dipergunakan sebagai OUTPUT dan diberi logika HIGH untuk membuat led internal ESP8266 padam.

1:   pinMode(indikator,OUTPUT);  
2:   digitalWrite(indikator,HIGH);  
3:   Serial.begin(115200);  

Pada bagian koneksi kita akan memastikan ESP dalam keadaan tidak terhubung, dan mengaturnya pada mode AP(Access Point).

1:   WiFi.disconnect(true);  
2:   WiFi.mode(WIFI_AP);   
3:   WiFi.softAP(ssid, pass);  

Pada bagian Web service dalam contoh kode ini saya hanya memepergunakan text/plain biasa anda dapat mengubahnya dengan menggantinya menggunakan text/html untuk halaman HTML berikut dengan style maupun javascriptnya.

1:   server.on("/", [](){  
2:    server.send(200, "text/plain","Web running");  
3:    Serial.println("Root Page");  
4:   });   

Kemudian masih pada fungsi setup, Webserver dijalankan dengan perintah

1:  server.begin();  

Untuk Fungsi loop dijalankan dengan perintah

1:   server.handleClient();  

Berikut adalah kode secara lengkapnya :

1:  #include <ESP8266WiFi.h>  
2:  #include <ESP8266WebServer.h>  
3:    
4:  ESP8266WebServer server(80);  
5:    
6:  const char* ssid = "ESP8266";  
7:  const char* pass = "12345678";  
8:  const int indikator = 2;  
9:    
10:  void handleNotFound(){  
11:   String message = "PAGE NOT FOUND\n\n";  
12:   message += "URI: ";  
13:   message += server.uri();  
14:   message += "\nMethod: ";  
15:   message += (server.method() == HTTP_GET)?"GET":"POST";  
16:   message += "\nArguments: ";  
17:   message += server.args();  
18:   message += "\n";  
19:   for (uint8_t i=0; i<server.args(); i++){  
20:    message += " " + server.argName(i) + ": " + server.arg(i) + "\n";  
21:   }  
22:   server.send(404, "text/plain", message);  
23:   Serial.println("Page is Not Found");  
24:  }  
25:    
26:  void setup() {  
27:   pinMode(indikator,OUTPUT);  
28:   digitalWrite(indikator,HIGH);  
29:   Serial.begin(115200);  
30:   Serial.println("");  
31:   Serial.println("");  
32:   Serial.println("Device 1");  
33:   Serial.println("================================================");  
34:   Serial.print("Product ID       : ");  
35:   Serial.println(ESP.getChipId());  
36:   Serial.print("Core Version      : ");  
37:   Serial.println(ESP.getCoreVersion());  
38:     
39:   /* ------------ Connection --------------------- */  
40:   WiFi.disconnect(true);  
41:   WiFi.mode(WIFI_AP);   
42:   WiFi.softAP(ssid, pass);  
43:   Serial.print("Local IP        : ");  
44:   Serial.println(WiFi.softAPIP());  
45:   Serial.print("Device MAC       : ");  
46:   Serial.println(WiFi.macAddress());  
47:   Serial.println("================================================");  
48:   digitalWrite(indikator,LOW);  
49:     
50:   /* ------------ Web Service --------------------- */  
51:   server.on("/", [](){  
52:    server.send(200, "text/plain","Web running");  
53:    Serial.println("Root Page");  
54:   });   
55:    
56:   /* ------------- Web NotFound ------------------- */  
57:   server.onNotFound(handleNotFound);  
58:   server.begin();  
59:  }  
60:    
61:  void loop() {  
62:   server.handleClient();  
63:  }  

 Berikut tampilan hasil coding pada serial monitor, dan browser.




Semoga bermanfaat.
Membuat Access Point dengan NodeMCU Membuat Access Point dengan NodeMCU Reviewed by cahyohertanto on July 11, 2019 Rating: 5

1 comment:

  1. Sangat bermanfaat gan sharenya, mampir ke
    http://sorayakit.blogspot.com ... :)

    ReplyDelete

close