Jika Kamu pernah mencoba menjalankan server web pada ESP32, kamu mungkin mengalami sesuatu yang mengganggu setiap kali kamu merestart ESP32, alamat IP nya bisa berubah tergantung pada apa yang diputuskan oleh router. Ini berarti kamu harus selalu memeriksa serial monitor untuk mengetahui alamat IP yang baru. Cukup merepotkan, bukan?
Di sinilah peran alamat IP statis. Dengan mengatur alamat IP statis, kamu bisa mengakses server web menggunakan alamat IP yang sama, bahkan setelah ESP32 direstart. Ini juga membantu menghindari kebingungan jika kamu memiliki beberapa ESP32 yang terhubung ke jaringan kamu.
Untungnya, setelah kamu mengetahui caranya, menetapkan alamat IP statis pada ESP32 adalah proses yang cukup sederhana dan cepat. Kami akan memandu kamu langkah demi langkah untuk melakukannya. Mari kita mulai!.
Langkah 1 – Siapkan Arduino IDE
Kami akan menggunakan Arduino IDE untuk memprogram ESP32, jadi pastikan kamu telah menginstal Boards ESP32 sebelum melanjutkan.
Langkah 2 – Hubungkan ESP32 ke Komputer Kamu
Gunakan kabel micro-USB untuk menyambungkan papan ESP32 ke komputer kamu.
Langkah 3 – Dapatkan Pengaturan Jaringan Saat Ini
Sebelum menyetel IP statis, ada baiknya memeriksa pengaturan jaringan saat ini, seperti alamat IP, Gateway, Subnet, dan DNS yang ditetapkan oleh router kamu. Informasi ini penting untuk menghindari konflik IP di jaringan kamu.
Untuk mengetahui alamat IP ESP32 Kamu saat ini beserta pengaturan jaringan lainnya, kamu bisa mengunggah sketch berikut ke ESP32. sketch ini akan membantu menampilkan informasi yang diperlukan sebelum menetapkan alamat IP statis.
Sebelum melanjutkan, ada satu hal penting yang perlu kamu lakukan. Perbarui dua variabel berikut dengan SSID dan kata sandi WiFi Kamu yang sebenarnya.
Ini akan memungkinkan ESP32 untuk terhubung ke jaringan WiFi kamu sehingga dapat menampilkan informasi jaringan yang diperlukan.
const char* ssid = "Nama Wifi";
const char* password = "Password Wifi";
Setelah melakukan perubahan ini, lanjutkan dan unggah kodenya.
#include <WiFi.h>
const char* ssid = "Nama Wifi";
const char* password = "Password Wifi";
void setup() {
Serial.begin(115200);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("");
Serial.println("Connected..!");
Serial.print("Current ESP32 IP: ");
Serial.println(WiFi.localIP());
Serial.print("Gateway (router) IP: ");
Serial.println(WiFi.gatewayIP());
Serial.print("Subnet Mask: " );
Serial.println(WiFi.subnetMask());
Serial.print("Primary DNS: ");
Serial.println(WiFi.dnsIP(0));
Serial.print("Secondary DNS: ");
Serial.println(WiFi.dnsIP(1));
}
void loop() {
}
Setelah kode diunggah, buka Serial Monitor dan atur baud rate ke 115200. Kemudian tekan tombol EN pada ESP32.
Proses ini mungkin memerlukan beberapa saat hingga ESP32 terhubung ke jaringan WiFi kamu. Setelah terhubung, pengaturan jaringan ESP32 saat ini, termasuk alamat IP, Gateway, Subnet, dan DNS, akan dicetak di Serial Monitor. Pastikan untuk mencatat informasi ini karena akan berguna saat menyetel alamat IP statis.
Setelah kode diupload, buka Serial Monitor dan atur baud rate ke 115200. Kemudian tekan tombol EN pada ESP32. Mungkin diperlukan beberapa saat untuk terhubung ke jaringan kamu, setelah itu akan mencetak pengaturan jaringan ESP32 saat ini ke monitor serial.
Langkah 4 – Tetapkan Alamat IP Statis
Setelah mendapatkan pengaturan jaringan saat ini, kamu kini dapat mengatur alamat IP statis.
Ubah sketch di bawah ini untuk menyertakan konfigurasi IP statis. Kamu perlu menentukan alamat IP statis, Gateway, Subnet Mask, dan pengaturan DNS (opsional).
IPAddress staticIP(192, 168, 1, 100);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(192, 168, 1, 1);
IPAddress secondaryDNS(0, 0, 0, 0);
Berdasarkan pengaturan jaringan saat ini, pilih alamat IP statis yang sesuai untuk ESP32 kamu. Alamat ini harus berada dalam subnet yang sama dengan jaringan Kamu saat ini, tetapi di luar jangkauan yang biasanya ditetapkan oleh router kamu (untuk menghindari konflik IP).
Setelah kamu memodifikasi skets, unggah ke ESP32.
#include <WiFi.h>
const char* ssid = "Nama Wifi";
const char* password = "Password Wifi";
IPAddress staticIP(192, 168, 1, 100);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(192, 168, 1, 1);
IPAddress secondaryDNS(0, 0, 0, 0);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
if(!WiFi.config(staticIP, gateway, subnet, primaryDNS, secondaryDNS)) {
Serial.println("Failed to configure Static IP");
} else {
Serial.println("Static IP configured!");
}
Serial.print("ESP32 IP Address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// Nothing to do here
}
Langkah 6 – Pengujian
Setelah mengunggah kode ke ESP32 kamu, gunakan Serial Monitor untuk mengonfirmasi bahwa ESP32 sekarang menggunakan alamat IP statis yang kamu tetapkan.
Penjelasan Kode Program
Sketch dimulai dengan menyertakan library WiFi.h. Library ini menyediakan fungsi yang diperlukan untuk menghubungkan ESP32 ke jaringan WiFi dan mengatur konfigurasi IP-nya.
#include <WiFi.h>
Selanjutnya, untuk SSID WiFi (ssid
) dan kata sandi (password
) didefinisikan. Kamu perlu mengganti nilai-nilai ini dengan nama dan kata sandi jaringan WiFi Anda yang sebenarnya agar ESP32 dapat terhubung ke jaringan kamu dengan benar.
const char* ssid = "Nama Wifi";
const char* password = "Password Wifi";
Setelah itu, objek IP Address dibuat untuk menyimpan alamat IP statis, gateway, subnet mask, serta server DNS primer dan sekunder (opsional).Objek-objek ini akan digunakan untuk mengonfigurasi pengaturan jaringan ESP32 agar dapat beroperasi dengan alamat IP statis yang telah kamu tentukan.
IPAddress staticIP(192, 168, 1, 100);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(192, 168, 1, 1);
IPAddress secondaryDNS(0, 0, 0, 0);
Di dalam fungsi setup(), komunikasi serial dimulai dengan komputer.
Serial.begin(115200);
ESP32 mencoba menyambung ke jaringan WiFi menggunakan WiFi.begin(ssid, password). Perulangan while memastikan ESP32 terus mencoba terhubung hingga berhasil.
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Setelah terhubung ke WiFi, ESP32 dikonfigurasi untuk menggunakan IP statis, gateway, subnet mask, dan server DNS yang telah ditentukan sebelumnya dengan menggunakan fungsi WiFi.config()
. Jika ada masalah dalam proses konfigurasi IP statis, ESP32 akan mencetak pesan “Failed to configure Static IP” ke Serial Monitor. Hal ini memudahkan kamu untuk mengetahui jika ada kesalahan saat pengaturan.
if(!WiFi.config(staticIP, gateway, subnet, primaryDNS, secondaryDNS)) {
Serial.println("Failed to configure Static IP");
} else {
Serial.println("Static IP configured!");
}
Setelah konfigurasi IP selesai, alamat IP ESP32 saat ini akan dicetak ke Serial Monitor menggunakan WiFi.localIP()
. Jika semuanya berjalan dengan baik, kamu akan melihat alamat IP statis yang telah kamu tetapkan sebelumnya muncul di Serial Monitor. Ini menunjukkan bahwa konfigurasi berhasil dilakukan.
Serial.print("ESP32 IP Address: ");
Serial.println(WiFi.localIP());
IP diatur dalam fungsi setup(), dan karena tidak ada lagi yang dapat dilakukan, fungsi loop() dibiarkan kosong.
void loop() {
}
Sumber dari : https://lastminuteengineers.com/esp32-static-ip-tutorial