میکروکنترلر AVR پروژه کاربردی پروژه های ارتباطی سایر مطالب

راه اندازی ماژول WiFi ESP8266 (قسمت اول)

راه اندازی ماژول WiFi ESP8266 (قسمت اول)
5 (99%) 20 votes

ESP8266-12-2

 

شاید شما هم از آن دسته از افرادی باشید که دوست دارید مدار الکترونیکی خود را از طریق اینترنت یا گوشی موبایل خود کنترل کنید. ما در این آموزش سعی کردیم این کار را به شما یاد بدهیم.

امروزه ارتباط از طریق امواج رادیویی و مایکروویو در قالب استفاده از پروتکل هایی مانند بلوتوث و WiFi به طور چشمگیری افزایش پیدا کرده است..گوشی های موبایل , رایانه ها , تلوزیون های هوشمند,دوربین های دیجیتال ,چاپگرها و… با استفاده از امواج WiFi می توانند با یکدیگر شبکه شده و اطلاعات خود را بدون نیاز به کابل کشی و هزینه زیاد به اشتراک بگذارند و با یکدیگر ارتباط برقرار کنند. فناوری WiFi بدلیل استفاده از امواج مایکروویو در محدوده 2.4 تا 5 گیگاهرتز همچنین کدینگ نسبتا ساده , ارسال اطلاعات را نسبت به Bluetooth با سرعت بسیار بالاتری انجام می دهد.در این آموزش قصد داریم ماژولESP8266 WiFi راه اندازی کرده و کار با آن را به طور دقیق مورد بررسی قرار دهیم .

ماژول ESP8266 یک ماژول wiFi خیلی خوب است که به راحتی می توان آن را به روتر یا Access Point وصل نمود و اطلاعاتی را از طریق اینترنت ارسال و یا دریافت نمود.همچنین می توان از طریق گوشی های موبایل که ازفناوری WiFi پشتیبانی می کنند به این ماژول وصل شد و دستوراتی را به آن ارسال و یا دریافت نمود.

اما از کجا باید شروع کنیم؟ برای کار با این ماژول در مرحله اول باید اطلاعات کاملی از آن بدست آورد.به طور مثال فرض کنید بخواهید با استفاده از گوشی اندرویدی خود , تنها با فشردن یک کلید لمسی در یک اپلیکیشن یکی از LED های روی مدار خود را روشن نمایید.اگر اطلاعاتی راجع به شبکه داشته باشید , می دانید که در این سناریو گوشی شما نقش Client یا کاربر و مدار شما نقش Server یا سرویس دهنده را دارد.چرا که با در خواستی از مدار پاسخی را دریافت می کنید.پس ماژولی که کار ارسال و دریافت سیگنال های WiFi را انجام می دهد باید بتواند نقش یک سرویس دهنده را ایفا کند.و یا اینکه فرض کنید مدار شما بخواهد دستورات خود را با استفاده از اینترنت از یک سرور دریافت کنید در این صورت ماژول wiFi ی شما باید بتواند شبیه یک کاربرعمل کند و با ارسال درخواست خود به سرور دستورات لازم را دریافت نماید.خوشبختانه ماژول ESP8266 از پس همه این وظایف برمی آید. اگر بخواهیم شناخت کامل تری از ماژول ESP8266 داشته باشیم به ویژکی هایی که در زیر ارائه شده توجه کنید:

این مطلب را از دست ندهید  راه اندازی استپر موتور با avr

-ماژول ESP8266 داری یک میکروکنترلر 32بیتی داخلی با حافظه فلش 4 تا 32Mbit و سرعت 80 MHZ است.

-این ماژول قابلیت برنامه ریزی مجدد دقیقا مشابه یک میکروکنترلر را دارد.

-ورژن های مختلفی از این ماژول در بازار وجود دارد (تقریبا 14 نوع ) که بسته به ورژن آن از ارتباطات جانبی متنوع ازجمله پین های ورودی خوروجی(GPIO) , ارتباط سریال(UART) ,SPI,I2C و..پشتیبانی می کنند.

– ماژول ESP8266 هم در مد Station و هم در مد Access Point قابل پیکربندی است.

در این آموزش ما قصد داریم نحوه راه اندازی ورژن 12 این ماژول را به شما آموزش دهیم.روش کار برای تمامی ورژن ها تقریبا مشابه است. همانگونه که در شکل زیر می بینید این ماژول دارای 16 پین است.

ESP8266_2

توصیف پایه ها:

-TX /RX:این دو پین جهت ارتباط سریال UART بادستگاه های خارجی است.

-GPIO4/GPIO5/GPIO2/GPIO15/GPIO16/GPIO14/GPIO12/GPIO13/GPIO0 :این پین های ورودی و خرجی ماژول است . می توان مستقیما این پین ها را یک کرد و یا از بیرون مقدار پین را خواند.همچنین از پین های GPIO0 و GPIO15 برای ورود به حالت برنامه ریزی استفاده می شود.

-CH_PD:این پین برای فعال کردن ماژول استفاده می شود و باید یک باشد.

-ADC:از این پین برای خواندن یک مقدار آنالوگ استفاده می شود.

-RESET:از این پین برای ریست کردن ماژول استفاده می شود.در حالت عادی این پین با یک مقاومت 10K به VCC وصل شود.

-VCC:پین تغذیه ماژول است که باید به ولتاژ 3.3 ولت وصل شود.

نکته مهم:برای تغذیه این مدار حتما باید از ولتاژ 3.3ولت استفاده شود.در صورت استفاده از ولتاژ 5 ولت قطعا ماژول را خواهد سوزاند.همچین پین های ورودی نیز تحمل ولتاژ 5 ولت را ندارند.

-GND:این پایه باید به GND مدار وصل شود.

وقتی این ماژول را از بازار می خرید دو حالت وجود دارد:

1-این ماژول از قبل برنامه ریزی اولیه شده است.

2-ماژول هیچ برنامه ای را در حافظه خود ندارد.

برنامه ای که به صورت پیش فرض بر روی این ماژل قرار دارد موسوم به برنامه AT Command است.این برنامه به شما اجازه می دهد که با ارسال دستوراتی در قالب رشته های ASCII بتوانید ماژول خود را پیکر بندی نمایید و داده ای دریافتی ماژول را بخوانید.در مورد این دستورات به طور مفصل بحث خواهیم کرد.

این مطلب را از دست ندهید  ساخت لوکس متر با AVR و سنسور BH1750

چگونه بفهمیم که این ماژول دارای برنامه است؟برای پی بردن به این مسئله باید ابتدا مدار را از لحاظ سخت افزاری راه اندازی نماییم.همانطور که در توصیف پین های ماژول گفتیم ,این ماژول از یک ارتباط سریال (UART) بهره می برد.این درگاه درواقع همان درگاه ارسال و دریافت دستورات AT است.در واقع باید این درگاه را به پورت سریال میکرو کنترلر یا به پورت سریال کامپیوتر وصل نمود تا بتوان رد و بدل شدن اطلاعات را مشاهده کرد.برای این منظور من به شما پیشنهاد می کنم از یک مبدل USB به سریال که سازگار با ولتاژ 3.3ولت است استفاده نمایید.به طور مثال می توانید از مبدل PL2303 و یا CP2102 استفاده نمایید.

PL2303

اگر میخواهید مستقیما آن را به پورت سریال کامپیوتر وصل نمایید حتما از یک تقسیم ولتاژ روی پایه TX استفاده نمایید.مدار را مانند شکل زیر ببندید.

بهتر است برای تغذیه مدار خود از یک منبع تغذیه خارجی و یک رگولاتور مانند شکل زیر استفاده نمود.

sch1

مبدل usb را به پورت usb وصل کنید.البته توجه کنید که باید درایور مربوط به مبدل را از قبل نصب کرده باشید.برنامه مربوط به ترمینال را اجرا کنید.برنامه های زیادی برای کار با پورت سریال در سطح اینترنت وجود دارد که به دلخواه یکی از آنها را می توانید استفاده نمایید.یکی از این برنامه ها را از لینک زیر می توانید دانلود کنید.

دانلود برنامهterminal.exe

تنظیمات ارسال و دریافت را به صورت زیر انجام دهید:

baud rate:9600

stop bit : 1

parity : none

data bit : 8 bit

با اتصال به پورت سریال و ریست ماژول عبارت AT را تایپ کنید و دکمه Send را بزنید.باید عبارت OK را دریافت کنید .اگر عبارت دریافتی ناخوانا بود مقدار BAUD RATE را به 115200 تغییر دهید و دوباره این کار را تکرار کنید .اگر عبارت OK را مشاهده کردید به این معنی است که ماژول شما از قبل برنامه ریزی شده است و اگر هیچ عبارتی دریافت نکردید , ماژول شما خالی از برنامه است و باید خودتان آن را پروگرم کنید.(ماژولی که من استفاده کردم اینگونه بود.)

HYPERTERMINAL

خوب شاید از خودتان بپرسید که چگونه باید ماژول ESP8266 را پروگرم کنید.در ادامه ما اینکار را به شما یاد خواهیم داد.روش پروگرم کردن این ماژول بسیار ساده است.اگر به ورژن های مختلف این قطعه نگاه کنید متوجه می شوید که همه آنها دارای پین های مشترکی هستند از جمله RESET – GPIO0 – CH_PD – VCC/GND.

این مطلب را از دست ندهید  مدار تغذیه ماژول sim900

Esp8266 قادر است تا فایل برنامه خود را از طریق پورت سریال دریافت نماید.برای ورود به مد برنامه ریزی باید پین GPIO0 و GPIO15را به GND وصل کنیم.وقتی این پین ها را به GND وصل کنیم و و دکمه ریست را فشار دهیم , ماژول وارد مد برنامه ریزی می شود ومنتظر دریافت فایل باینری از طریق پورت سریال می شود. البته در ورژن های پایین تر تنها اتصال پین GPIO0 به GND برای ورود به مد برنامه ریزی کفایت می کند. اما چگونه این فایل را به ماژول انتقال دهیم.برنامه هایی وجود دارند که می توانند این کار را انجام دهند.

در زیر لینک دانلود دوتا از برنامه ها قرار داده شده است.می توانید آنها را دانلود کنید.

ESPFLASHER

دانلود برنامهESP8266Flasher

 

 

ESP_FLASHER1

esp8266_flasher.exe

همچنین دو نسخه از فایل باینری برنامه که مربوط به برنامه AT COMMAND است نیز می

توانید از لینک زیر دانلود کنید:

ESP_8266_BIN0.92.bin

v0.9.2.2 AT Firmware.bin

 

پس از دانلود فایل های فوق برنامه esp8266_flasher.exe را باز کنید و درحالی که ماژول را در مد برنامه ریزی قرار داده اید یکی از فایل های باینری را مطابق شکل زیر انتخاب کنید و دکمه download را بزنید.

ESP_FLAHER2

اگر با پیغام connection failed روبرو شدید پورت com را به طور صحیح انتخاب کنید یا از GND بودن پایه GPIO0 مطمئن شوید و دکمه ریست را یک بار دیگر فشاردهید.

منتظر بمانید تا فایل به طور کامل به حافظه ماژول انتقال یابد.پس از اتمام عملیات پین GPIO0 را از GND خارج کنید.حال برنامه ترمینال را باز کنید و پس از اتصال به ماژول ,یک بار دیگر عبارت AT را به ماژول ارسال کنید.اگر باز با عبارت درهم ریخته مواجه شدید BAUD RATE را به 115200 تغییر دهید و دوباره امتحان کنید در این صورت باید عبارت OK را مشاهده نمایید.

AT COMMAND

تا این مرحله موفق به برنامه ریزی ماژول خود شده اید .همان گونه که گفتیم شما با استفاده ازاین برنامه ای که به ماژول خود داده اید می توانید با ارسال دستورات AT ,ماژول esp8266 را پیکربندی بندی و مورد استفاده قرار دهید .در پست های بعدی در مورد AT Command ها به طور کامل صحبت خواهیم کرد و پروژه کنترل LED با استفاده از گوشی موبایل را آموزش خواهیم داد.

نظر یادتون نره!!!

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

اکبر محمدی

86 دیدگاه

  • سلام من یه کاری میخوام با نرم افزار اردیونو انجام بدم لطفا راهنماییم کنید، میخوام تو فلش این ماژول چندتا عکس بریزم و توسط وای فای ارسال کنم تو براوزر،اما نمیدونم چطور عکس بریزم تو فلش ماژول، ممنون میشم راهنمایی کنید

  • سلام. ممنون از مطالب مفیدتون. یه سوال داشتم اینکه من وقتی ماژول رو برنامه ریزی میکنم بعدش دستور AT که میدم هیچ جوابی نمیده تا اینکه ریستش میکنم فقط دستور رو برام اکو میکنه.در ضمنGPIO0 رو هم از حالت GND خارج میکنم ولی GPIO15 رو کاری نمیکنم باهاش. ممنون میشم اگه راهنماییم کنید

  • با سلام خدمت دوستان
    در ابتدا باید از وب سایت بی نظیر دیجی نیک تشکر کنم که مطالبش واقعا متمایز هست.
    برای دوستانی که موفق به راه اندازی ماژول نشدند چند نکته رو لحاظ کنید. حتما درست میشه
    من حدود ۳ ماهه درگیر این ماژول هستم و دو سه تا ماژول هم خراب کردم!
    ۱- ماژول ESP8266-01 نیازی به فریم ور ندارد و نسخه اصلی AI-THINKER بر روی اون به طور پیشفرض نصب هست اما باودریت اون ۱۱۵۲۰۰ هستش. به هیچ وجه فرمت نکنید چون فریم ور اصلی واقعا عالیه
    ۲- اکثر ماژول های ESP8266-07 (مثل تصویر سایت) و تا اونجا که من دیدم خالی هستش! با یک مبدل USB2SERIAL مثل CH340 یا PL2303 (من با هردو امتحان کردم جواب داده) می شه ماژول رو برنامه ریزی کرد. از نرم افزار دوم استفاده کردم و فایل AT-FRIMWARE رو نصب کردم. در پایان خطایی که مبنی بر Cannot leave flashmode داده میشه رو نادیده بگیرید.
    فریم ور مذکور با باودریت پیش فرض ۹۶۰۰ کار می کنه. در نسخه ESP8266-07 باید پایه EN یا CH_PD به VCC وصل بشه و بعد از خروج از حالت برنامه ریزی GPIO-15 باید به GND متصل بماند. (نکته : برای برنامه ریزی این ماژول باید حتما GPIO-01 و GPIO-15 به زمین وصل بشه و سپس ماژول ریست شود تا به حالت برنامه ریزی برویم) پس از پایان برنامه ریزی برای جلوگیری از Latch شدن پایه GPIO-01 آن را با مقاومت ۱۰K پول آپ کنید. همینطور پایه Reset را.
    نکته خاص دیگری ندارد. فقط در صورت استفاده از مبدل PL2303 حتما تقسیم مقاومتی لحاظ شود در غیر این صورت پایه های دیتای ماژول آسیب خواهد دید.
    موفق باشید

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