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 😀
Gan ada contoh ga kalau espnya sebagai server (AP mode) dan clienya itu smartphone? Tanpa internet, direct gitu
saya sudah flash sudah AT OK, nah upload terjadi error : espcomm_upload_mem failed gan
mas yang dikrim cuman bisa format string ya gk bisa integer atau float gitu?
Gan ini komunikasinya pakai protokol 802.11 ya?
Atau protokol yg lain?
Mantap, terimakasih sudah menambahkan solusinya mas
itu saya juga dapat pas pakai nodemcu lolin v3, cara mengatasinya dengan mengubah board type dari generic esp8266 ke nodemcu v1.0