Thumbnail NodeMcu - Access Point

Tutorial mengubah Mode NodeMCU menjadi Access Point

Pada artikel kali ini tentang Access Point merupakan insipirasi dari komentar pada web blog ini.

Sehingga saya coba buatkan artikelnya tentang bagaimana cara membuat NodeMCU difungsikan sebagai Acces Point.

Titik akses (Access Point) adalah sebuah perangkat nirkabel yang mempegunakan jaringan wifi.

Yang dimana terdapat transceiver / pemancar serta antena untuk transmisi sinyal dan receiver / penerima sinyal dari dan ke clients untuk pengaksesan.

Fungsi dari Access Point

  • DHCP server
  • Memiliki fiturWi-Fi Protected Access(WPA) serta Wired Equivalent Privacy (WEP)
  • Pengaturan pengaksesan berdasarkan alamat fisik atau MAC Address
  • Untuk fungsi Hub/Switch yang bertugas untuk mengkoneksikan antara jaringan lokal dengan jaringan wireless

Pada percobaan kali ini digunakan Acces Point yaitu NodeMCU yang akan diakses dengan menggunakan smartphone “Android”.


Tutorial pertama

Bahan yang diperlukan yaitu :

  1. NodeMCU V.1.0
  2. Micro USB
  3. Smartphone ” Android”
  4. Komputer + Software IDE Arduino

Note : Pada software IDE Arduino diharapkan sudah terinstall library untuk pengaksesan NodeMCU.

Sehingga dapat diprogramkan code program yang akan ditulis.

Contoh Kode Program pertama

#include <ESP8266WebServer.h> //memasukan library NodeMCU sebagai web server
#include <ESP8266WiFi.h> //memasukan library NodeMCU
#include <WiFiClient.h> //memasukan library NodeMCU sebagai client

const char *ssid = "nyebarilmu";
const char *password = "www.nyebarilmu.com";

//setting pada port 80
ESP8266WebServer server(80);

void handleRoot() {server.send(200, "text/html", "<h1>Hallo semuanya! salam nyebarilmu.com!</h1>");}

char* htmlBody_help = "<h1>Help</h1><br/>\n"
  "Visit >> http://192.168.4.1/ untuk mengakses web server.<br/>\n"
  "Visit >> http://192.168.4.1/help untuk mengakses help akses halaman ini.<br/>\n";

void handleHelp(){
  server.send(200, "text/html", htmlBody_help);
}

void setup() {
    delay(1000); //waktu tunda 1 detik
    Serial.begin(9600);
    Serial.println();

    WiFi.softAP(ssid, password);//bertindak sebagai access point dengan nama wifi dan pass diatas

    IPAddress apip = WiFi.softAPIP(); //alamat IP
    Serial.print("visit: \n");
    //menuliskan alamat IP yang bisa dikunjungi
    Serial.println(apip);server.on("/", handleRoot);
    server.on("/help", handleHelp); ////memanggil fungsi handleHelp()
    server.begin(); //proses pemulaian menjadi server
    Serial.println("HTTP server beginned");
}

void loop() {server.handleClient();}

Hasil dari tutorial diatas pertama


Tutorial Kedua : Access Point NodeMCU control Led

Bahan yang diperlukan yaitu :

  1. NodeMCU V.1.0
  2. Micro USB
  3. Smartphone ” Android”
  4. Komputer + Software IDE Arduino

note : untuk trial kedua mengendalikan led yang terdapat pada NodeMCU (led builtin)

NodeMcu - Access Point

Kode Program

#include <ESP8266WebServer.h> //memasukan library NodeMCU sebagai web server
#include <ESP8266WiFi.h> //memasukan library NodeMCU
#include <WiFiClient.h> //memasukan library NodeMCU sebagai client

ESP8266WebServer server(80); //menggunakan port 80

//Masukan nama wifi dan password yang akan dibuat
const char *ssid = "nyebarilmu";
const char *password = "www.nyebarilmu.com";
int statusLED = LOW;

//membuat fungsi untuk kondisi led built in
void handleLedOn() {
  statusLED = LOW; //Kondisi logika "LOW" membuat led nyala
  digitalWrite(LED_BUILTIN, statusLED);
  response();
}

void handleLedOff() {
  statusLED = HIGH; ////Kondisi logika "HIGH" membuat led nyala
  digitalWrite(LED_BUILTIN, statusLED);
  response();
}

void handleRoot() {
    response();
}

const String HtmlHtml = "<html><head>"
"<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" /></head>";
const String HtmlHtmlClose = "</html>";
const String HtmlTitle = "<h1>Trial kedua kendali LED</h1><br/>\n";
const String HtmlLedStateLow = "<big>LED is now <b>ON</b></big><br/>\n";
const String HtmlLedStateHigh = "<big>LED is now <b>OFF</b></big><br/>\n";
const String HtmlButtons =
"<a href=\"LEDOn\"><button style=\"display: block; width: 100%;\">ON</button></a><br/>"
"<a href=\"LEDOff\"><button style=\"display: block; width: 100%;\">OFF</button></a><br/>";

void response(){
  String htmlRes = HtmlHtml + HtmlTitle;
  if(statusLED == LOW){
    htmlRes += HtmlLedStateLow;
  }else{
    htmlRes += HtmlLedStateHigh;
  }

  htmlRes += HtmlButtons;
  htmlRes += HtmlHtmlClose;

  server.send(200, "text/html", htmlRes);
}

void setup() {
    delay(1000); //waktu tunda 1 detik
    Serial.begin(9600);
    Serial.println();

    WiFi.softAP(ssid, password);
    //bertindak sebagai access point dengan nama wifi dan pass diatas

    IPAddress apip = WiFi.softAPIP(); //alamat IP
    Serial.print("visit: \n");
    Serial.println(apip); //menuliskan alamat IP yang bisa dikunjungi

    server.on("/", handleRoot); //memanggil fungsi handleRoot()
    server.on("/LEDOn", handleLedOn);
    server.on("/LEDOff", handleLedOff);

    server.begin(); //proses pemulaian menjadi server
    Serial.println("HTTP server beginned");

    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, statusLED);
}

void loop() {
    server.handleClient();
}

Hasil dari tutorial diatas kedua

Tutorial NodeMcu kedua - Access Point

Terimakasih sudah berkunjung, dan semoga bermanfaat. Salam nyebarilmu.com!

>> CMIIW <<

9 Comments

  1. Sismanto

    Mantap lah terimakasih gan artikelnya bermanfaat,saya coba dan berhasil
    Bikinin yang bisa dikontrol pake aplikasi android gan

    • admin-kece

      terimakasih gan, sudah berkunjung
      next bisa dibuatkan artikel pengembangan ini,

  2. arif

    gan bisa kasih tutor untuk setting sebagai client,jadi nodemcu konek ke wifi

  3. Muhammad Hayckel

    mas, kok ada error yaa untuk percobaan yang kedua? tulisannya stateLED was not not declare in this scope ??

  4. gunawan

    gan kalo vcc nya melalui kaki vin kenapa tidak mau konek wifi, tapi kalo vcc melalui port usb terhuung ke laptop wifinya mau konek…??

Leave a Reply

Your email address will not be published. Required fields are marked *