آموزش تنظیم آی پی ثابت ESP32 (کد Static IP)

اگر تا به حال سعی کرده اید یک وب سرور را بر روی ESP32 اجرا کنید، احتمالا متوجه چیزی آزاردهنده شده اید – هر بار که ESP32 خود را مجددا راه اندازی می کنید، آدرس IP می تواند تغییر کند. این بدان معنی است که شما همیشه باید سریال مانیتور را بررسی کنید تا این آدرس IP جدید را پیدا کنید.
اینجاست که آدرس IP ثابت وارد عمل می شود. با تنظیم یک آدرس IP ثابت، حتی پس از ریست ESP32، می توانید با استفاده از همان آدرس IP به وب سرور دسترسی داشته باشید. هنگامی که با چندین ESP32 به مودم خود متصل هستید، این کار برای جلوگیری از سردرگم شدن بسیار مفید است!
فرآیند تنظیم آیپی ثابت برای برد ESP32 ساده است و در این مقاله آن را کامل یاد میگیرید.
مرحله اول: شروع تنظیم IP ثابت ESP32
ما از Arduino IDE برای برنامه نویسی ESP32 استفاده خواهیم کرد، بنابراین لطفاً قبل از ادامه، مطمئن شوید که نرم افزار آردوینو و درایور برد ESP32 را نصب کنید. چندین نرم افزار IDE برای برنامه نویسی ESP32 وجود دارد که مورد پیشنهادی همین آردوینو است.
بعد از نصب نرم افزار از اتصال صحیح برد از طریق کابل USB به کامپیوتر خود اطمینان حاصل کنید.برای اتصال برد ESP32 خود به رایانه از یک کابل میکرو USB استفاده کنید.
مرحله دوم: اطلاعات شبکه فعلی را دریافت کنید
قبل از تنظیم یک IP ثابت، تمرین خوبی است که تنظیمات شبکه فعلی (IP، Gateway، Subnet و DNS) را که توسط روتر شما اختصاص داده شده است بررسی کنید. این اطلاعات می تواند به جلوگیری از اختلال در اختصاص IP کمک کند. برای اطلاع از آدرس IP فعلی ESP32 و سایر تنظیمات شبکه، باید کد زیر را در ESP32 خود آپلود کنید.
قبل از آپلود کد مطمئن شوید که دو متغیر زیر را با نام وای فای خود و رمز آن ویرایش کرده اید.
const char* ssid = "YourNetworkName"; // Enter SSID here const char* password = "YourPassword"; // Enter Password here
پس از انجام این تغییرات، ادامه دهید و کد را آپلود کنید.
#include <WiFi.h> // Replace with your network credentials const char* ssid = "YourNetworkName"; // Enter SSID here const char* password = "YourPassword"; //Enter Password here void setup() { Serial.begin(115200); Serial.print("Connecting to "); Serial.println(ssid); // Connect to Wi-Fi 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() { }
پس از آپلود کد، Serial Monitor را باز کرده و نرخ باود را روی 115200 قرار دهید. سپس دکمه EN را در ESP32 فشار دهید. ممکن است چند لحظه طول بکشد تا به شبکه شما متصل شود، پس از آن تنظیمات شبکه فعلی ESP32 را در مانیتور سریال چاپ می کند. خروجی را مشابه تصویر زیر مشاهده خواهید کرد:
مرحله 3: تنظیم آدرس آی پی ثابت در برد ESP32
پس از به دست آوردن تنظیمات شبکه فعلی، اکنون می توانید یک آدرس IP ثابت تنظیم کنید.
در خط زیر شما باید آیپی ثابت مورد نظرتان را وارد کنید.
IPAddress staticIP(192, 168, 1, 100); // آی پی ثابت
کد بالا برای بسیاری از مودم ها عمل میکند و نیازی برای تغییر موارد زیر نیست اما اگر عمل نکرد میتوانید بررسی کنید کدام یک از موارد زیر را باید تغییر بدهید. در غیر اینصورت نیازی به تغییر نیست.
IPAddress gateway(192, 168, 1, 1); // IP Address of your network gateway (router) IPAddress subnet(255, 255, 255, 0); // Subnet mask IPAddress primaryDNS(192, 168, 1, 1); // Primary DNS (optional) IPAddress secondaryDNS(0, 0, 0, 0); // Secondary DNS (optional)
هنگامی که کد را تغییر دادید، آن را در ESP32 آپلود کنید.
#include <WiFi.h> // تنظیم اطلاعات مودم const char* ssid = "Your_SSID"; const char* password = "Your_PASSWORD"; // Static IP configuration IPAddress staticIP(192, 168, 1, 100); // آدرس آیپی ثابت (مهم) IPAddress gateway(192, 168, 1, 1); // IP Address of your network gateway (router) IPAddress subnet(255, 255, 255, 0); // Subnet mask IPAddress primaryDNS(192, 168, 1, 1); // Primary DNS (optional) IPAddress secondaryDNS(0, 0, 0, 0); // Secondary DNS (optional) void setup() { Serial.begin(115200); // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi..."); } // Configuring static IP 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 }
پس از آپلود کد در ESP32 خود، از مانیتور سریال استفاده کنید تا تأیید کنید که ESP32 اکنون از آدرس IP ثابتی که تنظیم کرده اید استفاده می کند.
حالا همه چیز به خوبی تنظیم شده است!