برد Esp32

راه اندازی و کار با برد ESP32 بخش هشتم: اجرای متد GET

esp32-tutorial-step-nine-setup-get-method-digispark
نوشته شده توسط معین صابری

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

 


پروتکل HTTP و متد GET


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

پروتکل HTTP و متد GET در برد ESP32 - دیجی اسپارک

 

جهت ارسال درخواست به سرور، همانطور که در قسمت های پیشین مشاهده کردید، متد درخواست می بایست تعیین گردد. یکی از این متدها، متد GET است. متد GET خود زیر شاخه پروتکل HTTP محسوب می شود. پروتکل HTTP یکی از پروتکل های معروف و کاربردی جهت تبادل داده در شبکه است. به کمک این پروتکل که در کنار پروتکل تبادل فایل FTP، ارسال و دریافت ایمیل SMTP، در شبکه فعال است، می توانیم داده های مختلف همچون دما، رطوبت و… که از حجم پایینی نیز برخوردار هستند را ارسال کنیم. حتی به کمک این پروتکل می توانیم فرامین کاربر را از سرور دریافت و اجرا کنیم. به عنوان مثال می توانیم از راه دور فرمان فعال و یا غیر فعال سازی رله را صادر کنید. در این روش کاربر درخواست تعیین وضعیت رله را بر روی سرور تعیین می کند. کلاینت با اتصال به سرور، ضمن ارسال درخواست، پیغام را از سرور دریافت می کند. این پیغام حاوی وضعیت رله است. جهت اطلاعات بیشتر در این زمینه، می توانید با کلیک بر روی این لینک،  پروژه کاربردی آن را مطالعه کنید. البته این پروژه با متد POST، دیگر روش تبادل داده در HTTP است که در آموزش بعدی به ظرح کامل آن می پردازیم.  در قسمت بعدی به توابع آردوینو جهت ارسال درخواست GET در حالت شبکه محلی(LOCAL) و اینترنت می پردازیم.

شناخت متد GET و متد Post - دیجی اسپارک

 

 در این میان، ساختار داده JSON یکی از ساختارهای تبادل داده در فضای اینترنت است. به کمک این ساختار داده ها در فرمی استاندارد بین دستگاه ها تبادل می گردند.  این ساختار، قاعده ساده ای دارد. داده ها با یک آکولاد (}) شروع و پایان می یابند. در این بین، مجددا مجموعه ای از داده ها با کروشه(]) شروع شده و تمام خواهند شد. در بین آکولادها نیز، داده ها با ویرگول از هم جدا می شوند. برای اطلاعات بیشتر در این زمینه، می توانید روی این لینک کلیک کنید.

 


فرمت ارسال داده تحت متد GET


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

example.com/data?variable1=15&variable2=18

 

 در مثال فوق عبارت example.com نام سرور است. در ادامه data نام پیج در سرور بوده که مسئول دریافت داده ها و ارسال پاسخ است. پس از آن با علامت ? روند ارسال متغیرها آغاز می شود. در این حالت variable1 متغیر شماره یک و پس از عبارت مساوی مقدار آن قرار گرته است. پس از این مرحله عملگر & این متغیر را از متغیر بعدی جدا کرده تا متغیر variable2 مقدار دهی و به سرور ارسال شود. در قسمت بعدی به معرفی توابع جهت تبادل داده پرداخته و پس از آن با ارائه مثال، موضوع را در پی می گیریم.

 


توابع ارسال و دریافت داده تحت متد GET


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

#include <HTTPClient.h>

 

در ادامه جهت اتصال به سرور و تبادل داده، نیاز داریم تا از کلاس کتابخانه یک نمونه شی ایجاد کنیم. به همین منظور به شیوه زیر عمل می کنیم.

 HTTPClient http

 

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

http.begin(example.com/data?variable1=15&variable2=18

 

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

 int t = http.GET()

 

در قطعه کد فوق به کمک تابع GET داده ها ارسال و نتیجه در متغیر t قرار می گیرد.. پس از این مرحله، به کمک تابع زیر می توانیم پاسخ سرور، به عنوان مثال پاسخ json را مشاهده کنیم.

http.getString()

 

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

 http.end()

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

 


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


پس از بررسی توابع کلیدی و کاربردی، نوبت به اجرای یک نمونه برنامه می رسد. در این برنامه داده به یک سرور اینترنتی (که لینک آن در برنامه مشخص شده) ارسال می شود. این سرور در پاسخ، داده تحت فرمت JSON ارسال می کند.

 

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

 

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

 

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

 


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


ماژول ESP32

برد ESP32ACM

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

 


جمع بندی


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

 

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

 

ادامه مطالب این آموزش

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

راه اندازی و کاری با ماژول ESP32 قسمت دهم: شناخت و راه اندازی MDNS

راه اندازی و کار با ماژول ESP32 قسمت یازدهم: ESP-Cam دوربین و کارت SD

راه اندازی و کار با برد ESP32 قسمت دوازدهم: راه اندازی بلوتوث Bluetooth

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

معین صابری

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

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

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