ماژول WiFi بر اساس ESP8266

در این مقاله قصد داریم شما را با میکروکنترلر ESP8266 شرکت Espressif آشنا کنیم. این تراشه در مقایسه با میکروکنترلرهای 8 بیتی مانند Atmega328 (یکی از رایج‌ترین‌ها در آردوینو) با SRAMبه میزان 2KBو حافظه فلش 32KBدارای  32KB حافظه RAM و 512KBحافظه فلش ارائه می‌کند که البته قابلیت ارتقا تا 4 مگابایت را نیز دارد. برخی از ویژگی های میکروکنترلر ESP8266 به شرح زیر است:

معماری RISC  32بیتی؛

پردازنده 80 مگاهرتز (تا 160 مگاهرتز قابل ارتقا است).

ولتاژ عملیاتی 3 ولت؛

32 کیلوبایت حافظه رم برای دستورالعمل ها؛

96 کیلوبایت حافظه رم برای داده ها؛

64 کیلوبایت حافظه ROM برای بوت شدن؛

پیش نمایش حافظه فلش توسط SPI (512 کیلوبایت تا 4 مگابایت)؛

استاندارد بی سیم 11 b/g/n

حالت های عملیاتی: STA/AP/STA+AP

امنیت WEP، WPA، TKIP، AES؛

پروتکل TCP/IP داخلی؛

بسته بندی QFN با 32 پایه ای 

تجهیزات جانبی اصلی: UART، GPIO، I2C، I2S، SDIO، PWM، ADC و SPI.

معماری با پیش بینی عملکرد صرفه جویی در انرژی

وای-فای (Wi-Fi) یک ارتباط بیسیم در شبکه محلی تحت استاندارد IEEE802.11b می­باشد. این ارتباط بیشتر بر پایه شبکه اینترنت بیسیم بوده و بسیاری از تجهیزاتی که مجهز به وای فای هستند را به اینترنت متصل می­کند. در این استاندارد فرکانس کار 4/2 گیگاهرتز بوده و سرعت انتقال داده­ها 11Mbps می­باشد. استاندارد وای فای دیگری به نام IEEE802.11n وجود دارد که سرعت را تا 200Mbps افزایش داده و مبتنی بر سیستم­های چند آنتنی MIMO، استفاده از دو فرکانس 4/2 و 5 گیگاهرتز و برخی تکنیک­های خاص در دسترسی محیط (MAC) می­باشد. برد ماژول­های وای­فای تا 20 متر است و بر روی بسیاری از تجهیزات خانگی و صنعتی از جمله موبایل­ها، تبلت­ها، کامپیوترها و تجهیزات کنترل از راه دور قابل نصب هستند. یکی از مرسوم­ترین ماژول­های وای فای مورد استفاده برای کنترل تجهیرات و اینترنت اشیا، ماژول ESP8266 است. این ماژول دارای پروتکل ارتباطی TCP/IP است. تراشه ESP8266 در یک خانواده بزرگ از سری ESP-01 تا ESP-12 و NodeMCU به­کار گرفته شده است ولی از نظر آنتن، اندازه، تعداد پایه ها و اندازه حافظه متفاوت هستند.

رایج­ترین این ماژول­ها که می­توان آن­ها را در بازار یافت، شامل ماژول­های ESP-01 (بدون شیلد و آنتن روی بورد)، ESP07 (با شیلد و سوکت آنتن) و ESP-12 (دارای شیلد و آنتن روی بورد) می­باشد. ولتاژ کاری این ماژول­ها 3/3 ولت بوده و به کمک ارتباط UART می­توانند با میکروکنترلها از جمله آردوینو اتصال یابند. این ماژول­ها دارای FirmWare (ثابت افزار) داخلی بوده و با فرامین AT قابل کنترل هستند. همچنین SDKهایی وجود دارند که می­توانند نرم­افزار داخلی آن را تغییر و یا به­روزرسانی کنند و پایه­های بدون کاربرد آن را برای هدف خاصی برنامه ریزی کنند. 

ماژول WiFi به نام ESP-01

اکنون، برای شروع کار به معرفی ESP-01 می­پردازیم. پایه­بندی این ماژول در شکل زیر نشان داده شده است.

در این ماژول پایه GPIO0 هم به منظور ورودی/خروجی و هم برای رفتن به حالت برنامه­ریزی تراشه داخلی کاربرد دارد. همچنین CH_PD به معنای فعال­ساز تراشه بوده و معمولاً به 3/3 ولت متصل    می­شود. نکته مهم اینکه ماژول ESP-01 دارای هیچ رگولاتوری نبوده و از طرفی با ولتاژ 5 ولت نیز سازگار نمی­باشد. بنابراین بایستی برای تغذیه آن ولتاژ 3/3 ولت مهیا گردد. همانطور که از شکل می بینید این ماژول دارای دو پین دیجیتالی است.

ماژول ESP-03

این نسخه با یک آنتن سرامیکی، هفت GPIO، یک جفت برای UART، ارائه می شود. 

ماژول ESP-05

هیچ پایه ای به عنوان GPIO در دسترس نیست، در واقع حتی یک آنتن داخلی هم ندارد.

ماژول ESP-07

ESP-07 دارای آنتن سرامیکی و کانکتور خارجی است. شباهت زیادی به ESP-03 دارد، اما یک پین آنالوگ را در دسترس قرار می دهد.

همچنین یک پوشش فلزی از مدار در برابر تداخل مغناطیسی محافظت می کند.

ماژول ESP-12E

در مقایسه ماژول ESP-01 از امکانات بیشتری برخوردار است. بطور نمونه، علاوه بر ارتباط UART، این ماژول مجهز به ارتباط SPI نیز می­باشد. همچنین تعداد پایه­های ورودی/خروجی آن خیلی بیشتر است. شکل 8-28 پایه­بندی این ماژول را نشان می­دهد.

برای اینکه ماژول ESP-12E را به صورت UART استفاده کنیم، لازم است تا پایه­های GPIO2، GPIO5 و GPIO15 را به ترتیب به 3/3، 3/3 و زمین متصل کنیم. همچنین پایه EN نیز به 3/3 ولت متصل می­شود.

آنتن داخلی، یازده پایه GPIO، UART، SPI ، یک پین ADC از ملحقات برد است. برد با 3.3 ولت کار می کند، اما ADC آن صفر تا 1 ولت است. 

ماژول NodeMCU

ماژول NodeMCU دارای ESP-12s است همانطور که Arduino UNO دارای ATMEGA328 است. یک برد با پایه های مشابه با ESP-12 ، یک رگولاتور 3.3 ولت برای تغذیه ماژول (پایین VIN می‌تواند 5 ولت دریافت کند) و یک رابط UART – USB که nodeMCU را به ماژول پلاگین و play تبدیل می‌کند.

روش های مختلفی برای برنامه نویسی ESP8266 وجود دارد. روش‌های مختلف، زبان‌های مختلف، از جمله رایج‌ترین آنها، ما ESP-IDF (برنامه‌نویسی رسمی سازنده C) و سایر موارد توصیه شده توسط سازنده را داریم: NodeMCU (Lua Script)، آردوینو (C++)، MicroPython ، همچنین امکان کار با آن در PlatformIO نیز وجود دارد.