معرفی ESP8266
مطمعناً با ماژول وای فای ESP8266 مخصوصاً از نوع 01 آشنایی دارید. ما در سالهای گذشته و در سایت قدیم در مقالات راه اندازی ماژول WiFi وای فای ESP8266 و ریموت وای فای با ESP8266 و بسکام در مد AP و
مرورگر اینترنت با ESP8266 و بسکام Bascom و ریموت کنترل با ESP8266 با مودم واسط (IP Remote) به اندازه کافی در مورد این ماژول توضیح دادهایم. در تمام جلسات پیشین از firmware پیشفرض ESP8266 که به AT Command مشهور است استفاده کرده بودیم و در محیط Bascom کد میزدیم. اما در جلسه ششم آموزش آردوینو قصد داریم با کتابخانههای قدرتمند C و ++C و کامپایلر آردوینو داخل حافظه فلش خود ماژول کدنویسی کنیم.
نصب برد ESP8266 در آردوینو
قبل از کار با ESP8266 ابتدا باید سری بردهای این ماژول را در آردوینو نصب کنیم. مراحل نصب این مجموعه برد دقیقا مطابق جلسه پنجم آموزش آردوینو است.
برای نصب این گروه برد مخصوص آردوینو از منوی File روی Preferences کلیک کرده و در پنجره باز شده در قسمت Additional Boards Manager URLs در جلوی فیلد روی علامت شبیه پنجره کلیک کرده و در پنجره کوچک آدرس
http://arduino.esp8266.com/stable/package_esp8266com_index.json
را وارد و هر دوپنجره را OK میکنیم. ممکن است به ابزارهای عبور از تحریم هم نیاز پیدا کنید. این قسمت از آردوینو برای افزودن بردهای جدید به کار میرود. در صورتی که از بردهای متنوعی استفاده میکنید، URL ها را زیر یکدیگر اضافه کنید.
حال روی Tools>Board>Boards Manager کلیک کرده و عبارت ESP8266 را جستجو و نصب میکنیم.
بعد از نصب مجموعه برد از منوی Tools روی Board و سپس ESP8266 Boards کلیک کرده و اگر قصد دارید که با ماژول تنها کار کنید روی Generic ESP8266 Module کلیک کنید. در صورتی که میخواهید با ماژولهای آماده مثل NodeMCU یا WEMOS کار کنید میتوانید یکی از آنها را برگزینید. ماژول های NodeMCU یا WEMOS دارای مبدل USB به سریال داخلی و تبدیل سطح منطقی هستند و برای شروع کار استفاده از آنها پیشنهاد میشود. اما در صورتی که مایلید ماژول ESP8266-01 رابه طور مستقیم پروگرم کنید قسمت بعدی را بخوانید.
ساخت پروگرامر ESP8266
برای ساخت پروگرمر ESP8266 به یک ماژول USB به TTL (ترجیحاً با مد انتخاب 3.3 ولت) احتیاج دارید. در صورت استفاده از ماژول 5 ولت حتما باید سطح منطقی روی پایه RX ماژول ESP8266 را با کمک تقسیم مقاومتی به 3.3 ولت کاهش دهید (از این نقشه استفاده کنید) سپس مداری مطابق شکل زیر ببندید:
ما از یک ماژول مبدل USB به سریال FT232 با امکان تنظیم سطح منطقی IO ها روی 3.3 ولت استفاده کردهایم که اتفاقاً خروجی ولتاژ 3.3 ولت نیز داشته و تغذیه ماژول را هم تامین میکند:
برد خام این پروگرمر (بدون قطعات لحیم شده) از سایت نوین کیت قابل خریداری می باشد (لینک خرید)
بعد از ساخت پروگرمر نوبت به تست و نحوه پروگرم کردن میرسد که در بخش بعدی توضیح میدهیم.
آپلود اولین برنامه روی ماژول ESP8266-01
برای تست ماژول یک پروژه آماده چشمکزن از آدرس File>Examples>ESP8266>Blink باز کنید. سپس از منوی Tools پورت ماژول را انتخاب نمایید. حال کلید Prog را روی پروگرامر نگه داشته و در همین حال کلید RESET را فشار دهید و رها کنید. اندکی پس از رها کردن کلید RESET کلید Prog را نیز رها کنید. در واقع با این کار پایه GPIO-0 ماژول را در حین روشن شدن ماژول زمین کردهاید. در این صورت ماژول آماده دریافت برنامه از پورت سریال خواهد بود. سپس از منوی Sketch روی Upload کلیک کنید یا کلید فلِش را بزنید و صبر کنید تا برنامه وارد ماژول شود.
اگر پروگرم شدن با موفقت انجام شود عبارتهایی مانند زیر را مشاهده خواهید کرد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
esptool.py v3.0 Serial port COM3 Connecting.... Chip is ESP8266EX Features: WiFi Crystal is 26MHz MAC: 48:3f:xx:xx:xx:xx Uploading stub... Running stub... Stub running... Configuring flash size... Auto-detected Flash size: 1MB Compressed 265040 bytes to 195069... Writing at 0x00000000... (8 %) Writing at 0x00004000... (16 %) Writing at 0x00008000... (25 %) Writing at 0x0000c000... (33 %) Writing at 0x00010000... (41 %) Writing at 0x00014000... (50 %) Writing at 0x00018000... (58 %) Writing at 0x0001c000... (66 %) Writing at 0x00020000... (75 %) Writing at 0x00024000... (83 %) Writing at 0x00028000... (91 %) Writing at 0x0002c000... (100 %) Wrote 265040 bytes (195069 compressed) at 0x00000000 in 17.3 seconds (effective 122.8 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... |
پس از پایان کار حتما یک بار کلید RESET پروگرامر را فشار دهید و رها کنید تا ماژول وارد مد اجرای کد از روی فلش شده و شروع به کار کند.
برنامه تست به شکل زیر است:
1 2 3 4 5 6 7 8 9 10 |
void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, LOW); delay(1000); digitalWrite(LED_BUILTIN, HIGH); delay(2000); } |
در این برنامه LED_BUILTIN بصورت پیشفرض پایه GPIO2 ماژول می باشد که از طریق منوی Tools می توانید آن را تغییر دهید. دقت داشته باشد که ما دو نوع ماژول ESP8266-01 داریم؛ یکی 01 و دیگری با پسوند S یعنی ESP8266-01S که در شکل زیر هر دو را مشاهده میفرمایید:
ماژول سمت راست ESP8266-01 و ماژول سمت چپ ESP8266-01S می باشد. از ماژول شما از نوع S باشد فقط یک LED دارد که قطب منفی آن به پایه GPIO2 متصل است. یعنی با LOW کردن پایه 2 چراغ روشن میشود. اگر ماژول شما از نوع بدون پسوند S و با دو عدد LED آبی و قرمز باشد حتما از منوی Tools گزینه Builtin Led را روی 1 قرار دهید. در این نوع ماژول نیز قطب منفی LED به پایه 1 متصل شده است. توجه داشته باشید که پایه 1 در این دو مدل ماژول در دسترس کاربر قرار ندارد و فقط پایه های 0 و 2 به بیرون سیم کشی شدهاند. هنگام کار با پایه 0 دقت کنید که هر گز این پایه با مقاومت کم اهم یا ترانزیستور به نحوی به زمین متصل نشود چرا که به محض روشن شدن، ماژول وارد مد برنامهریزی میشود و برنامه داخل فلش را اجرا نمیکند. همچنین پایه های CH_PD یا EN و پایه RESET ماژول همیشه باید با مقاومت حدود 4.7 الی 10 کیلو اهم Pullup شوند تا ماژول بصورت پایدار کار کند.
کمی بیشتر
در پوشه Examples و در زیر مجموعه ESP8266 مثالهای فراوانی وجود دارد که می توانید آن ها را بررسی کرده و اجرا کنید. ما سعی میکنیم انشاءالله در جلسات آتی برخی از مثالهای کاربردی را مورد بررسی قرار دهیم. کار با ماژول Wi-Fi نیازمند درک صحیح از مفاهیم شبکه، IP و موارد مرتبط میباشد. حتما قبل از کار عملی در این زمینه مطالب تئوری زیادی در خصوص نحوه کار شبکه ها و کلاسهای IP مطالعه کنید تا سردرگم نشوید. البته میتوان اصلا از قابلیت Wi-Fi این ماژول استفاده نکرد و فقط بعنوان یک میکروکنترلر قدرتمند با حافظه فلش 1 مگابایت و یا بیشتر نیز به آن نگاه کرد که برای اجرای برنامههای آفلاین و در مواقعی که نیاز به سرعت بالا میباشد قابل استفاده است. با این حال استفاده از بخش Wi-Fi و امکان اتصال به شبکه جهانی اینترنت مزیت اصلی استفاده از این ماژول به شمار میرود و نمیتوان آن را نادیده گرفت. به عنوان یک ایده یا طرح کلی میتوان ESP8266 را قلب تپنده IoT یا اینترنت اشیاء نامید.
منابع
https://forum.arduino.cc/t/esp8266-01-module-flashing-break-through-at-command-firmware/322821
بازدیدها: 429
سلام واقعا دستتون درد نکنه خدا خیرتون بده ان شاالله خیلی عالی توضیح دادین
استاد اگه بخواهیم ماژول ESP8266-01 رو به جای کابل رابط بین میکروکنترلر و گوشی اندروید جا گذاری کنیم باید چه تنظیماتی و از چه برنامهای استفاده کنیم واگر هزینه داشته باشد حاضرم بپردازم چون نیاز دارم ممنون از لطفتون
سلام خواهش میکنم. می تونید با آردوینو یک وب سرور روی ESP8266 ایجاد کنید و ازیک برنامه Socket بر روی اندروید با ماژول ارتباط بگیرید. نیاز به یادگیری اندروید استودیو در سمت موبایل و کار با کتابخانه ESP8266WebServer در سمت ماژول هست.
سلام وقتتون بخیر و نیکی
ممنونم از پاسختون استاد یه عرض دیگه داشتم منظورم دیتای خروجی atmega 32 رومیخواهم بدم به ESP01 و ESP01 هم اين دیتا رو پخش کنه و من هم اون دیتا رو با گوشی اندرویدی که یک نرمافزار اسکنر دارم در نرمافزار اون دیتا رو مشاهده کنم یعنی گوشی فقط گیرنده هست و تنظیمات ات کامند هم لطف فرمایید ان شاالله که روزیتون از طرف خدا چندین برابر بشه ان شاالله
سلام و سپاس، آموزشهای زیر رو ببینید:
https://avr64.com/?p=686
https://avr64.com/?p=351