Pada Pembahasan kali ini kita akan membahas mengenai komunikasi dua buah perangkat modul ESP8266, dimana salah satu perangkat akan kita buat sebagai client dan satunya lagi akan dibuat menjadi server. Jadi nantinya client tersebut akan terhubung dengan Hotspot yang sudah dibuat oleh server.
(Baca Juga : Membuat AP/Hotspot Mode ESP8266 dan WiFi Station Mode ESP8266)
Hasil dari percobaan ini nantinya client tersebut dapat berkomunikasi dan mengirimkan data kepada server berupa sebuah teks “Hello Word” yang dapat dilihat pada serial monitor.
Berikut merupakan script yang akan kita gunakan untuk perangkat esp8266 client :
#include <ESP8266WiFi.h>
const char* ssid = "warriornux.com"; // Nama SSID AP/Hotspot
const char* password = "1234567890"; // Password Wifi
IPAddress host(192,168,4,1); // IP Server
void setup() {
Serial.begin(115200);
delay(10);
// Connect to WiFi network ------------------------------------------------
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
// Mengatur WiFi ----------------------------------------------------------
WiFi.mode(WIFI_STA); // Mode Station
WiFi.begin(ssid, password); // Mencocokan SSID dan Password
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
// Print status Connect ---------------------------------------------------
Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
}
int value = 0;
void loop() {
delay(5000);
++value;
Serial.print("connecting to ");
Serial.println(host);
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
// We now create a URI for the request
String url = "Hello Word";
Serial.print("Requesting URL: ");
Serial.println(url);
// This will send the request to the server
client.print(String("GET ") + url + " HTTP/1.1\r\n" +
"Host: " + host + "\r\n" +
"Connection: close\r\n\r\n");
unsigned long timeout = millis();
while (client.available() == 0) {
if (millis() - timeout > 5000) {
Serial.println(">>> Client Timeout !");
client.stop();
return;
}
}
// Read all the lines of the reply from server and print them to Serial
while(client.available()){
String line = client.readStringUntil('\r');
Serial.print(line);
}
Serial.println();
Serial.println("closing connection");
}
Berikut merupakan script yang akan kita gunakan untuk perangkat esp8266 Server:
#include <ESP8266WiFi.h>
const char* ssid = "warriornux.com"; // Nama AP/Hotspot
const char* password = "1234567890"; // Password AP/Hotspot
WiFiServer server(80);
void setup() {
Serial.begin(115200);
delay(10);
// Mengatur WiFi ----------------------------------------------------------
Serial.println();
Serial.print("Configuring access point...");
WiFi.mode(WIFI_AP); // Mode AP/Hotspot
WiFi.softAP(ssid, password);
// Start the server -------------------------------------------------------
server.begin();
Serial.println("Server dijalankan");
// Print the IP address ---------------------------------------------------
Serial.println(WiFi.localIP());
}
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 req = client.readStringUntil('\r');
Serial.println(req);
client.flush();
Serial.println("Client disonnected");
// The client will actually be disconnected
// when the function returns and 'client' object is detroyed
}
Sebelum melakukan upload, pastikan terlebih dahulu library ESP8266 sudah terpasang pada Arduino IDE. Apabila belum, kamu dapat mengikuti intruksi dari artikel berikut : Menambahkan Library ESP8266 pada Arduino IDE
Sesuaikan pengaturan pada board diubah menjadi ESP8266 Generic seperti gambar dibawah ini. Setelah itu upload program ke ESP8266 dan tunggu hingga hingga selesai.


Setelah kedua perangkat kita masuki progam, maka kita dapat melihat hasilnya pada serial monitor. berikut merupakan hasil dari kedua perangkat tersebut.


Dari kedua hasil berikut dapat kita lihat ESP8266 Client terhubung dengan AP/Hotspot dari ESP8266 Server, setelah client tersebut terhubung maka data yang berupa “Hello Word” dikirimkan kepada ESP8266 Server secara terus menerus. Sedangkan pada ESP8266 Server akan menunggu data yang dikirim oleh client, apabila ada data yang dikirimkan maka Server akan membuat komunikasi baru dan menerima data tersebut sehingga data dapat ditampilkan pada serial monitor.
Baiklah semoga tutorial ini bermanfaat dan jangan lupa untuk bagian pada kawan kawanmu 😀