آموزش, توصیه شده, مقاله

ساخت مبدل سریال به وای فای توسط ESP8266

ساخت مبدل وایفای به سریال

ممکن است برای شما هم اتفاق افتاده باشد که پروژه ای را در محلی نصب کرده باشید و ببینید که خوب کار نمی کند؟ و یا مثلا فردای نصب پروژه دچار مشکل شود؟ خب این اتفاق همیشه برای من رخ می دهد. یا مثلاً، قصد دارم ویژگی تازه ای را به کنترل کننده گلخانه‌ام یا ایستگاه آب و هوایم اضافه کنم !، اما نمی خواهم برای تست و بازنگری چند روزی آن را به روی میز کارم منتقل کنم. در عوض دوست دارم از راه دور رفع اشکال یا اصلاح کد را انجام دهم. تصور کنید شب راحت در خانه نشسته اید و پروژه تان در جای دیگری مشغول به کار است و شما به سادگی پارامتر های آن را مشاهده و بررسی می‌کنید ! واقعا فوق العاده نیست ؟!

اولین تلاشم  برای دستیابی یه چنین امکانی استفاده از BeagleBone Black و یک دانگل Wifi بود بدین صورت که داده های دریافت شده از پورت سریال را به شبکه Wifi منتقل کنم. البته به جای BeagleBone Black می‌توانید از برد های لینوکسی دیگر نظیر Raspberry Pi نیز استفاده کنید.

 

اتصال BeagleBone Black به wifi

 

در واقع من یک BeagleBone Black به قیمت 55 دلار و یک دانگل وای فای به قیمت 10 دلار را به یک ویجت FTDI از راه دور تبدیل کردم. اولین لحظه راه اندازی برای من مثل بهشت بود. چرا که از یک راه حل ارزان قیمت برای یک پروژه بزرگ استفاده کرده بودم و به خوبی کار می کرد. اما وقتی وسوسه شدم که این امکان را به دیگر پروژه هایم اضافه کنم دیگر یک BeagleBone Black کافی نبود و می‌خواستم کنترل بردهای بیشتری را از این طریق به دست بگیرم. اما پیش بینی خرید 3-4 تا  BeagleBone Black دیگر، به نظر ارزان نمی آمد.

در این زمان بود که ماژول وای فای esp8266 با قیمت 5 دلار چشمم را گرفت. ماژول esp8266  یک ماژول وای فای با یک پردازنده قابل برنامه ریزی و یک پورت سریال است و البته مهمتر از همه SDK (کیت توسعه نرم افزار) آن است که در دسترس برنامه نویس ها قرار گرفته است. وجود SDK این امکان را می‌دهد که برنامه دلخواه خودمان را روی پردازنده ماژول پروگرام کنیم بدون این که نیازی به پردازنده کناری باشد ، درست همانطور که با BeagleBone Black انجام دادم.  ذهنم درگیر محاسبه شد: چه می توانم انجام دهم؟ هزینه یک سخت افزار کامل چقدر است؟ چقدر توان نیاز دارد؟ محدوده وای فای آن چقدر است؟

esp8266

 

در آن لحظه با یکی از دوستانم درباره پروژه کوچکم که اسم آن را “esp-bridge” گذاشته بودم صحبت کردم و احساس کردم که به یک هفته زمان برای کدنویسی احتیاج دارم. در ادامه توضیحات تخصصی تری از این پروژه را بیان خواهم کرد:

 

مبدل سریال به وای فای با استفاده از ESP8266 :

فرمویر esp-link  هر میکروکنترلری را با استفاده از یک ماژول ESP8266 به اینترنت متصل می کند. تعدادی از ویژگی‌های آن عبارتند از:

  • ارتباط ترنسپرت بین وای فای و سریال؛ جهت عیب‌یابی و مشاهده عملکرد میکروکنترلر.
  • امکان پروگرام میکروکنترلرهای AVR یا برد آردوینو و میکروکنترلر LPC800 از طریق وای فای.
  • پیاده سازی پروتکل STK500 جهت برنامه ریزی مستقیم AVR از طریق رابط ISP (تنها کافی است که فایل Hex را آپلود کنید 🙂 )
  • ارسال درخواست های دریافتی از میکروکنترلر بر روی اینترنت جهت درج در سرویس های مختلف
  • سرویس دهنده MQTT از طریق اتصال میکروکنترلر به اینترنت.

فریمور شامل یک سرور HTTP کوچک است که بر اساس eshtttpd  پیاده سازی شده است و یک رابط کاربری ساده را ارائه می دهد.

 

هدف Esp-link چیست؟

هدف از پروژه esp-link ایجاد یک ارتباط وای فای پیشرفته است. Esp-link فرض می کند که یک پردازنده اصلی وجود دارد ( به عنوان “میکروکنترلر متصل شده” ) و نقش esp-link برقراری ارتباط از طریق وای فای با میکروکنترلر ها است.  بدین معنا که esp-link نه تنها اتصال سوکت های TCP / UDP را از طریق میکروکنترلر برقرار می‌کند، بلکه عمدتاً قابلیت های بیشتری برای تخلیه میکروکنترلر دارد که حافظه و فلش این قابلیت ها را ندارند.

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

سه حوزه اصلی از قابلیت های esp-link عبارتند از:

  • برنامه ریزی مجدد و عیب یابی  میکروکنترلر
  • اتصال میکروکنترلر به شبکه و تخلیه داده های پردازش شده
  • برقراری ارتباط ترنسپرنت با میکروکنترلر از طریق شبکه
هدف این پروژه همچنان روی موضوع های فوق تمرکز دارد. به طور خاص، esp-link یک پلت فرم برای برنامه های مستقل نیست و از سنسورها و یا محرک های اتصال مستقیم پشتیبانی نمی کند.

کاربردهای  Esp-link:

ساده ترین کاربرد esp-link به عنوان یک  ارتباط سریال به وای فای است. شما می توانید میکروکنترلر متصل شده را از طریق وای فای پروگرام کنید و می توانید خروجی سریال میکروکنترلر را با اتصال به پورت 23 یا با استفاده از صفحه وب esp-link مشاهده کنید.

 

سطح بعدی استفاده از اتصال خروجی esp-link در برنامه میکروکنترلر است. به عنوان مثال، میکروکنترلر می تواند درخواست های REST را به سرویس هایی مانند thingspeak.com ارسال کند تا به صورت نموداری و جدول قابل مشاهده باشند. میکروکنترلر همچنین می تواند از درخواست های REST برای بازیابی اطلاعات پیکربندی استفاده کند.

گزینه دیگر، اضافه کردن برنامه به esp-link برای سفارشی کردن آن و قرار دادن تمام کد های ارتباطی در esp-link است و تنها قرائت سنسور در میکروکنترلر انجام می شود. در این حالت میکروکنترلر دستورات تعریف شده را به esp-link ارسال می کند و esp-link آن را با استفاده از بستر ارتباطی نظیر اینترنت و MQTT به سرور منتقل می کند.

 

چشم انداز:

تصاویری از محیط ESP-Link که در مرورگر قابل بارگزاری است:

 

مبدل سریال به وای فای توسط ESP8266

داشبرد اولیه ESP-LINK و نمایش پارامتر های سیستم

مبدل سریال به وای فای توسط ESP8266

صفحه مربوط به تنظیمات Wifi

مبدل سریال به وای فای توسط ESP8266

کنسول نمایش Uart در صفحه وب

 

مبدل سریال به وای فای توسط ESP8266

تنظیمات مروبط به اتصال پایه ها

 

مبدل سریال به وای فای توسط ESP8266

تنظیمات مربوط به هات اسپات esp-link

 

 

مبدل سریال به وای فای توسط ESP8266

تنظیمات مربوط به MQTT و تعریف دستورات خاص

چطور و از کجا شروع کنیم :

برای شروع باید:

  1. ماژول esp8266 را برای برنامه ریزی از طریق سریال آماده کنید
  2. آخرین نسخه esp-link release را دانلود کنید
  3. فریمور را بر روی esp8266 پروگرام کنید.
  4. پیکربندی وای فای در esp-link برای شبکه محلی
اگر نمیداند چطور eps8266 را برای پروگرام شدن آماده کنید ؛ اصلا جای نگرانی نیست ؛ قبلا در مقاله آموزش اتصال ربات تلگرام به آردوینو این موضوع رو آموزش دادیم.

سپس شما می توانید میکروکنترلر را با استفاده از پورت سریال متصل کنید و یک برنامه ای را آپلود بر روی آن پروگرام کنید:

  1. یک میکروکنترلر (به عنوان مثال arduino) را به ماژول esp8266 خود متصل کنید.
  2. از طریق پورت سریال قادر خواهید بود که پارامتر های دستگاه را مشاهده کنید.

 

ارتباط سریال:

برای اتصال  esp-link به میکروکنترلر از پورت 23 استفاده کنید. به عنوان مثال، در linux شما می توانید از “nc esp-hostname 23” یا در ویندوز از “telnet esp-hostname 23”  استفاده کنید.

 

تایم اوت در پورت 23 و 2323 حدود 5 دقیقه است. زمان 5 دقیقه در SDK Espressif یک استاندارد است و esp-link آن را تغییر نمی دهد. به این دلیل که با توجه به محدودیت های حافظه تنها چند اتصال می تواند باز باشد (4 تا در هر پورت) به همین دلیل گاهی اتصالات ارتباطشان را از دست می دهند. به عنوان مثال، به دلیل قطع وای فای. که این به راحتی می تواند باعث عدم اتصال به esp-link شود.

توجه داشته باشید که چند کاربر به صورت همزمان می توانند به پورت 23 و 2323  متصل شوند. Esp-link کارکتر های دریافتی تمامی کاربر ها را به پورت سریال ارسال می کند و کاراکتر های ورودی را از پورت سریال به تمام کاربرها ارسال می کند. پس با احتیاط استفاده کنید.

 

منبع 1

منبع 2

 

 



انتشار مطالب با ذکر نام و آدرس وب سایت سیسوگ، بلامانع است.

شما نیز میتوانید یکی از نویسندگان سیسوگ باشید.  همکاری با سیسوگ

 

نوشته های مشابه

یک دیدگاه در “6”

  1. Avatar محمد گفت:

    ممنون از پیشنهادتون
    واقعا کاربردی هست. حتما توی پروژه های بعد ازش استفاده میکنم.

    1. زئوس Zeus زئوس Zeus گفت:

      خواهش میکنم دوست عزیز 🙂
      بله واقعا کاربردی هستش ؛ مخصوصا برای پروژه هایی که دسترسی محدودی بهشون وجود داره

  2. Avatar امید گفت:

    با گوگل ترنسلیت ترجمه کردید ؟؟ 😐 لینک اصلی مقاله رو میدید ؟؟

    1. زئوس Zeus زئوس Zeus گفت:

      بله حق با شماست متن چندان که باید روان نیست ؛ به زودی اصلاح میکنیم متن را ؛ منابع رو می توانید در انتهای مطلب ببینید .
      متشکر برای انتقاد شما 🙂

      1. Avatar امید گفت:

        عالی دستتون درد نکنه

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *