Komunikasi antara esp8266 tanpa menggunakan router dan internet
Assalamulaikum warahmatullahi wabarakatuh
Kali ini saya akan
berbagi sedikit ilmu tentang esp8266 yaitu komunikasi antar esp
dengan direct wifi (ponit to point) tanpa harus terhubung internet
dan router. Tutorial kali ini kita akan membuat 1 ESP sebagai akses
point, ESP yang lainya kita hubungkan dengan ESP yang menjadi akses
point agar dapat terhubung dengan jaringan yang sama.
Pada Tutorial ini kita akan mencoba mengendalikan LED yang ada pada
ESP server atau kita sebut saja esp master dengan cara menekan tombol
button yang ada pada ESP slave.
Berikut
rangkaiannya:
Esp yang terhubung dengan led maste, yang terhubung dengan button slave..
- led terhubung dengan pin D1
- button terhubing dengan pin D7
ESP Master
Kita akan mengeset atau mengatur esp menjadi akses point dan dapat
menerima data dari Esp lain yang terhubung dengan nya. Untuk
pengiriman data kita akan menggunkan protokol TCP/IP >>
HTTP-POS dan pada program master/server ini akan menerima data untuk
mengontrol led dari esp slave/client.
berikut code
program nya:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#define pinLed D1
char * ssid_ap = "ESP8266_SSID";
char * password_ap = "kampungTongah";
// merubah ip agar ip server tidak sama dengan ip client
// agar dapat berkomunikasi
IPAddress ip(192, 168, 11, 4);
IPAddress gateway(192, 168, 11, 1);
IPAddress subnet(255, 255, 255, 0);
ESP8266WebServer server(80);
void setup() {
pinMode(pinLed, OUTPUT);
WiFi.mode(WIFI_AP);
WiFi.softAPConfig(ip, gateway, subnet);
WiFi.softAP(ssid_ap, password_ap);
Serial.begin(115200);
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
server.on("/tongah",handleUpdate);
server.begin();
}
void loop() {
server.handleClient();
}
void handleUpdate(){
int value = server.arg("value").toInt();
digitalWrite(pinLed, value);
server.send(200, "text/plain","sukses");
}
Esp Slave
Kita akan membuat atau mengatur esp slave/client terhubung dengan esp server/master degan cara
mengkoneksikan lewat wifi dimana ssid dan password harus sesuai yang
di setting pada esp server. Dan juga esp client akan mengimkan data
saat tombol button ditekan untuk mengontrol led pada esp master.
Berikut code programnya:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266HTTPClient.h>
#define button D7
char * ssid = "ESP8266_SSID";
char * password = "kampungtongah";
String url = "http://192.168.11.4/update?"; //alamat
getway
char data[150];
int counter = 2;
void setup() {
pinMode(button, INPUT_PULLUP);
WiFi.begin(ssid, password);
Serial.begin(115200);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.println("Waiting for connection");
}
Serial.println("Connected...");
delay(1000);
}
void loop() {
if(digitalRead(button) == 0){
delay(250);
counter++;
if(counter %2 == 0) kirim(0);
else kirim(1);
delay(100);
}
}
void kirim(int Data) {
HTTPClient http;
http.begin(url);
http.addHeader("Content-Type",
"application/x-www-form-urlencoded");
sprintf(data, "value=%i", Data);
int httpCode = http.POST(data);
Serial.println(httpCode);
if (httpCode == 200) {
Serial.println("terkirim");
}
String payload = http.getString(); //Get the request response
Serial.print("return master");
Serial.println(payload);
http.end();
}
yok langsung di coba…
kalau ada yang mau ditanyakan langsung di kolam komentar ya…….
Semoga bisa membantu
Comments
Post a Comment