آموزش های کاربردیاینترنت اشیاء (IOT)بایگانی مطالبپروژه های ESP32

ساخت Access point در ESP32 و اتصال کلاینت به آن

در این مقاله روش ساخت Access point در ماژول ESP32 و اتصال چند کلاینت به آن را آموزش خواهیم داد. همراه ما باشید. برای مشاهده لیست فروشندگان ماژول ESP32 کلیک کنید.

نقطه دسترسی (Access Point)

نقطه دسترسی (Access Point) اجازه می‌دهد چند سامانه کامپیوتری را از طریق شبکه‌های بی‌سیم به یکدیگر متصل و یک شبکه‌ محلی بی‌سیم (WLAN) به وجود آوریم. یک نقطه دسترسی از طریق کابل اترنت به یک روتر، سوئیچ یا هاب متصل می شود و یک سیگنال Wi-Fi را به یک منطقه تعیین شده ارسال می کند.

آموزش ساخت لامپ هوشمند با سنسور PIR در ESP32

برای آنکه دستگاه‌های درون یک شبکه سیمی را به یکدیگر و به اینترنت متصل کنیم باید Access Point را به روتر وصل کنیم. کار اصلی روتر اختصاص دادن آدرس‌های آی‌پی به دستگاه‌های تحت شبکه و دریافت بسته‌های داده از دستگاه‌هایی مانند Access Point و اتصال دستگاه‌ها به اینترنت و امکان پیاده‌سازی یک شبکه بی‌سیم است. Access Point با ایجاد یک نقطه دسترسی، یک نام شبکه (SSID) منتشر می‌کند تا سایر دستگاه‌های وای‌فای بتوانند با استفاده از وای‌فای‌ به نقطه دسترسی ساخته شده متصل شوند. دستگاه‌هایی که به Access Point متصل می‌شوند در یک شبکه محلی با یکدیگر در ارتباط هستند.


انواع مد های کاری ماژول ESP32

ماژول وای فای ESP32  قابلیت برنامه ریزی و تنظیم در 3 حالت و مد کاری را دارد.

  • مد کاری Access Point
    در این حالت ماژول ESP32 به گونه ای تنظیم می‌شود که سایر دستگاه ها بتوانند به آن متصل شده و تبادل داده انجام دهند. مثلا از طریق گوشی به آن متصل شده و دستگاه های برقی را کنترل کنند.


  • مد کاری STATION
    در این حالت ماژول ESP32 به یک Access Point دیگر متصل و دیتا رد و بدل خواهد شد. مثلا متصل کردن ماژول ESP32 به مودم Wi-Fi اطراف خود.


  • مد کاری Both
    در این حالت ماژول ESP32 در هر دو حالت Access Point و Station تنظیم خواهد شد.

حالا که با مفهوم نقطه اتصال (Access Point) و مد های کاری ESP32 آشنا شدید به شروع پروژه می پردازیم.

در این آموزش یک ESP32 را در مد کاری Access Point و دیگر ماژول های ESP32 را در نقش کلاینت یا Station تنظیم می کنیم.کلاینت می تواند یک ماژول ESP32، گوشی موبایل و یا یک کامپیوتر باشد.

کنترل لوازم روشنایی با ESP32 از راه دور

در واقع با تبدیل شدن ESP32 به Access Point با تخصیص یک SSID (نام شبکه)، یک رمز عبور و یک آدرس آی پی دلخواه، ماژول های دیگر می توانند به آن متصل شوند و در شبکه محلی به تبادل اطلاعات بپردازند.

ساخت Access point در ESP32


ساخت Access Point در ماژول ESP32

در مرحله اول کد مربوط به ماژول Access Point را در Arduino IDE می نویسیم. سپس آن را در ESP32 که می خواهیم از آن به عنوان Access Point استفاده کنیم، آپلود می کنیم. کتابخانه های مورد نیاز برای این کد <WiFi.h> و <WiFiClient.h> می باشند.

#include <WiFi.h>
#include <WiFiClient.h>

const char* ssid = "esp32server";
const char* password = "123456789";

WiFiServer server(80);
IPAddress local_IP(192,168,1,105);
IPAddress subnet(255,255,255,0);

void setup(void){
Serial.begin(115200);
WiFi.mode(WIFI_AP);
Serial.print("Setting soft_AP configuration ...");
Serial.println(WiFi.softAPConfig(local_IP,local_IP,subnet) ? "Ready" : "Failed");
Serial.print("Setting soft_AP ...");
Serial.println(WiFi.softAP(ssid,password) ? "Ready" : "Failed");
server.begin();
Serial.print("IP: " );
Serial.println(WiFi.softAPIP());
}
void loop(void){
WiFiClient client = server.available();
if(!client) return ;
String request = client.readStringUntil('\r');
Serial.print("from client: " ); Serial.println(request);
client.print("Dear client. I am server."); client.println("\r");
client.flush();
client.stop();
delay(1000);
}

در این کد SSID و password دلخواه را جهت اتصال کلاینت ها وارد می کنیم. همچنین یک آدرس آی پی دلخواه به Access Point اختصاص می دهیم. همینطور که در کد مورد نظر مشاهده می شود سرور بر روی پورت 80 بالا می آید. اگر سرور برای کلاینت در دسترس باشد کلمه  Ready چاپ می شود و در غیر این صورت Failed چاپ می شود. در صورت اتصال موفق عبارت Dear client. I am server برای کلاینت ارسال و در سریال مانیتور آن چاپ می شود. عبارت بالا می تواند با هر اطلاعات دیگری یا مقادیر سنسورها جایگزین شود.


اتصال کلاینت ها به Access Point

در سمت دیگر کلاینت قرار دارد. کتابخانه ها، SSID، password و آی پی دقیقا مشابه کد Access Point می باشد. در صورت اتصال صحیح به سرور، connected to WiFi ،SSID و آی پی تخصیص داده و به کلاینت در سریال مانیتور آن چاپ می شود. در نهایت عبارت Hi server, I am client برای سرور ارسال و در سریال مانیتور آن چاپ می شود. اگر از گوشی یا کامپیوتر به عنوان کلاینت استفاده شود، بعد از اتصال به شبکه با وارد کردن آی پی سرور در مرورگر عبارت ارسالی نمایش داده می شود.

#include<WiFi.h>
#include <WiFiClient.h>

char ssid[] = "esp32server";
char pass[] = "123456789";

IPAddress server(192,168,1,105);

void setup() {

Serial.begin(115200);
WiFi.begin(ssid,pass);
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(500);
}
Serial.println("connected to WiFi");
Serial.print("IP: "); Serial.println(WiFi.localIP());
Serial.print("SSID: "); Serial.println(WiFi.SSID());
}

void loop() {

WiFiClient client;
if(client.connect(server,80)){
client.print("Hi server, I am client \r");
String answer = client.readStringUntil('\r');
Serial.print("from server: ");
Serial.println(answer);
client.flush();

}
}

این مقاله چطور بود ؟
+1
61
+1
79
+1
6
مشاهده بیشتر

پریسا اکبری

کارشناس برق- قدرت و کارشناس ارشد کنترل. علاقه مند به سیستم های هوشمند و اینترنت اشیا. به مدت بیش از 1 سال است که در تیم سخت افزار سازان نام آور مشغول به فعالیت هستم.

نوشته های مشابه

3 دیدگاه

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

دکمه بازگشت به بالا