برد Esp32

راه اندازی و کار با برد ESP32 قسمت نهم: اجرای متد POST

esp32-tutorial-step-ten-setup-post-methode-digispark
نوشته شده توسط معین صابری

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

 


متد POST تعریف و کاربرد


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

 

مطابق تصویر فوق می توانیم داده ها را به سرور ارسال کرده و همانند متد GET، از سرور پاسخ دریافت کنیم. این پاسخ می تواند یک پیام متنی، فرمان خاموش/روشن شدن رله و …. باشد. در متد POST بر خلاف متد GET، از آنجاییکه داده ها در سمت سرور کش نمی شوند، لذا همواره بروزترین داده ها از سررور دریافت می گردد. در این آموزش به شرح توابع و دستورات متد POST پرداخته و سپس ضمن یک مثال عملی، نحوه کار با آن را مشاهده می کنیم.

 


توابع آردوینو متد POST


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

 

پس از اضافه نمودن کتابخانه، می بایست ارسال و دریافت داده را با تعریف یک شی از کلاس کتابخانه HTTPClient به صورت زیر شروع کنیم.

 

 پس از این مرحله به کمک تابع begin، نام سرور و آدرس آن را تعیین می کنیم. این مورد مشابه متد GET اما با کمی تفاوت صورت می گیرد. فرض کنید آدرس پیجی از سرور که قرار به ارسال داده است، /data باشد. از طرفی دیگر آدرس سرور را example.com  فرض کنید. در این حالت، تابع begin به صورت زیر تعیین ورودی می گردد.

 

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

در نهایت به کمک تابع زیر می توانیم داده ها را به سرور ارسال نماییم.

 

در رابطه با ارسال داده ها تحت متد POST دقت داشته باشید که فرمت ارسال، به شکل زیر خواهد بود.

 

در ادامه به کمک تابع زیر می توانیم پاسخ های ارسالی از سوی سرور را دریافت کنیم.

 

توجه داشته باشید که تابع فوق خروجی از نوع رشته داشته و پاسخ دریافتی از سرور را درون رشته قرار می دهد. در ادامه به ارائه مثالی از این متد جهت تبادل داده در اینترنت می پردازیم.

 


نمونه برنامه


در این قسمت به ارائه یک نمونه برنامه می پردازیم. در این برنامه ماژول ESP به صورت STA تعریف شده تا به یک مودم خانگی متصل شود. پس از اتصال و دریافت آی پی، به سروری با آدرس example.com متصل شده و داده ها را ارسال می نماید.

 

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

 


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


ماژول ESP32

برد ESP32ACM

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

 


جمع بندی


در سلسله آموزش های ماژول ESP32 قسمت نهم به بررسی متد POST پرداختیم. متد POST یکی از مهم ترین متدهای پروتکل HTTP جهت تبادل داده در شبکه به شمار می رود. این متد ساختاری شبیه به GET داشته، اما هنگام ارسال داده می بایست هدر نیز جهت ارسال داده تعیین شود. در این آموزش همانند آموزش های پیشین به بررسی متد POST پرداختیم. سپس در ادامه توابع کلیدی و کاربردی مورد بررسی قرار گرفت. در نهایت با ارائه مثالی، نحوه ارسال  داده به یک سرور اینترنتی مورد بررسی قرار گرفت.

 

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

 

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

معین صابری

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

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

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