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

راه اندازی و کار با ماژول ESP8266 بخش ششم مد سرور

نوشته شده توسط معین صابری

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


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


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

Set up and work with ESP8266 module Server

 

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

Set up and work with ESP8266 module Server

 

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

 


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


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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

 


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


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

 

محدودیت در دسترسی کامل به این مجموعه آموزش

 

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

 

۱۹۲٫۱۶۸٫۴٫۱/?data=salam

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

Set up and work with ESP8266 module Server

 

در سمت دیگر، زمانیکه ماژول داده های ارسالی را دریافت می کند، آن را در سریال مانیتور به شکل زیر نمایش می دهد.

 

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

 


لوازم مورد نیاز


  1. مبدل سریال به USB
  2. ماژول ESP8266-12E
  3. ماژول مبدل SMD به DIP

 


جمع بندی


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

 

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

 

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

معین صابری

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

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

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

۱۶ دیدگاه

  • سلام مهندس
    سرعت پردازش esp32 بالاتره یا سرعت پردازش رزبری پای پیکو ؟
    و اینکه کدومشون عملکرد بهتری داره ؟
    و اگه میشه اموزش هم با رزبری پای پیکو منتشر کنید

  • سلام وقتتون بخیر،
    من یه برنامه ای نوشتم طبق اموزشهاتون که ماژول اکسس پوینت هست و با گوشی بهش متصل میشیم، یه مشکلی که داره اینه که فقط رو پورت ۸۰ کلاینت رو شناسایی میکنه و روی بقیه پورتها با وجود اینکه کلاینت بهش متصل میشه، اما اون رو شناسایی نمیکنه، اگر امکانش هست راهنمایی کنید ممنونم

    • سلام
      ایا زمانیکه داده را از تلفن همراه ارسال می کنید، پورت را هم ست می کنید؟

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

        • با مرورگر مورد را تست نمایید. داده ای را با آدرس URL و شماره پورت ارسال کرده و نتیجه را در کامنت بعدی بفرمایید.

  • سلام مهندس جان وقت بخیر. آیا ماژول ESP01 قابلیت Sleep رو داره؟؟ اگر جواب مثبت هست، از چه طریقی میتونیم راه اندازیش کنیم و اینکه آیا در مورد این قابلیت، توی دیجی اسپارک مطلبی هم منتشر شده یا خیر؟
    با تشکر از زحمات شما

  • سلام
    اقا من اشتراک سه ماهه و ایمیلم رو هم تایید کردم ولی وقتی میخوام فایل های توی مقاله هارو دانلود کنم تو یه کادر قرمز نوشته “ایمیلی برای تائید حساب شما ارسال شده است .” و هیچ ایمیلی هم نمیاد

    • سلام
      لطفا کوکی ها را از مرورگر خود پاک کنید. سپس قسمت اسپم ایمیل ها را چک و بررسی کنید.

      • سلام وقت بخیر
        یه سوال داشتم
        ما خودمون میتونیم یه USB CAMERA یا یه کمرا آنالوگ مثل دوربین دنده عقب خودرو که خروجی AV داره رو توسط esp8226 به وای فای مجهز کنیم و ازش ارتباط p2p بگیریم با توجه به امکانات گسترده این ماژول ؟
        ی

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