0% menganggap dokumen ini bermanfaat (0 suara)
233 tayangan10 halaman

Server-Client Esp8266 & Esp32

Dokumen ini memberikan ringkasan tentang praktikum komunikasi langsung antara dua modul WiFi menggunakan ESP8266 dan ESP32. Praktikum ini melibatkan konfigurasi server dan client, pengujian program potensiometer dan tombol interrupt untuk mengontrol LED. Hasilnya meliputi pengambilan alamat IP, pengujian program potensiometer dan tombol untuk menyala dan matikan LED secara remote antara server dan client.

Diunggah oleh

Fany Maulidin R
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
233 tayangan10 halaman

Server-Client Esp8266 & Esp32

Dokumen ini memberikan ringkasan tentang praktikum komunikasi langsung antara dua modul WiFi menggunakan ESP8266 dan ESP32. Praktikum ini melibatkan konfigurasi server dan client, pengujian program potensiometer dan tombol interrupt untuk mengontrol LED. Hasilnya meliputi pengambilan alamat IP, pengujian program potensiometer dan tombol untuk menyala dan matikan LED secara remote antara server dan client.

Diunggah oleh

Fany Maulidin R
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 10

UTS PRAKTIKUM

TELEMETRI

Kelompok 2
Fany Mauilidin Riyanto (0917040009)
Muhammad Hamzah Robbani (0917040030)

TEKNIK OTOMASI
TEKNIK KELISTRIKAN KAPAL
POLITEKNIK PERKAPALAN NEGERI SURABAYA
2020
Direct Communication Between Two WiFi Module

A. Komponen :
1. ESP8266-Lolin, 5. Project Board
2. ESP32 6. Kabel Jumper
3. LED builtin dari ESP32 dan 7. Potensio 10k
ESP8266-Lolin 8. Hc05
4. Push button 9. Resistor 1k Ohm

B. Konsep Server-Client pada ESP8266 dan ESP32


Komunikasi 2 buah perangkat modul WiFi, dimana salah satu perangkat
digunakan sebagai server dan yang lain digunakan sebagai client. Client akan terhubung
dengan Server melalui jaringan internet, dan IP Address digunakan sebagai alamat
identitas untuk menghubungkan Server dengan Client.

C. Hasil Praktikum :
1. Mendapatkan IP Address pada Server dan Client
2. Uji coba program potensio-LED. Apabila nilai resistansi potensiometer lebih dari
8000Ω, maka LED Menyala.

(Potensio > 8000,Led nyala)


3. Uji coba program potensio-LED. Apabila nilai resistansi potensiometer kurang
dari dari 8000Ω, maka LED Mati

(Potensio <= 8000, Led mati)


4. Uji coba program interrupt di serial. Jika dimasukkan Interupt 1 pada serial client
maka terjadi:
-LED pada client dan server menyala
-muncul notifikasi pada serial monitor client LED Nyala Interupt 1 dengan
durasi 8000ms / 8s
-muncul notifikasi pada serial monitor server Potensio: LED Nyala With
Interupt Client dengan durasi 8000ms / 8s

Kondisi Awal (LED nyala Interupt 1)


5. Uji coba program interrupt di serial. Jika dimasukkan Interupt 0 pada serial client
maka terjadi:
-LED pada client dan server menyala
-muncul notifikasi pada serial monitor client LED Mati Interupt 0 dengan durasi
8000ms / 8s
-muncul notifikasi pada serial monitor server Potensio: LED Mati With
Interupt Client dengan durasi 8000ms / 8s

Kondisi Awal (LED Mati Interupt 0 )


6. Sama seperti interupt, push button berfungsi untuk mematikan Led pada server dan client,
jika push button ditekan maka LED akan mati selama 8000ms atau 8 detik,kemudian led
akan menyala kembali sesuai dengan value pada potensio.

(Kondisi Awal) (setelah button ditekan)

D. Tabel Wiring
a. Koneksi pin antara ESP8266 dengan Komponen
ESP8266 – Server Komponen
2 LED built in ESP8266

b. Koneksi pin antara ESP32 dengan Komponen


ESP32 - Client Komponen
D2 LED built in ESP8266
3.3v Vcc Potensiometer
Gnd Potensiometer
Gnd
dan Resistor
A0 Signal Potensiometer
D1 Push button

E. Program
a. Program konfigurasi IP Server – Client (untuk ESP32 dan ESP8266)
#include <ESP8266WiFi.h> //Server
while (WiFi.status() !=
# include <WiFi.h> // Client
WL_CONNECTED) {
const char* ssid = "Kost 1 B";
Serial.print(".");
const char* password =
delay(1000);
"iwakcilikgaraikembung";
}
void setup()
Serial.println("");
{ Serial.begin(11520
Serial.println("WiFi connected");
0); while (!Serial) {;
Serial.println("IP address: ");
}
Serial.println(WiFi.localIP());
Serial.print("Attempting to connect
}
to SSID");
void loop() {
WiFi.begin(ssid, password);
b. Program Server (untuk //Server
ESP8266) #include <ESP8266WiFi.h>
#define led 2 //LED_BUILTIN ESP8266
#define pb 5 //pin Push Button delay(8000);
} else if (interupt == 1 or pbVal == HIGH)
int pbVal = 0; {
const char* ssid = "Kost 1 B"; client.println("GET /on HTTP/1.1");
const char* password = client.println("Host: " + String(host));
"iwakcilikgaraikembung"; client.println("Connection: Close");
const char* host = "192.168.100.42"; //IP client.println();
Client(ESP32) digitalWrite(led, LOW);
WiFiServer server(80); Serial.println("lED Nyala With Interupt
1");
String dataReceive; delay(8000);
float potentio; }
} else if (client) {
void setup() { Serial.println("SERVER :");
Serial.begin(115200); Serial.print("Potentio: ");
pinMode(led, OUTPUT);
digitalWrite(led, LOW); String parsing = client.readStringUntil('\r');

Serial.println(""); dataReceive = getValue(parsing, '/', 1);


Serial.println("ESP8266 - Server"); dataReceive = getValue(dataReceive, ' ', 0);
WiFi.begin(ssid, password); potentio = dataReceive.toDouble();

while (WiFi.status() != if (dataReceive == "on") {


WL_CONNECTED) { digitalWrite(led, HIGH);
delay(500); Serial.println("LED Mati With Interupt
Serial.print("."); Client");
} } else if (dataReceive == "off") {
Serial.println(""); digitalWrite(led, LOW);
Serial.println("connected."); Serial.println("LED Nyala With Interupt
Client");
server.begin(); } else if (potentio > 8000.00) {
Serial.println("Server started."); digitalWrite(led, LOW); //LOW
Serial.print("IP Server ESP8266: "); karena Spec ESP8266 inverse Condition
Serial.println(WiFi.localIP()); Serial.print(potentio);
Serial.println(""); Serial.println("Led Nyala");
} else if (potentio <= 8000.00) {
} digitalWrite(led, HIGH); //HIGH
karena Spec ESP8266 inverse Condition
void loop() { Serial.print(potentio);
pbVal = digitalRead(pb); Serial.println("Led Mati");
WiFiClient client = server.available(); }
if (Serial.available()) { }
int interupt = Serial.parseInt(); client.stop();
if (interupt == 0 or pbVal == LOW) { }
client.println("GET /off HTTP/1.1");
client.println("Host: " + String(host)); String getValue(String data, char separator, int
client.println("Connection: Close"); index) {
client.println(); int found = 0;
digitalWrite(led, HIGH); int strIndex[] = {0, -1};
Serial.println("lED Mati With Interupt int maxIndex = data.length() - 1;
0"); for (int i = 0; i <= maxIndex && found <=
index; i++) { }
if (data.charAt(i) == separator || i == }
maxIndex) { return found > index ?
found++; data.substring(strIndex[0], strIndex[1]) : "";
strIndex[0] = strIndex[1] + 1; }
strIndex[1] = (i == maxIndex) ? i + 1 : i;
c. Program Client (untuk ESP32) Serial.println(ssid);
//Client Serial.print("Password: ");
#include <WiFi.h> Serial.println(password);
#include <WiFiClient.h> Serial.print("IP Address: ");
#define led 2 //LED_BUILTIN Serial.println(WiFi.localIP());
ESP32
#define pb 5 //pin Push Button Serial.println("-----------------------
-----");
int pbVal = 0;
if (client.connect(host, 80)) {
const char* ssid = "Kost 1 B"; Serial.print("connected to
const char* password = server ");
"iwakcilikgaraikembung"; Serial.println(host);
const char* host =
"192.168.100.29"; // IP Server Serial.println("-----------------------
WiFiClient client; -----");
Serial.println("");
float potValue; }
String getData; client.stop();
}
void setup() {
Serial.begin(115200); void loop() {
pinMode(led, OUTPUT); potValue = analogRead(pot);
delay(10); potValue = (potValue * 10000) /
1023.00;
// konfigurasi nyambungne pbVal = digitalRead(pb);
nang jaringan
Serial.println(""); if (client.connect(host, 80)) {
Serial.println("ESP32 - client.println("GET /" +
Client"); (String)potValue + " HTTP/1.1");
Serial.println("Connecting to client.println("Host: " +
Server ESP8266."); String(host));
while (WiFi.status() != client.println("Connection:
WL_CONNECTED) { close");
delay(300); client.println();
Serial.print("."); Serial.println("CLIENT: ");
WiFi.begin(ssid, password); }
} if (potValue > 8000) {
Serial.println(""); digitalWrite(led, HIGH);
Serial.print("Potentio: ");
// iki tandae nek wifi wes Serial.print(potValue);
nyambung Serial.println("LED Nyala");
Serial.println("WiFi if (Serial.available()) {
connected."); client.stop();
Serial.print("SSID: "); int state = Serial.parseInt();
if (state == 0 or pbVal == ', 0);
LOW) { Serial.println(getData);
if (client.connect(host, 80))
{ if (getData == "off") {
client.println("GET /on Serial.println("Server: ");
HTTP/1.1"); digitalWrite(led, LOW);
client.println("Host: " + Serial.println("Server Send
String(host)); LED Mati ");
client.println("Connection:close" delay(8000);
); } else if (getData == "on") {
client.println(); Serial.println("Server: ");
digitalWrite(led, LOW); digitalWrite(led, HIGH);
Serial.println("LED Mati Serial.println("Server Send
Interupt 0"); LED Nyala");
delay(8000); delay(8000);
} }
} }
} delay(100);
} else { }
digitalWrite(led, LOW); String getValue(String data, char
Serial.print("Potentio: "); separator, int index) {
Serial.print(potValue); int found = 0;
Serial.println("LED Mati"); int strIndex[] = {0, -1};
int maxIndex = data.length() - 1;
if (Serial.available()) { for (int i = 0; i <= maxIndex &&
client.stop(); found <= index; i++) {
int state = Serial.parseInt(); if (data.charAt(i) == separator
if (state == 1 or pbVal == || i == maxIndex) {
HIGH) { found++;
if (client.connect(host, 80)) strIndex[0] = strIndex[1] + 1;
{ strIndex[1] = (i == maxIndex)
client.println("GET /off ? i + 1 : i;
HTTP/1.1"); }
client.println("Host: " + }
String(host)); return found > index ?
client.println("Connection: data.substring(strIndex[0],
close"); strIndex[1]) : "";
client.println(); }
Serial.println("Client: ");
digitalWrite(led, HIGH);
Serial.println("LED Nyala
Interupt 1");
delay(8000);
} } }
client.stop();
if (client.available()) {
String req =
client.readStringUntil('\r');

getData = getValue(req, '/', 1);


getData = getValue(getData, '

Anda mungkin juga menyukai