بستن منو
×

فعال سازی وایفای داخلی ESP8266

دسته بندی : ماژول های وای فای

چکیده :

فعال سازی وایفای داخلی esp8266 به همراه آموزش ویدیویی کار با وایفای داخلی nodemcu و راه اندازی وبسرور روی آن و فعال سازی acsses point

توی جلسات قبل اومدیم و از چند تا پروژه با استفاده از ESP8266 انحام دادیم که در آن پروژه ها آمدیم و به وایفایی که دور و بر ماژولمون قرار داشت متصل شدیم اما امروز میخوایم وایفای داخلی ESP8266 را فعال کنیم و با استفاده از آن بیاییم و وبسرور های جلسه قبل را اجرا کنیم

جلسه قبل : وارد کردن اطلاعات وایفای در وبسرور esp8266

فعال سازی وایفای داخلی esp8266

برای این کار ابتدا کد جلسه قبل را بر میداریم و در void setup دستور WiFi.mode را تغییر میدهیم و مقدار آن را از WIFI_STA به WIFI_AP_STA تغییر میدهیم

WiFi.mode(WIFI_AP_STA);

با این کار شما وایفای داخلی خود را فعال کرده اید ولی این کافی نیست و باید SSID و PSK آن یا هما نام وایفای و پسورد آن را وارد کنیم برای این کار از دستور زیر استفاده میکنیم

WiFi.softAP("hamyarelectronic2","12345678");

با کد بالا شما اطلاعات وایفای خود را وارد کرده اید و سپس باید بیاییم و آیپی خود را در سریال مانیتور پرینت بگیریم

Serial.print("Wifi Ap IP = ");
Serial.println(WiFi.softAPIP());

تبریک ! شما موفق شدید وایفای داخلی خود را فعال کنید

اما یک مشکل مهم
شما در اینجا گفته اید اگر وایفای مد نظر پیدا نشد مابقی دستور اجرا نشود و به این معنی هست که اگر وایفای پیدا نشود دیگر شما به وایفای داخلی هم دسترسی ندارید برای حل این مشکل ادامه مطلب را مطالعه کنید

 

محدود کردن زمان اتصال به وایفای

ما در اینجا میخواهیم بیاییم و تغییراتی را در برنامه خود ایجاد کنیم که اگر ۳۰ ثانیه شد و وایفای پیدا نشد ماژول ما ادامه دستورات ما را اجرا کند

برای این کار باید بیاییم و در حلقه while خود تغییراتی اعمال کنیم

ابتدا قبل از حلقه خود یک متغییری به نام i تعریف میکنیم و مقدار آن را ۰ قرار میدهیم

int i=0;

بعد از آن باید درون حلقه while خود بگوییم که هر ۵۰۰ میلی ثانیه چک کند اگر متصل نشده بود یک عدد به i اضافه کند

و اگر i بزرگ تر از ۶۰ بود بیاید و از حلقه while خارج شود که کل حلقه while به شکل زیر است

void wifi_connecting(){
WiFi.begin(ssid, password);
Serial.println("");
int i=0;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
i=i+1;
if(i>60){
Serial.println("wifi not found");
break;
}
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}

جمع بندی

به همین راحتی توانستیم وایفای داخلی esp8266 خود را فعال کنیم ، این یکی از امکانات فوق العاده است که میتواند پروژه شما را بسیار نسبت به سایر پروژه ها متمایز کند

 

کد نهایی


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

#ifndef STASSID
#define STASSID "hamyarelectronic"
#define STAPSK "hamyarelectronic"
#endif

String ssid = STASSID;
String password = STAPSK;

ESP8266WebServer server(80);


void wifi_connecting(){
WiFi.begin(ssid, password);
Serial.println("");
int i=0;
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
i=i+1;
if(i>60){
Serial.println("wifi not found");
break;
}
}
Serial.println("");
Serial.print("Connected to ");
Serial.println(ssid);
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}

void handleRoot() {
String html = "<!doctype html><html><head><meta charset='utf-8'><meta name='viewport' content='width=device-width, initial-scale=1.0'><title>HamyarElectronic</title><style>input[type=submit] {width: 100%;padding: 9px;}lable {width: 15% !important;display: block;float: left;}input,select {width: 70%;margin: 5px 0;padding: 10px;border-radius: 5px;border: navajowhite;}body {background: cornflowerblue;}form {max-width: 500px;margin: auto;}</style></head><body><form method='post'><lable for='name'>SSID</lable><select name='SSID' id='SSID'>";
int numberOfNetworks = WiFi.scanNetworks();

for (int i = 0; i < numberOfNetworks; i++) {
html += "<option value=\"" + WiFi.SSID(i) + "\">" + WiFi.SSID(i) + "</option>";
}
html += "</select><br/><lable for='age'>PSK</lable><input type='password' name='PSK' id='PSK'><br/><input type='submit'></form></body></html>";
server.send(200, "text/html", html);
if(server.arg("SSID")!=""){
ssid=server.arg("SSID");
password=server.arg("PSK");
wifi_connecting();
}
}


void setup(void) {
Serial.begin(115200);
WiFi.mode(WIFI_AP_STA);
wifi_connecting();
WiFi.softAP("hamyarelectronic2","12345678");
Serial.print("Wifi Ap IP = ");
Serial.println(WiFi.softAPIP());
server.on("/", handleRoot);
server.begin();
Serial.println("HTTP server started");
}

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

مخفی کردن وای فای esp8266

مخفی کردن وای فای ESP8266

توضیحات تابع softAP و تغییر نام و پسورد وای فای داخلی و مخفی کردن وای فای esp8266 و محدود کردن دستگاه های متصل به وای فای

امنیت در وبسرور esp8266

احراز هویت در وبسرور esp8266

امنیت در صفحه های وبسرور esp8266 و ورود کاربر و احراز هویت کاربر در وبسرور nodemcu به همراه کتابخانه و توضیحات کامل امنیت در esp8266

ساخت دیمر دیجیتال

دیمر دیجیتال با ESP8266

دیمر دیجیتال با استفاده از esp8266 و یا nodemcu و کنترل ولتاژ 220 ولت با استفاده از ترایاک و ساخت دیمر هوشمند با گوشی به همراه مدار و آموزش

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

در حال اعتبار سنجی لطفا منتظر بمانید ...