در سلسله آموزش های برد Maixduino، قسمت سیزدهم به تعریف پردازنده ESP32 در مد کلاینت جهت اتصال اینترنت می پردازیم. در قسمت پیشین به تعریف مد سرور و اجرای درخواست های کاربر پرداختیم. در این قسمت واحد ESP32 برد هوش مصنوعی Maixduino را به اینترنت متصل می کنیم. پس از اتصال به اینترنت، اقدام به ارسال داده به سرور اینترنتی می کنیم. در سمت سرور اینترنتی، با یک برنامه داده ها را دریافت و در یک فایل ذخیره خواهیم نمود. بنابراین در ادامه این آموزش با مرجع تخصصی برد هوش مصنوعی Sipeed به زبان فارسی، دیجی اسپارک همراه باشید.
مد کلاینت تعریف و اتصال
در قسمت قبل مشاهده کردیم که پردازنده ESP32 با قرارگیری در مد سرور، درخواست های کاربران را اجرا کرده و پاسخ ها را به آن ها ارسال می نمود. در این قسمت نیز مشابه همین اتفاق رخ می دهد. اما با این تفاوت که پردازنده ESP32 همانند یک تلفن همراه یا رایانه، به سرور درخواست ارسال کرده و پاسخ دریافت می کند. در این آموزش با اتصال برد Maixduino به اینترنت از طریق ESP32، می توانیم مفهوم AIOT را به طور کامل مشاهده کنیم.
به کمک قابلیت اتصال ESP32 به اینترنت، برد Maixduino به اینترنت متصل می گردد. با اتصال این برد به اینترنت و توانمدی پردازنده K210 در پردازش صوت و تصویر، می توان پروژه های بی نظیر زیادی را اجرا کرد. در زیر می توان به تعدادی از این پروژه ها اشاره نمود.
- فعال و غیر فعال سازی سیستم ها از راه دور و به کمک فرمان صوتی
- طراحی و پیاده سازی سیستم های ثبت پلاک و ارسال آن به سرورها
- پردازش تصویر از راه دور و اجرای فرمان با مقایسه تصاویر ارسالی به برد
سه مورد فوق تنها بخش کوچکی از پروژه های قابل اجرا با این برد است. در کنار این، وجود پردازنده قدرتمند ESP32 با قابلیت اجرای برنامه های آردوینو، می تواند بار محاسباتی واحد K210 را کاسته تا پروژه ها با سرعت بیشتری اجرا گردند. اما جهت اتصال به اینترنت، توابع توسعه یافته وجود دارند که در مرحله بعد به آن ها می پردازیم. پیش از آن توجه داشته باشید که در این پروژه ما از یک سرور لینوکسی جهت دریافت داده های Maixduino استفاده می کنیم. زبان برنامه نویسی سمت سرور، PHP خواهد بود.
توابع و دستورات مد کلاینت ESP32 در Maixduino
پس از بررسی مختصر تعریف کلاینت، نوبت به توابع آن می رسد. در این جا ما به طور مختصر به تشریح این توابع می پردازیم. پیشتر در آموزشی که با کلیک بر روی این لینک قابل دسترسی است، به صورت کامل به این موضوع پرداخته ایم. جدول زیر توابع کلیدی مد کلاینت را نمایش می دهد.
شرح | تابع |
شروع ارتباط با سرور
در ورودی تابع لینک آدرس سرور قرار می گیرد. |
begin |
ارسال داده ها تحت متد GET | GET |
خواندن پاسخ ارسالی از سوی سرور |
readString |
قطع اتصال با سرور | end |
پس از بررسی توابع فوق، نوبت به اجرای نمونه برنامه ها می رسد. این مورد را در قسمت بعد بررسی خواهیم کرد.
اجرای برنامه ارسال داده از ESP32 برد Maixduino به سرور
پس از بررسی توابع کلیدی و کاربردی بخش کلاینت Maixduino، نوبت به اجرای برنامه های نمونه می رسد. در این برنامه در یک طرف کدهای سرور و در طرف دیگر Maixduino قرار دارد. در سمت سرور کدهای PHP اجرا می شود. این کدها با دریافت داده های ارسالی از سوی کلاینت تحت متد GET، آن ها را در یک فایل ذخیره می کنند. جهت اطلاعات بیشتر، مطالعه آموزش زیر را پیشنهاد می کنیم.
آموزش ساخت پلتفرم اختصاصی IOT، کلیک کنید
در ادامه، این آموزش در سمت سرور از هاست لینوکس با زبان PHP استفاده می کند. کدهای زیر مربوط به سمت سرور به زبان PHP است. این کدها را در فایل index.php سرور، قرار دهید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
در این برنامه خروجی تابع millis به سرور ارسال می گردد. در سمت سرور با توجه به برنامه PHP، داده ها تحت متد GET دریافت می شوند. پس از دریافت، خروجی تابع millis در فایل data.txt روی سرور ذخیره می گردد. جهت مشاهده داده های ارسالی از سوی سرور، می بایست صفحه data.txt را روی سرور با تایپ آدرس آن در مرورگر باز کنید. به عنوان مثال صفحه example.com/data.txt را در مرورگر خود تایپ کنید تا مطابق تصویر زیر، خروجی تابع millis را مشاهده کنید.
پس از این قسمت، نوبت به اجرای نمونه برنامه دیگری می رسد. قسمت بعدی را به این موضوع اختصاص می دهیم.
ایجاد ارتباط بین K210 و ESP32 و ارسال داده به سرور
پس از ارسال داده های ESP32 برد Maixduino به سرور، نوبت به اجرای برنامه دیگری می رسد. در این برنامه داده ای از سمت K210 به ESP32 ارسال گردیده و سپس این داده به سرور منتقل خواهد شد. در این برنامه، زمان دریافت شده توسط تابع millis در سمت پردازنده K210 را از طریق سریال مانیتور به پردازنده ESP32 ارسال می کنیم. پردازنده ESP32 پس از دریافت داده، آن را به سرور ارسال می کند. پس از ارسال به سرور، چنانچه داده ها با موفقیت به سرور برسند، پیغام ۲۰۰ را از سرور دریافت خواهیم کرد. با دریافت این پیغام، واحد ESP32 پیامی را به K210 مبنی بر ارسال موفقیت آمیز داده ها، ارسال می کند. در ابتدا، کد زیر را روی پردازنده ESP32 آپلود کنید.
محدودیت در دسترسی کامل به این مجموعه آموزش
دسترسی کامل به آموزش برای اعضای دیجی اسپارک امکان پذیر است. بخش اصلی آموزش شامل سورس کدهای توسعه داده شده توسط مهندسهای دیجی اسپارک است. به همین دلیل این آموزش خاص و یکتاست. برای استفاده از آن بایستی عضویت تهیه کنید. تبادل نظر با کاربران و پرسش سوال رایگان است و میتوانید از بخش نظرات همین آموزش اقدام کنید. |
لوازم مورد نیاز
بردهای مبتنی بر هوش مصنوعی Sipeed
جمع بندی
در مجموعه آموزش های برد Maixduino قسمت سیزدهم را به ارتباط اینترنتی برد Maixduino اختصاص دادیم. همانطور که در چند قسمت اخیر مشاهده کردید، برد Maixduino علاوه بر قابلیت پردازش صوت و تصویر، قادر به اتصال به اینرتنت و تبادل داده در این بستر است. بدین ترتیب به کمک این برد، مفهوم AIOT تکیل می شود. برد Maixduino در کنار پردازنده K210، از پردازنده ESP32 با دو هسته و فرکانس ۲۴۰ مگاهرتز جهت ارتباط اینترنتی استفاده می کند. پردازنده ESP32 علاوه بر قابلیت اتصال به اینترنت، می تواند برنامه های کاربر به زبان آردوینو را نیز، اجرا کند. در این آموزش پس از بررسی توابع کلیدی و کاربردی، به اجرای مثال هایی پرداختیم. در ابتدا نحوه ارسال داده از ESP32 به سرور بررسی شد. پس از آن داده ای از سمت K210 به ESP32 ارسال کرده تا به سرور منتقل گردد. در سمت سرور هم طی یک برنامه PHP، داده ها را دریافت و ذخیره می کنیم.
چنانچه هرگونه ابهامی در مطالب درج شده وجود دارد، می توانید با ثبت نظر در انتهای همین پست سوال خود را بپرسید. تاکنون در دیجی اسپارک بیش از ۲۶ هزار سوال و پاسخ ثبت شده است؛ پس نظرات بی جواب نمی مانند! همچنین اگر ایراد و یا اشکالی در مطالب درج شده وجود دارد، لطفا آن را با ثبت نظر، مطرح کنید. همچنین اگر مشکلی در کدها وجود داشته و یا اجرا نمی شوند، مورد را حتما در انتهای همین آموزش مطرح نمایید. نظرات شما برای ما بسیار ارزشمند هسنند!!