ممکن است برای شما هم اتفاق افتاده باشد که پروژه ای را در محلی نصب کرده باشید و ببینید که خوب کار نمی کند؟ و یا مثلا فردای نصب پروژه دچار مشکل شود؟ خب این اتفاق همیشه برای من رخ می دهد. یا مثلاً، قصد دارم ویژگی تازه ای را به کنترل کننده گلخانهام یا ایستگاه آب و هوایم اضافه کنم !، اما نمی خواهم برای تست و بازنگری چند روزی آن را به روی میز کارم منتقل کنم. در عوض دوست دارم از راه دور رفع اشکال یا اصلاح کد را انجام دهم. تصور کنید شب راحت در خانه نشسته اید و پروژه تان در جای دیگری مشغول به کار است و شما به سادگی پارامتر های آن را مشاهده و بررسی میکنید ! واقعا فوق العاده نیست ؟!
اولین تلاشم برای دستیابی یه چنین امکانی استفاده از BeagleBone Black و یک دانگل Wifi بود بدین صورت که داده های دریافت شده از پورت سریال را به شبکه Wifi منتقل کنم. البته به جای BeagleBone Black میتوانید از برد های لینوکسی دیگر نظیر Raspberry Pi نیز استفاده کنید.
در واقع من یک BeagleBone Black به قیمت 55 دلار و یک دانگل وای فای به قیمت 10 دلار را به یک ویجت FTDI از راه دور تبدیل کردم. اولین لحظه راه اندازی برای من مثل بهشت بود. چرا که از یک راه حل ارزان قیمت برای یک پروژه بزرگ استفاده کرده بودم و به خوبی کار می کرد. اما وقتی وسوسه شدم که این امکان را به دیگر پروژه هایم اضافه کنم دیگر یک BeagleBone Black کافی نبود و میخواستم کنترل بردهای بیشتری را از این طریق به دست بگیرم. اما پیش بینی خرید 3-4 تا BeagleBone Black دیگر، به نظر ارزان نمی آمد.
در این زمان بود که ماژول وای فای esp8266 با قیمت 5 دلار چشمم را گرفت. ماژول esp8266 یک ماژول وای فای با یک پردازنده قابل برنامه ریزی و یک پورت سریال است و البته مهمتر از همه SDK (کیت توسعه نرم افزار) آن است که در دسترس برنامه نویس ها قرار گرفته است. وجود SDK این امکان را میدهد که برنامه دلخواه خودمان را روی پردازنده ماژول پروگرام کنیم بدون این که نیازی به پردازنده کناری باشد ، درست همانطور که با BeagleBone Black انجام دادم. ذهنم درگیر محاسبه شد: چه می توانم انجام دهم؟ هزینه یک سخت افزار کامل چقدر است؟ چقدر توان نیاز دارد؟ محدوده وای فای آن چقدر است؟
در آن لحظه با یکی از دوستانم درباره پروژه کوچکم که اسم آن را “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 به عنوان یک ارتباط سریال به وای فای است. شما می توانید میکروکنترلر متصل شده را از طریق وای فای پروگرام کنید و می توانید خروجی سریال میکروکنترلر را با اتصال به پورت 23 یا با استفاده از صفحه وب esp-link مشاهده کنید.
سطح بعدی استفاده از اتصال خروجی esp-link در برنامه میکروکنترلر است. به عنوان مثال، میکروکنترلر می تواند درخواست های REST را به سرویس هایی مانند thingspeak.com ارسال کند تا به صورت نموداری و جدول قابل مشاهده باشند. میکروکنترلر همچنین می تواند از درخواست های REST برای بازیابی اطلاعات پیکربندی استفاده کند.
گزینه دیگر، اضافه کردن برنامه به esp-link برای سفارشی کردن آن و قرار دادن تمام کد های ارتباطی در esp-link است و تنها قرائت سنسور در میکروکنترلر انجام می شود. در این حالت میکروکنترلر دستورات تعریف شده را به esp-link ارسال می کند و esp-link آن را با استفاده از بستر ارتباطی نظیر اینترنت و MQTT به سرور منتقل می کند.
چشم انداز:
تصاویری از محیط ESP-Link که در مرورگر قابل بارگزاری است:
چطور و از کجا شروع کنیم :
برای شروع باید:
- ماژول esp8266 را برای برنامه ریزی از طریق سریال آماده کنید
- آخرین نسخه esp-link release را دانلود کنید
- فریمور را بر روی esp8266 پروگرام کنید.
- پیکربندی وای فای در esp-link برای شبکه محلی
سپس شما می توانید میکروکنترلر را با استفاده از پورت سریال متصل کنید و یک برنامه ای را آپلود بر روی آن پروگرام کنید:
- یک میکروکنترلر (به عنوان مثال arduino) را به ماژول esp8266 خود متصل کنید.
- از طریق پورت سریال قادر خواهید بود که پارامتر های دستگاه را مشاهده کنید.
ارتباط سریال:
برای اتصال 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 کارکتر های دریافتی تمامی کاربر ها را به پورت سریال ارسال می کند و کاراکتر های ورودی را از پورت سریال به تمام کاربرها ارسال می کند. پس با احتیاط استفاده کنید.
سلام وقت بخیر
لینک دانلود کار نمیکنه، و نمیتونم فایل اصلی داخل گیت هاب رو کامپایل کنم.
اگه امکانش هست لینک دانلود قرار بدید، برای esp01 و esp8266
فریمور را بر روی esp8266 پروگرام کنید.
این قسمت رو چطور باید انجام داد؟!
فایل هایی ک از گیتهاب دانلود کردیمو چجوری کامپایل کنیم تا خروجی بده بهمون
یا چطور توی برنامه خود اردوینو استفاده کنیمش
فایل های کامپایل شده پروژه هست که فقط نیازه پروگرام بشه که روش پروگرام کردن هم توی مستنداتش هست احتمالا
اگر پیدا نکردید با یه جستجوی ساده پیدا میکند یه نرم افزاره که پروگرام رو انجام میده و رایگان هم هست و قابل دانلود
ممنون از پیشنهادتون
واقعا کاربردی هست. حتما توی پروژه های بعد ازش استفاده میکنم.
خواهش میکنم دوست عزیز 🙂
بله واقعا کاربردی هستش ؛ مخصوصا برای پروژه هایی که دسترسی محدودی بهشون وجود داره
با گوگل ترنسلیت ترجمه کردید ؟؟ 😐 لینک اصلی مقاله رو میدید ؟؟
بله حق با شماست متن چندان که باید روان نیست ؛ به زودی اصلاح میکنیم متن را ؛ منابع رو می توانید در انتهای مطلب ببینید .
متشکر برای انتقاد شما 🙂
عالی دستتون درد نکنه
خواهش میکنیم 🙂