برد Esp32

راه اندازی و کار با برد ESP32 بخش ششم: مد سرور Server

esp32-tutorial-step-six-server-mode-digispark
نوشته شده توسط معین صابری

در سلسله آموزش های ماژول ESP32، بخش ششم در رابطه با تعریف ماژول در مد سرور صحبت خواهیم نمود. مد سرور، مدی است که در آن ماژول ESP می تواند همنانند یک سرور اینترنتی، به درخواست های کاربران پاسخ داده و برنامه نوشته شده را اجرا نماید. در این حالت شما می توانید برنامه های مختلفی را روی ماژول در حالت سرور اجرا کنید. به عنوان مثال یک تلفن همراه با اتصال به ماژول، درخواست روشن شدن یک لامپ را به سرور ESP32 ارسال می کند. در این حالت ماژول ESP با دریافت درخواست، می تواند آن را اجرا نماید. مد سرور در هر دو حالت AP و STA قابل اجرا بوده و محدودیتی از این بابت وجود ندارد. در ادامه این آموزش با مرجع تخصصی ESP32 به زبان فارسی، دیجی اسپارک همراه باشید.

 


سرور تعریف و کاربرد


پیش از اینکه به ادامه بحث بپردازیم، مختصری در رابطه با تعریف سرور و کاربرد آن در شبکه می پردازیم. ارتباط در شبکه اینترنت، چه به صورت محلی LOCAL و چه به صورت توزیع شده(در بستر اینترنت) به صورت مد کلاینت/سرور اجرا می گردد. در این مد، کلاینت دستگاهی است که به سرور متصل شده و درخواست های خود را به سرور ارسال می کند. سرور با دریافت درخواست های کلاینت، آن ها را اجرا می کند.

Set up and work with ESP8266 module Server

 

مطابق تصویر فوق، کلاینت درخواست هایی را به سررو ارسال کرده و سرور با دریافت درخواست ها، ضمن تحلیل و پردازش ها، پاسخ مناسب را به کلاینت ارسال می نماید. برای روشن تر شدن موضوع، فرض کنید که یک رله به ماژول ESP متصل بوده و قصد دارید که این رله را با تلفن همراه خود، کنترل کنید. در اینجا ماژول ESP در مد سرور قرار گرفته و گوشی به عنوان کلاینت، در خواست روشن و یا خاموش بودن رله را به سرور ESP ارسال می کند. سرور ESP با دریافت درخواست، آن را تحلیل کرده و پس از اجرا، پاسخ مناسب را به کلاینت ارسال می کند. کلاینت با دریافت پاسخ نیز، می تواند از اجرای صحیح روال کنترل رله، مطمئن شود.  این درخواست ها می تواند در قالب رشته به ماژول ESP ارسال شود. به عنوان مثال با ارسال مقدار ۱ رله فعال و با دریافت مقدار ۰ از کلاینت، رله غیر فعال می شود. در نهایت می توان یک پیام مشخص، به عنوان مثال عبارت OK را به عنوان اجرای صحیح درخواست به کلاینت ارسال نمود.

مد سرور Server در برد ESP32 - دیجی اسپارک

 

در رابطه با بحث سرور، توجه داشته باشید که این مفهوم با قابلیت نقطه دسترسی کاملا متفاوت است. مد نقطه دسترسی، مدی است که در آن ماژول برای ایجاد شبکه، به دستگاه های متصل آی پی تخصیص می دهد. اما مد سرور، مدی است که ماژول درخواست های دستگاه های دارای آی پی را اجرا می کند. ماژول ESP32 در حالت سرور، هم می تواند در مد نقطه دسترسی(AP) و هم در مد ایستگاهی(STATION) فعال باشد. در قسمت های بعدی به این موضوع بیشتر می پردازیم.

 


توابع و دستورات مربوط به مد سرور


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

 

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

 تابع فوق دارای ۳ پارامتر مهم در ورودی است. به کمک این پارامترها می توانید تنظیمات مربوط به سرور را انجام دهید. این پارامترها به شرح زیر توضیح داده می شوند:

  • Path: به کمک این متغیر آدرسی از سرور که قرار است درخواست مدیریت شوند تعیین می شوند. در حقیقت به کمک این متغیر، کلاینت آدرس داده ها و درخواست ها را به این آدرس ارسال می کند. این متغیر از نوع رشته تعیین می گردد.
  • Method: به کمک این متغیر متد ارسال داده ها از سوی کلاینت و مدیریت آن توسط سرور تعیین می گردد. این متد می تواند از نوع GET و یا POST باشد. ورودی این تابع به صورت HTTP_GET به عنوان متد GETو به صورت HTTP_POST به صورت POST تعیین می گردد.
  • Run_Script: نام تابعی است که در آن درخواست کاربر دریافت، مدیریت و اجرا می شود. در این تابع کارهایی که هنگام دریافت درخواست (request) می بایست انجام شود، قرار می گیرد. این تابع زمانی اجرا می شود که درخواستی از سوی کاربر ارسال شود.

همچنین در ادامه، تابع زیر باید در loop به طور مداوم فراخوانی شود. این تابع سبب می شود تا با دریافت درخواست از کلاینت، تابع سرور(Run_Script) اجرا گردد.

 

 همانطور که پیشتر گفته شد، مد سرور می تواند هم در حالت AP و هم در حالت STA اجرا گردد. در قسمت بعدی به این دو موضوع پرداخته نحوه عملکرد را به صورت برنامه کامل مشاهده می کنیم.

 


تعریف ماژول در حالت مد سرور


در این قسمت به بررسی قرار گیری ماژول در حالت سرور و چگونگی دریافت و پرداش داده ها می پردازیم. برنامه زیر ماژول را در حالت نقطه دسترسی قرار می دهد. سپس سرور را بر روی آدرس “/” تنظیم می کند. در نهایت تابع sendr وظیفه اجرای درخواست های کاربر را بر عهده دارد. توجه داشته باشید که حین ارسال داده ها تحت متد POST و یا GET، داده ها می بایست در متغیر data قرار گیرند.  این مورد در تابع send به کمک یک شرط لحاظ شده است.

 

جهت دسترسی به این بخش، اشتراک اسپارکر پلاس تهیه کنید.

 

مطابق فرمت متد GET، برای تعیین داده های ارسالی از علامت ? استفاده می شود. پس از آن مقادیر درون متغیر ذخیره می گردند. به تصویر زیر دقت کنید.

Set up and work with ESP8266 module Server

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

 


لوازم متناسب با آموزش


ماژول ESP32

برد ESP32ACM

مبدل سریال به USB

 


جمع بندی


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

 

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

 

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

معین صابری

کارشناسی ارشد رشته معماری سیستم های کامپیوتری

مالي که ز تو کس نستاند، علم است
حرزي که تو را به حق رساند، علم است
جز علم طلب مکن تو اندر عالم
چيزي که تو را ز غم رهاند، علم است
(شیخ بهایی)

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