برد ESP8266 برد Nodemcu برد ویموس Wemos

تغییر اطلاعات اتصال ماژول ESP8266 بدون اتصال کابل توسط Wifi Manager

wifimanager-for-esp8266-change-password-digispark
نوشته شده توسط آرش کدخدایی

بردهای برپایه ESP8266 و یا کلا بردهای وای فای Wifi برای اتصال به شبکه از جمله اکسس پوینت و یا مودم، نیاز به معرفی نام کاربری و رمز عبور دارند. عموما در کدهای برنامه به هنگام کدنویسی و آپلود کدها، موارد به برد ارسال می‌شوند. حال اگر پس از اجرای پروژه و استفاده از ماژول Esp8266 اگر نیاز باشد نام کاربری و رمز عبور جدید به پروژه بدهیم، حتما باید با کابل اتصال را برقرار کنیم. سپس کدهای اصلی روی آن برد را هم داشته باشیم. ولی اگر امکان اجرا به این صورت وجود نداشته باشد؛ چه باید بکنیم؟ در این پست با استفاده از یک نرم افزار این امکان را خواهیم داشت تا پس از آپلود کدها بر روی ماژول Esp8266 بدون اتصال سیم، مشخصات مودم را تغییر بدهیم. در ادامه این آموزش با مرجع تخصصی ESP8266 به زبان فارسی، دیجی اسپارک همراه باشید.

 

شاید برای شما هم پیش آمده باشد که بعد از برنامه نویسی کامل برد ESP8266 رمز مودمتان را عوض کنید. یا در مکانی دیگر بخواهید از برد ESP8266 استفاده کنید. در این صورت همانطور که در بالا توضیح داده شد، باید دوباره برنامه جدید با مشخصات جدید مودم خود را وارد کنید. این کار همیشه به سادگی قابل انجام نمی‌باشد. در این آموزش کتابخانه Wifimanager را معرفی خواهم کرد. با استفاده از این کتابخانه می‌توانید مشکل مطرح شده را رفع کنید.

 


کتابخانه WifiManager برد ESP8266


همانطور که در پست‌های قبلی هم توضیح داده شده است. کتابخانه در نرم افزار آردوینو به دو روش قابل نصب می‌باشد. روش اول دانلود از طریق نرم افزار آردوینو روش دوم هم آپلود در نرم افزار آردوینو است. هر دو روش در ادامه توضیح داده‌ام. روش اول با استفاده از Library Manager، در این روش کافیست از طریق منو داخل نرم افزار Arduino به ترتیب Sketch سپس Include Library ودر آخر به Manage Libraries مراجعه و wifimanager برد ESP8266 را سرج کرده و نصب نمایید.

آموزش نصب Wifimanager مخصوص ماژول esp8266 - دیجی اسپارک  

روش دوم هم با استفاده از فایل کتابخانه، از طریق لینک کتابخانه WifiManager برد ESP8266 زیر دانلود کنید. سپس محتویات داخل آن را در محل نصب آردوینو پوشه library کپی کنید.

آموزش نصب Wifimanager مخصوص ماژول esp8266 - دیجی اسپارک    


تنطیمات WifiManager برد ESP8266


کتابخانه های مورد نیاز برای راه اندازی اولیه این کتابخانه عبارتند از:

#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>

برای تنظیم کتابخانه در قسمت setup برنامه این کد را وارد میکنیم.

WiFiManager wifiManager;
wifiManager.autoConnect("AP-NAME", "AP-PASSWORD");

استفاده از WifiManager در برد ESP8266 - دیجی اسپارک  

توجه: بجای AP-NAME و AP-PASSWORD مشخصات access point جدید جهت اتصال برد Esp8266 را وارد کنید. همه چیز آماده است کافیست همین قسمت‌ها را به برنامه خود اضافه کنید تا در راه اندازی اولیه مشخصات وای فای Wifi مورد نظر را با استفاده از وصل شدن به ماژول (آدرس: ۱۹۲٫۱۶۸٫۴٫۱) وارد کنید. در استفاده‌های بعدی بصورت اتوماتیک به همان وای فای متصل می‌شود. درضمن از مثال‌های کتابخانه هم می‌توانید کمک بگیرید.

استفاده از WifiManager در برد ESP8266 - دیجی اسپارک

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 


پروژه و دریافت بن ارسال رایگان 


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

درباره نویسنده

آرش کدخدایی

یک تازه کار علاقه مند به تکنولوژی :)

تبادل نظر و رفع عیب با ثبت دیدگاه

۴۰ دیدگاه

  • سلام
    در این روش لازم هست که موبایل از وای فای قطع شود تا بتواند به ماژول ESP متصل شود؟

      • ممنونم از شما
        منظورم این بود که حتما باید از وای فای که گوشی به آن متصل است، Disconnect شده وتا بتوانیم به این ماژول فرمان بدهیم؟ یا اینکه میشه همزمان به مودم داخل منزل متصل باشیم و تنظیمات این ماژول را انجام بدیم؟

        • بله شما حتما باید به وای فای خود esp متصل بشید و تنظیمات وای فای که قراره متصل بشه را انجام بدید تا خود esp بتونه به وای فای مورد نظرتون وصل بشه و بعد از اون میتونین هر برنامه ای براش نوشتید را اجرایی کنید…

  • سلام تشکر میکنم بابت آموزش خوبتون من اینو میخوام به این برنامم اضافه کنم وقتی کامپایلش میکنم خطا میده
    #include

    #include
    #include

    ESP8266WebServer server(80);
    WiFiManager wifiManager;
    wifiManager.autoConnect(“isk”, “1539”);
    const int relayPin1 = D1;
    const int relayPin2 = D2;

    const char* ssid = “Aztech5005_AB1F”; //نام وای فای خود را جایگزین کنید//
    const char* password = “1539iskzz”; //رمز وای فای خود را جایگزین کنید//
    IPAddress ip(192, 168, 1, 150); //آی پی مورد نظر خود را وارد کنید//
    IPAddress gateway(192, 168, 1, 1); //آی پی مودم خود را وارد کنید//
    IPAddress subnet(255, 255, 255, 0);

    int s1;

    int s2;
    void on1() {
    digitalWrite(relayPin1, HIGH);
    Serial.println(“Switch1 on!”);
    }

    void off1() {
    digitalWrite(relayPin1, LOW);
    Serial.println(“Switch1 off!”);
    }

    void on2() {
    digitalWrite(relayPin2, HIGH);
    Serial.println(“Switch2 on!”);
    }

    void off2() {
    digitalWrite(relayPin2, LOW);
    Serial.println(“Switch2 off!”);
    }

    void handle() {
    String message = “”;
    for (uint8_t i=0; i<server.args(); i++){
    if (server.argName(i) == "switch1"){
    s1 = server.arg(i).toInt();
    }
    if (server.argName(i) == "switch2"){
    s2 = server.arg(i).toInt();
    }
    message += server.argName(i) + ": " + server.arg(i) + "\n";
    }
    server.send(200, "text/plain", message);
    Serial.println(message);
    if(s1){
    on1();
    }else{
    off1();
    }
    if(s2){
    on2();
    }else{
    off2();
    }
    }

    void setup() {
    Serial.begin(115200);
    delay(10);

    pinMode(relayPin1, OUTPUT);
    digitalWrite(relayPin1, LOW);
    pinMode(relayPin2, OUTPUT);
    digitalWrite(relayPin2, LOW);

    WiFi.config(ip, gateway, subnet);
    WiFi.mode(WIFI_STA);
    WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
    }
    Serial.println("WiFi connected");

    server.on("/url", handle);
    server.begin();
    Serial.println("server started!");
    }

    void loop() {
    server.handleClient();
    }

  • سلام ممنون بابت آموزش خوبتون
    برای استفاده از این برنامه آیا لازمه که گوشی به اینترنت متصل باشه؟.یعنی ما با وایفای گوشی به ماژول متصل بشیم و ای پی وایفای بزنیم این صفحه به ما نمایش داده میشه؟

  • سلام من یک برد کنترلی NodeMcu به همراه ماژول wifi با مبدل CH340G دارم وای وقتی به وایفایی م ایجاد میکنه وصل میشم و میخوام تنضیماتشو انجام بدم ۱۹۲٫۱۶۸٫۴٫۱ نمیاره میشه راهنماییم کنید لطفا

  • با سلام اگر در این صفحه موارد دیگری برنامه نویسی شده باشد چطور می توان این تغییرات نام کاربری و رمز را دید بطور مثال یک صفحه برای روشن و خاموش کردن یک رله داریم که در صفحه اصلی ای پی نوشته شده است چطور می توانیم موارد مربوط به این تغییرات را ببینیم از طرفی همیشه ای پی ثابت نیست و می تواند بسته به شبکه متغیر باشد لطفا راهنمایی بفرمایید.

      • بله من بد توضیح دادم. ببینید ما چیزی رو که از میکرو در بروزر میبینیم چیزی هست که از ای پی که به میکرو اختصاص داده شده ارسال میشه حالا ا اگر بخواهیم این اطلاعات تنظیم ssidو passwordرو ببینیم چطور این رو در اون صفحه بگنجونیم یا اینکه چطور میشه یک صفحه دیگه طراحی کرد یعنی مثل لینک و شاید با کد سویچ در پی اچ پی بشه اطلاعات رو فراخونی کرد. خیلی جالب هست اگر بشهاطلاعات بیشتری رو روی میکرو مثل وبسایت کنترل کرد. اگر امکان ارتباط بهتری هست ممنون میشم در اختیار بنده قراردهید تا مشکل رو بیشتر توضیح بدم

        • با سلام مجدد
          شما میتونید از توابعی مثل WiFi.SSID() تنظیمات وای فای را دریافت کنید و در صفحه نمایش بدید. با استفاده از http request هم میتونید برای صفحات خارجی درخواست بفرستید ( با کتابخونه ESP8266HTTPClient میتونید اینکارو انجام بدید)

  • ببخشید چگونه می توان داده سرور (کد html حافظه esp) رو کپی ازش گرفت و مثلا توی پورت سریال مانیتور ارسال کرد
    ممنون میشم اگه تابعی میدونین بگین
    (کد html سرور esp رو بدون اینکه بخوایم دوباره بنویسیم در پورت سریال گذاشت)

  • سلام
    بار اول اکسس پوینت فعال است اما وقتی esp به مودم متصل میشود و مودم را خاموش میکنیم تا از دسترس خارج شود دیگر اکسس پوینت فعال نمیشود تا ان را به مودم دیگری وصل کنیم . برای این مورد چکار کنیم؟

  • سلام ممنون از مطلب خوبتون
    من یه سوال داشتم اونم اینکه اگر به هر دلیلی بعد از اینکه پسورد و یوزرنیم مودم رو به ماژول دادیم، خواستیم اون رو عوض کنیم، باید با چه روشی این کار رو انجام بدیم؟ چون طبق چیزی که من تست کردم بعد از اینکه یکبار بهش دادیم، دیگه به صورت خودکار دفعات بعدی هم وصل میشه.

  • سلام
    بعد از اینکهesp به یه مودم وصل شد و بعدesp رو خاموش کردیم،بعد از روشن شدن مجدد بایدssidو پسورد رو مجددا به ماژول بدیم یا ذخیره شده هست؟