بردهای برپایه ESP8266 و یا کلا بردهای وای فای Wifi برای اتصال به شبکه از جمله اکسس پوینت و یا مودم، نیاز به معرفی نام کاربری و رمز عبور دارند. عموما در کدهای برنامه به هنگام کدنویسی و آپلود کدها، موارد به برد ارسال میشوند. حال اگر پس از اجرای پروژه و استفاده از ماژول Esp8266 اگر نیاز باشد نام کاربری و رمز عبور جدید به پروژه بدهیم، حتما باید با کابل اتصال را برقرار کنیم. سپس کدهای اصلی روی آن برد را هم داشته باشیم. ولی اگر امکان اجرا به این صورت وجود نداشته باشد؛ چه باید بکنیم؟ در این پست با استفاده از یک نرم افزار این امکان را خواهیم داشت تا پس از آپلود کدها بر روی ماژول Esp8266 بدون اتصال سیم، مشخصات مودم را تغییر بدهیم. در ادامه این آموزش با مرجع تخصصی ESP8266 به زبان فارسی، دیجی اسپارک همراه باشید.
شاید برای شما هم پیش آمده باشد که بعد از برنامه نویسی کامل برد ESP8266 رمز مودمتان را عوض کنید. یا در مکانی دیگر بخواهید از برد ESP8266 استفاده کنید. در این صورت همانطور که در بالا توضیح داده شد، باید دوباره برنامه جدید با مشخصات جدید مودم خود را وارد کنید. این کار همیشه به سادگی قابل انجام نمیباشد. در این آموزش کتابخانه Wifimanager را معرفی خواهم کرد. با استفاده از این کتابخانه میتوانید مشکل مطرح شده را رفع کنید.
کتابخانه WifiManager برد ESP8266
همانطور که در پستهای قبلی هم توضیح داده شده است. کتابخانه در نرم افزار آردوینو به دو روش قابل نصب میباشد. روش اول دانلود از طریق نرم افزار آردوینو روش دوم هم آپلود در نرم افزار آردوینو است. هر دو روش در ادامه توضیح دادهام. روش اول با استفاده از Library Manager، در این روش کافیست از طریق منو داخل نرم افزار Arduino به ترتیب Sketch سپس Include Library ودر آخر به Manage Libraries مراجعه و wifimanager برد ESP8266 را سرج کرده و نصب نمایید.
روش دوم هم با استفاده از فایل کتابخانه، از طریق لینک کتابخانه WifiManager برد ESP8266 زیر دانلود کنید. سپس محتویات داخل آن را در محل نصب آردوینو پوشه library کپی کنید.
تنطیمات WifiManager برد ESP8266
کتابخانه های مورد نیاز برای راه اندازی اولیه این کتابخانه عبارتند از:
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h>
برای تنظیم کتابخانه در قسمت setup برنامه این کد را وارد میکنیم.
WiFiManager wifiManager; wifiManager.autoConnect("AP-NAME", "AP-PASSWORD");
توجه: بجای AP-NAME و AP-PASSWORD مشخصات access point جدید جهت اتصال برد Esp8266 را وارد کنید. همه چیز آماده است کافیست همین قسمتها را به برنامه خود اضافه کنید تا در راه اندازی اولیه مشخصات وای فای Wifi مورد نظر را با استفاده از وصل شدن به ماژول (آدرس: ۱۹۲٫۱۶۸٫۴٫۱) وارد کنید. در استفادههای بعدی بصورت اتوماتیک به همان وای فای متصل میشود. درضمن از مثالهای کتابخانه هم میتوانید کمک بگیرید.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
پروژه و دریافت بن ارسال رایگان
برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکههای اجتماعی از جمله آپارات و اینستگرام، با هشتگهای دیجی_اسپارک و دانشجوکیت و digispark و daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.
در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.
سلام
در این روش لازم هست که موبایل از وای فای قطع شود تا بتواند به ماژول ESP متصل شود؟
سلام
بله شما باید به وای فای ایجاد شده توسط 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();
}
شما قصد داشتید که هم از wifimanager استفاده کنید و هم اینکه خودتون دستی اطلاعات وای فای را وارد کردید که این اشتباهه
به این کد دقت کنید
https://create.arduino.cc/editor/arash/d0e6554a-c1e0-49a5-b034-dc7b98654f26/preview
من اگر بخوام IP هم توی اون تنظیمات اعمال بشه چی مثل که دارم وای فای رو میگم
از این نمونه کمک بگیرید:
https://github.com/tzapu/WiFiManager/blob/master/examples/AutoConnectWithStaticIP/AutoConnectWithStaticIP.ino
و اگر بخوام حالت کارکرد اونو توی تنظیمات بیارم چکاری باید انجام بدم یا به وای فایی وصل بشه یا خودش وای فای بشه که اسم و رمزش قابل تغیر باشه
منظورتون را متوجه نمیشم
Access pointe یا clinetبشه
با استفاده از این کتابخونه فقط میتونید تنظیم کنید که وای فای بصورت client به مودم وصل بشه
کتابخونه ای هست که مد access point بشه تنظیم کرد
بنده برخورد نکردم با چنین کتابخونه ای
پایه های ماژول wifi به کدوم یک از پایه های اردیونو وصل کنم تو برنامه چیزی معلوم نیس
در این پست ما از آردونیو استفاده نکردیم و از wemos استفاده کردیم که خودش امکان پروگرام دارد
سلام ممنون بابت آموزش خوبتون
برای استفاده از این برنامه آیا لازمه که گوشی به اینترنت متصل باشه؟.یعنی ما با وایفای گوشی به ماژول متصل بشیم و ای پی وایفای بزنیم این صفحه به ما نمایش داده میشه؟
سلام و تشکر
نیازی به اینترنت نیست و شما باید به وای فای ساخته شده توسط خود ماژول متصل شوید
سلام
ممنونم از سایتتون
سلام
با تشکر از نظر لطف شما
سلام من یک برد کنترلی NodeMcu به همراه ماژول wifi با مبدل CH340G دارم وای وقتی به وایفایی م ایجاد میکنه وصل میشم و میخوام تنضیماتشو انجام بدم ۱۹۲٫۱۶۸٫۴٫۱ نمیاره میشه راهنماییم کنید لطفا
سلام
توی سریال مانیتور چی نمایش داده میشه؟
با سلام اگر در این صفحه موارد دیگری برنامه نویسی شده باشد چطور می توان این تغییرات نام کاربری و رمز را دید بطور مثال یک صفحه برای روشن و خاموش کردن یک رله داریم که در صفحه اصلی ای پی نوشته شده است چطور می توانیم موارد مربوط به این تغییرات را ببینیم از طرفی همیشه ای پی ثابت نیست و می تواند بسته به شبکه متغیر باشد لطفا راهنمایی بفرمایید.
با سلام
منظورتون را متوجه نشدم. منظورتون از موارد دیگه چیه؟ چه تغییراتی؟
بله من بد توضیح دادم. ببینید ما چیزی رو که از میکرو در بروزر میبینیم چیزی هست که از ای پی که به میکرو اختصاص داده شده ارسال میشه حالا ا اگر بخواهیم این اطلاعات تنظیم ssidو passwordرو ببینیم چطور این رو در اون صفحه بگنجونیم یا اینکه چطور میشه یک صفحه دیگه طراحی کرد یعنی مثل لینک و شاید با کد سویچ در پی اچ پی بشه اطلاعات رو فراخونی کرد. خیلی جالب هست اگر بشهاطلاعات بیشتری رو روی میکرو مثل وبسایت کنترل کرد. اگر امکان ارتباط بهتری هست ممنون میشم در اختیار بنده قراردهید تا مشکل رو بیشتر توضیح بدم
با سلام مجدد
شما میتونید از توابعی مثل WiFi.SSID() تنظیمات وای فای را دریافت کنید و در صفحه نمایش بدید. با استفاده از http request هم میتونید برای صفحات خارجی درخواست بفرستید ( با کتابخونه ESP8266HTTPClient میتونید اینکارو انجام بدید)
ببخشید چگونه می توان داده سرور (کد html حافظه esp) رو کپی ازش گرفت و مثلا توی پورت سریال مانیتور ارسال کرد
ممنون میشم اگه تابعی میدونین بگین
(کد html سرور esp رو بدون اینکه بخوایم دوباره بنویسیم در پورت سریال گذاشت)
کدهای html در فایل WiFiManager.h هستند شما میتونید از متغییر های تعریف شده در اونجا استفاده کنید
ممنون فوق العاده بود
خیلی کابردی
خوشحالیم که این آموزش به شما کمک کرده است
سلام
بار اول اکسس پوینت فعال است اما وقتی esp به مودم متصل میشود و مودم را خاموش میکنیم تا از دسترس خارج شود دیگر اکسس پوینت فعال نمیشود تا ان را به مودم دیگری وصل کنیم . برای این مورد چکار کنیم؟
سلام
بله در این کتابخانه این مشکل وجود دارد و برای رفع آن باید کدی به آن اضافه کنید که در صورت متصل نبودن به وای فای esp ری استارت شود.
سلام ممنون از مطلب خوبتون
من یه سوال داشتم اونم اینکه اگر به هر دلیلی بعد از اینکه پسورد و یوزرنیم مودم رو به ماژول دادیم، خواستیم اون رو عوض کنیم، باید با چه روشی این کار رو انجام بدیم؟ چون طبق چیزی که من تست کردم بعد از اینکه یکبار بهش دادیم، دیگه به صورت خودکار دفعات بعدی هم وصل میشه.
با سلام و تشکر از شما
کلیه این موارد را بایستی از طریق اپلیکیشن معرفی شده تغییر دهید.
سلام
بعد از اینکهesp به یه مودم وصل شد و بعدesp رو خاموش کردیم،بعد از روشن شدن مجدد بایدssidو پسورد رو مجددا به ماژول بدیم یا ذخیره شده هست؟
با سلام
نیازی به چنین کاری نیست، اطلاعات ذخیره میشوند.
esp8266 حافظهeeprom داره؟
خیر
میتوانید از موارد زیر استفاده کنید.
انواع آی سی EEPROM
esp حافظهeeprom داره؟
خیر
میتوانید از موارد زیر استفاده کنید.
انواع آی سی EEPROM
با این روش دیگه نیازی به مودم نیست؟
منظورم اینکه الان میتونیم از هر جایی با برد ارتباط بگیریم مثلا با پلتفرم اماده ادافروت بدون نیاز به مودم خارجی ، esp32 رو کنترل کنیم
با سلام
این آموزش ارتباط با مودم ندارد. شما از مودم استفاده میکنید که برد به شبکه اینترنت متصل شود.