آموزش راه اندازی ESP8266 با آردوینو – {بخش دوم – تست اولین کد}
مقدمه
در بخش اول این جلسه میخوایم یاد بگیریم که چگونه آردوینو رو به esp8266 متصل کنیم. سپس در بخش دوم تنظیمات نرم افزاری مربوطه رو هم انجام میدیم و اولین کد خودمون رو روی برد آردوینو میریزیم. در واقع در این جلسه دیگه به طور رسمی راه اندازی esp8266 رو یاد میگیریم. مپیشنهاد میکنم برای بهتر متوجه شدن این جلسه، جلسه قبل رو از لینک زیر بخونید:
بخش سخت افزاری
ما برای این که بتونیم کدهامون رو روی برد ESP8266 بریزیم نیاز به یک مبدل USB به سریال داریم. حالا چرا؟ ببینید دوستان، استاندارد برد ESP که باهاش عمل پروگرم انجام میشه ارتباط سریال هست در حالی که ما داریم روی یک کامپیوتر یا لپتاپ کدهامون رو مینویسیم که این کامپیوتر استانداردش از نوع USB هست. خوب حالا این دو تا استاندارد مختلف چگونه باید با هم ارتباط برقرار کنن؟ اینجاست که به یک مبدل USB به سریال نیاز پیدا میکنیم.
مبدل های USB به سریال مختلفی توی بازار وجود داره. از CP2102 گرفته تا PL2303 . اما ما در اینجا نمیخوایم از این مبدل ها استفاده کنیم. ما میخوایم با استفاد از همین برد آردوینو این کار رو انجام بدیم. چون برد آردوینو روی خودش یک مبدل USB به سریال داره و ما میتونیم از اون مبدل برای پروگرم کردن استفاده کنیم. ولی نکته مهم اینه که باید حتما میکروکنترلر رو از روی برد برداریم تا داده ها بر روی برد ESP ریخته ( البته راه هایی هم هست که بدون این که میکروکنترلر رو برداریم بشه پروگرم کرد که چون ما در ابتدای کار هستیم اون راه ها رو پیشنهاد نمیکنیم)
مهمترین کار در این قسمت این هست که چگونه سیم ها رو وصل کنیم. یعنی چه سیم هایی رو از آردوینو به برد ESP وصل کنیم. در شکل زیر ابتدا پایه های این برد آورده شده و سپس جدولی رو آوردیم که در اون جدول نشون دادیم باید سیم های چطوری به هم دیگه وصل بشن.
در شکل زیر هم نحوه سیم بندی رو به صورت کاملا عملی میبینید:
دوستان حتما توجه داشته باشید که باید پایه GPIO_0 به زمین وصل باشه وگرنه عمل پروگرم کردن به درستی انجام نخواهد شد. حالا بریم وارد بخش نرم افزاری قضیه بشیم.
بخش نرم افزاری
محیط های مختلفی وجود داره که میشه با استفاده از اون ها میشه برای ماژول ESP8266 رو برنامه نوشت. از Notepad گرفته تا Eclipse . اما ما در اینجا میخوایم از نرم افزار Arduino استفاده کنیم و پیشنهاد ما هم برای کسانی که تازه کار با این ماژول رو شروع کرده اند همینه.
برای این که بتونیم برای این ماژول در محیط آردوینو کدنویسی کنیم باید یک افزونه رو نصب کنیم. در ادامه آموزش قصد داریم یاد بگیریم که چگونه این افزونه رو در آردوینو نصب کنیم. مثل همیشه مستقیم میریم سر اصل مطلب:
آموزش نصب افزونه:
از نسخه 1.6.4 نرم افزار آردوینو ، یه بخشی برای اضافه کردن بردهای دیگه به نرم افزار اضافه شد. بدیهی هست که اگه از نسخه های قبل از این نسخه استفاده میکنید باید نسخه جدیدتری رو دانلود کنید. جدیدترین نسخه این نرم افزار رو میتونید از این لینک دانلود کنید.
برای شروع نیاز هست که ما قسمت board manager در نرم افزار arduino رو با یک URL مشخص آپدیت کنیم. برای این کار ابتدا نرم افزار arduino را باز کنید. سپس از منوی File گزینه Preferences رو انتخاب کنید. سپس مطابق شکل از قسمت Additional Board Manager URLs آدرس زیر رو وارد کنید: ( میتونید هم بر روی گزینه مشخص شده در شکل زیر کلیک کنید و در پنجره باز شده آدرس رو وارد کنید( مطابق شکل زیر))
http://arduino.esp8266.com/stable/package_esp8266com_index.json
اگه شما در اینجا یک URL داشتید قبلا و دوست دارید که اون URL باقی بمونه تنها کافیه که URL ها رو با یک کاما از همدیگه جدا کنید. ( در arduino 1.6.5 یک گزینه ای اضافه شد در همین بخش که وقتی روش کلیک میکنید یه پنجره کوچیک برای شما باز میشه و در این پنجره برای وارد کردن چند URL تنها کافی است هر بار که URL خود را وارد میکنید به خط بعد بروید و پس از وارد کردن URL های خود روی OK کلیک کنید. در این صورت نرم افزار به صورت اتوماتیک URL ها را یک علامت کاما برای شما جدا خواهد کرد. )
بعد از وارد کردن آدرس بر روی گزینه OK کلیک کنید تا پنجره Preferences برای شما بسته بشه. سپس از منوی Tools وارد بخش Boards و سپس Board manager بشید. در این صورت برای شما پنجره ای مطابق شکل زیر باز خواهد شد. در این پنجره دنبال بخش esp8266 بگردید و سپس روی گزینه Install کلیک کنید.
حالا این برد هم برای شما تعریف میشه و یک سری ابزارها مثل GCC و فایل های باینری کامپایل شده و … شروع به دانلود شدن میکنند. به همین خاطر این فرایند چندین دقیقه طول میکشه ( حجم فایل دانلودی حدود 110 مگابایت هست). وقتی که نصب تموم شد جلوی پنجره مربوطه عبارت INSTALLED نوشته میشه.
انتخاب برد:
بعد از تکمیل عملیات بالا حالا باید برای استفاده از این کتابخانه برد ESP8266 رو انتخاب کنید که این کار از منوی Tools و بخش Boards قابل انجام هست.
در آخرین مرحله از منوی Tools در بخش Port ، پورتی که از طریق اون با ماژول ارتباط برقرار کردید رو انتخاب کنید.
آپلود اولین کد
برای این که چک کنید ببینید همه چیز درست هست. اون کد معروف LED چشمک زن که جزو مثال های آردوینو است رو باز کنید ( از منوی File ، بخش Example ، قسمت Basic و سپس گزینه Blink ) ولی به جای 13 باید یکی از دو عدد 0 یا2 رو قرار بدید. چون برد ESP8266-01 فقط دو پایه GPIO داره که یکی از اون ها GPIO 0 و دیگری GPIO 2 هست.
void setup() { pinMode(2, OUTPUT); } void loop() { digitalWrite(2, HIGH); delay(500); digitalWrite(2, LOW); delay(500); }
سپس کد رو بر روی برد آپلود کنید. اگه آپلود با ارور مواجه شد قبل از همه چیز مطمین باشید که تغذیه برد ESP8266وصل هست و LED قرمز رنگ روی برد روشنه.
در شکل زیر مدار مورد نظر برای این کد و پروگرم کردنش آورده شده ولی حتما بعد از آپلود کردن کد حتما اتصال پایه GPIO_0 از زمین رو قطع کنید تا این مدار به درستی کار کنه. ( در این شکل این پایه قطع نشده است چون میخواستیم همزمان مدار پروگرم کردن و LED با هم نشان داده شود. )
سوال: چگونه کد خود را سریعتر آپلود کنیم؟
سرعت ارتباط سریال در این روش پروگرم به طور پیش فرض 115200 هست (که خیلی هم قابل اطمینان هست) و اگه عمل پروگرم رو انجام داده باشید خواهید دید که مدت زمانی طول خواهد کشید تا پروگرم کامل انجام بشه. اما میشه این سرعت رو افزایش داد و زمان کمتری برای پروگرم کردن منتظر بمونید. این کار از منوی Tools بخش Upload Speeds قابل انجام هست. شکل زیر گویای همه چیز هست:
البته دوستان توجه داشته باشید که پروگرم کردن این برد هنوز هم با یک سری باگ ها مواجه هست که این اشکالات در برد ESP-01 برطرف نشده. مثلا این که اگه دوبار روی upload کلیک کنید و بخواید کد رو روی برد ESP بریزید احتمالا با یک خطایی مواجه خواهید شد که این اشکال مربوط به خود برد ESP هست.
خوب این جلسه هم به پایان رسید. مثل همیشه میتونید ما رو در تلگرام و یا اینستاگرام دنبال کنید:
52 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
باسلام.یه سوال درباره خود ماژول داشتم .اگه ما یه موج انالوگ رو از سمت فرستنده بفرستیم اونو در سمت گیرنده میتونیم آنالوگ دریافت کنیم.
با سلام.
در مورد ارسال یک موج آنالوگ متاسفانه توضیحی تا کنون از طرف شرکت سازنده ارایه نشده است و به نظر هم نمیرسد که بتوان این کار را انجام داد.
موفق باشید.
سلام ؛ ببخشید من وقتی کد بالا رو آپالود کردم خطای زیر در زمان آپالود به وجود اومد خواهشا کمکم کنین؟
Archiving built core (caching) in: C:\Users\M_B\AppData\Local\Temp\arduino_cache_217302\core\core_esp8266_esp8266_generic_CpuFrequency_80,ResetMethod_ck,CrystalFreq_26,FlashFreq_40,FlashMode_qio,FlashSize_512K0,LwIPVariant_v2mss536,Debug_Disabled,DebugLevel_None____,UploadSpeed_115200_0dc2f1526d76acf877b42cff1f945757.a
Sketch uses 247047 bytes (49%) of program storage space. Maximum is 499696 bytes.
Global variables use 32852 bytes (40%) of dynamic memory, leaving 49068 bytes for local variables. Maximum is 81920 bytes.
error: Failed to open COM3
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed
با سلام.
مشکل اینجاست که میکروکنترلر را از روی برد آردوینو برنداشته اید. لطفا میکروکنترلر را بردارید و دوباره تست کنید.
موفق باشید.
سلام
مطابق توضیخاتی ک داده بودین عمل کردم منتها وقتی داره install میشه وسطاش ارور زیرو میده
error downloading https://github.com/esp8266/arduino/releases/download/2.0.0.zip
چیکار باید انجام بدم تا بتونم درستش کنم؟باتشکر
با سلام.
لینکی که قرار داده اید مشکل دارد. لطفا لینک را جایگزین فرمایید.
با تشکر.
متچکرم مشلک حل شد
خواهش میکنم.
موفق باشید.
با سلام مجدد و تشکر از شما
ببخشید یک سوال دیگه ، با این روش یعنی دیگه نمیتونیم از بقیه ی پایه های آردویینو استفاده کنیم ؟
سلام.
شما ESP را به آردوینو متصل کرده اید یا صرفا کدهای آردوینو را بر روی ESP کامپایل کرده اید. بدون آن که از خود برد Arduino استفاده کرده باشید؟
با سلام و تشکر
ماژول رو به آردوینو وصل کرده ام
سلام.
چرا نتوان از دیگر پایه های آردوینو استفاده کرد؟ شما فقط از یک ماژول ESP استفاده کرده اید و پایه های متصل به آن ماژول صرفا مشغول می باشد و بقیه پایه ها آزاد هستند.
موفق باشید.
متشکرم
خواهش میکنم.
موفق باشید.