دانشجوی مهندسی برق و علاقه مند به رباتیک و اینترنت اشیاء
آشنایی با سخت افزار ESP8266
سلام
در قسمت دوم از سری ماژول ESP درمورد ویژگی های سخت افزاری این برد صحبت میکنیم. پشنهاد میکنم حتما قسمت اول رو مطالعه کرده باشید.
هسته برد های ESP8266
همون طور که در قسمت قبل دیدیم برد های ESP دارای آی سی ESP8266EX هستند از ویژگی های این آی سی موارد زیر رو بررسی میکنیم:
پردازنده این آی سی یک میکروپروسسور 32 بیتی به نام Tensilica L106 با معماری ARM هست و در حالت عادی با ولتاژ 2.5 تا 3.6 ولت تغذیه میشه و جریان میانگین 80 میلی آمپر میکشه.
حداکثر فرکانس کاری این میکروپروسسور 160MHz هست! (بازم برین با آردوینو 20 مگی کد بزنید) که در حالت پیشفرض با 80 مگاهرتز به فروش میرسه.
این پروسسور فاقد حافظه فلش داخلی هست و باید از حافظه فلش اکسترنال که با باس SPI به اون وصل میشه استفاده کنید. (نگران نباشید شما نیاز نیست اینکارو بکنید و فقط ماژول رو میخرید) از نظر تئوری هم تا 16MB از حافظه فلش پشتیبانی میکنه.
شبکه وای فای این آی سی 2.4GHz هست و از استاندارد b/g/n 802.11 پشتیبانی میکنه اما همون طور که گفتم فقط 2.4 گیگاهرتزش! همچنین از لحاظ تئوری میتونه تا 72.2 مگابیت بر ثانیه نرخ دیتا داشته باشه. (تئوری!)
در حالت های فقط اکسس پوینت - فقط ایستگاه (Station) و هم اکسس پوینت و هم استیشن میتونه فعالیت کنه.
برای ارتباط فیزیکی با پایه های اون هم از UART/ SDIO/ SPI/ I2C/ I2S/ IR Remote Control/ GPIO/ ADC/ PWM میتونید استفاده کنید. (نترسید کم کم یادشون میگیرید)
این از اصن قضیه بریم سراغ ماژول ها!
ماژول های ESP8266
ماژول های زیادی از esp وجود دارند و فرقشون توی تعداد پایه ها، نوع آنتن وای فای، میزان حافظه فلش و تعداد LED های روی برد هست. اینجا بعضی از ماژول ها که خیلی معروف هستند و در بازار ایران موجود هستند رو بررسی میکنیم:
ESP-01
ساده ترین ماژول ESP8266 این ماژول هست و فقط 8 تا پایه خارجی داره در دو مدل معمولی و S تولید شده، در مدل معمولی 512KB حافظه فلش وجود داره و در مدل S یک مگابایت.
ماژول ESP-01 دارای دو تا پایه GPIO، آنتن روی PCB و یک LED و پایه های Tx, Rx هست. برای پروژهای کوچیک مثل قطع و وصل کردن یک رله و یا جایی که یک میکروکنترلر به جز ESP داریم استفاده میشود و با پایه های Tx, Rx (پایه های سریال) میکروکنترلر دیگر ارتباط برقرار می کند.
در تصویر بالا کیت ESP-01 و رله رو مشاهده می کنید و میتونید با این کیت از طریق وای فای یک لامپ (یا هر چیز دیگه) رو خاموش روشن کنید.
برد های آماده زیادی برای این ماژول هست مثل مدل زیر که میتونید با استفاده از اون بدون هیچ دردسری ESP رو پروگرم کنید و در پروژه هاتون استفاده کنید.
ESP-07
اگر نیازمند آنتن خارجی هستید ESP07 گزینه خیلی خوبیه و پایه های آزاد بیشتری هم دارد.
این مدل هم در دو مدل معمولی و S وجود داره. در مدل معمولی آنتن وای فای به صورت سرامیکی و خارجی وجود داره (برد های آبی رنگ) ولی در مدل s (برد مشکی) فقط آنتن خارجی پشتیبانی میشه در این مدل وای فای نیز تقویت شده.
ESP-12
این ماژول در چهار مدل معمولی و E و F و S تولید شده که به همین ترتیب مدل S وای فای بهتر و تقویت شده تری دارد. (اصن به چشم نمیاد که)
ماژول ESP12 دارای 4 مگابایت حافظه فلش هست و در برد های NodeMCU استفاده شده است.
ماژول ESP12 رو بیشتر بررسی کنیم
خب همون طور که توی تصویر بالا می بینید ESP12 کلا 22 پایه داره. پایه شماره 8 و 15 به ترتیب VCC و GND هستند که باید به پتانسیل های 3.3 و صفر ولت متصل شوند. فقط این دو پایه کافی نیست برای روشن شدن ESP، پایه شماره 3 (CHIP_EN) هم باید به پتانسیل بالا وصل بشه. در اصل باید با یک مقاومت (ترجیحا 12 کیلواهم) Pull-Up بشه.
الان ESP روشن شد ولی کاری واسه شما نمیکنه :| چون باید بهش بگید که روی کدوم Mode میخواهید کار کنه! همون طور که سمت راست و پایین تصویر میبینید پایه های GPIO2 و GPIO15 به ترتیب باید به Vcc و Gnd وصل بشن! (اتصال این ها هم ترجیحا با مقاومت 12 کیلو).
و GPIO0 تعیین کننده وضعیت مود پروگرم یا اجرا برنامه است. اگر این پایه ولتاژ صفر ولت داشته باشد در مود پروگرم یا Flash است و اگر ولتاژ 3.3 داشته باشد در مود اجرا برنامه قرار میگیرد. (مود های دیگه ای هم وجود داره که فعلا کاری نداریم باشون) معمولا این پایه رو با یک مقاومت 12 کیلو پول آپ میکنن و زمانی که نیاز به پروگرم شد توسط یک سوئیچ اون پایه رو زمین میکنند.
دقت کنید که برای ریست (با هر منبع ریستی)، بوت (اتصال تغذیه) و بیدار شدن ESP از خواب حتما حتما باید بر اساس مود عملکردی سه پایه GPIO های 0، 2 و 15 به پتانسیل صحیح وصل شوند!
خب دید که چقدر دردسر داره ماژول های ESP؟ برای همین استفاده از برد های آماده راحت تره (میتونید با آی سی هایی مثل CH340 و با پایه DTR اون و یه تعداد مقاومت این کارا رو انجام بدید ولی خب برد آماده اش هست دیگه!
پایه RESET هم که دیگه بلدید برای ریست کردن استفاده میشه. این پایه از داخل ماژول پول آپ شده ولی من برای احتیاط از خارج هم پول آپ میکنم. خازن نویز گیر فراموش نشه!
مدار کلی راه اندازی به صورت زیر میشه:
برای پروگرم کردن کافیه پایه های Rx, Tx و زمین رو به مبدل USB به سریال وصل کنید و زمانی که کلید فلش رو نگه داشتین( GPIO2 زمینه) برد رو ریست کنید. (مبدل USB to Serial رو در آخر همین پست معرفی میکنم)
خب بقیه پایه ها! ESP12 چهار تا پایه PWM داره (pwm یه جور مدلاسیونه که میتونید با اون پالس با پهنای دلخواه درست کنید) پایه های شماره 5،6،16 و 19 و با این پایه های میتونید ولتاژ متغیر تولید کنید.
پایه شماره 2 هم ADC هست و به مبدل آنالوگ به دیجیتال وصله، یعنی یک ولتاژ آنالوگ رو میتونید بخونید!
پایه های دیگه هم داره که مهم ترین هاش رو دیدم بقیه رو در قسمت های بعدی خواهیم دید.
پی نوشت: مبدل USB به سریال
خب همتون میدونید USB چی هست. کار این مبدل اینه که پروتکل Uart به USB تبدیل کنه.
پروتکل Uart یا همون سریال خودمون دوتا خط ارتباطی داره یکی Tx برای ارسال و یکی Rx برای دریافت که باید به صورت برعکس به بین مبدل و ESP وصل بشن( یعنی Tx ماژول به Rx مبدل!). گراند مشترک هم فراموش نکنید!
حتما به ولتاژ های منطقی دقت کنید. مبدل باید از 3.3 ولت پشیبانی کنه و درایور اون رو نصب کرده باشید.
با آردوینو هم میشه مبدل یو اس بی به سریال درست کرد که زیاد واردش نمیشم با جستوجو در اینترنت میتونید روشش رو یاد بگیرید. ( هم با برنامه نویسی میشه و هم با اتصال کوتاه کردن پایه ریست میکرو اصلی آردوینو یا کلا جدا کردن میکرو از روی برد)
خیلی طولانی شد!
اگر روی خواستید از ماژول ESP استفاده کنید نه از بورد های آماده، پیشنهاد من این سه مورد بالاست که البته هر کدوم جزئیات مخصوص به خودشون رو دارند. ولی اگر از برد های آماده و بدون دردسر رو ترحیج میدید در قسمت سوم با NodeMCU و تا حدی Wemos D1 mini آشنا میشیم.
مطلبی دیگر از این انتشارات
دانلود و پخش جلسات BBB با سرعت 2.5x
مطلبی دیگر از این انتشارات
رزبری پای پیکو (Pico) ; ورود رزبری پای به کلاس میکروکنترلر ها
مطلبی دیگر از این انتشارات
آردوینو(Arduino) ؛ آچار فرانسه رباتیک!!