آموزش و راه اندازی محصولاتاینترنت اشیاء – IOTتوسعه دانش

قسمت اول : آموزش کامل راه اندازی ماژول ESP8266

یکی از معروفترین وارزانترین آی سی های دارای پروتکل شبکه Wifi تحت استاندارد IEEE802.11b/g/n , چیپ ESP8266 ساخت شرکت چینی Espressif system می باشد که قابلیت ارتباط سریال توسط میکروکنترلر را دارد. این چیپ در ساخت ماژول های خانواده ESP توسط تولید کننده دیگری به نام AL-THINKER به کار رفته است.

پروتکل مورد استفاده برای ارسال و دریافت دیتا در این ماژول ها TCP/IP  است. امکان ارتباط با وسایل جانبی تحت پروتکل سریال UART درتمامی خانواده های این ماژول ها وجود دارد. بنابراین دوپایه RX و TX به ترتیب برای دریافت و ارسال دیتا به کار می رود که تحت عنوان AT command این کار صورت می گیرد.

ویژگی ماژول ESP8266-01

این ماژول یکی از معروف ترین ماژول های وایفا است که سایز کوچکی در ابعاد 14.3 * 24.8 میلی متر دارد. این ماژول قیمت پایین تری نسبت به سایر ماژول های ESP دارد. در این ماژول دو پایه GPIO0 و GPIO2 برای فرمان دادن و برنامه نویسی در دسترس کاربر قرار گرفته است. از معایب این ماژول می توان به چینش پایه های آن اشاره کرد که قابل نصب بر روی بردبرد نمی باشد.

تغذیه ماژول ESP8266-01

این ماژول با ولتاژ 3.3 ولت کار می کند. همچنین سطح ولتاژ برای ارتباط UART باید 3.3 ولت باشد تا به ماژول آسیب نرسد. به این منظور می توانید از مبدل های USB به سریال موجو در بازار استفاده کنید.

نکته : دقت کنید ماژول های مبدل USB به سریال در بازار دارای ارتباط سریال با سطح ولتاژ 3.3 ولت می باشند.

پایه های ماژول ESP8266-01

این ماژول دارای 8 پایه است که وظایف آن ها به شرح زیر است :

ESP8266-01S-PinOut

VCC و GND : تغذیه ماژول که 3.3 ولت می باشد.

RXD و TXD : پایه های سریال ماژول که جهت ارسال و دریافت دستورات از آن استفاده می شود.

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

RST : پایه ریست ماژول، برای ریست کردن ماژول باید این پایه را زمین کرد.

GPIO0 : این پایه در حالت عادی PullUp است و زمانی که بخواهیم Firmware ماژول را آپدیت کنیم باید این پایه را به زمین متصل کنیم. همچنین می توان با برنامه نویسی از این پایه به عنوان خروجی استفاده کرد.

نکته مهم : پایه GPIO0 در این ماژول نمی تواند نقش ورودی به خود بگیرد. زیرا صفر بود این پین حین روشن شدن ماژول باعث می شود ماژول به مد پروگرم برود.

GPIO2 : این پایه در حالت عادی PullUp است و همچنین می توان با برنامه نویسی از این پایه به عنوان I/O استفاده کرد.

مدار راه انداز ماژول ESP8266-01

ESP01-Circuit

مدهای کاری ماژول ESP8266

ماژول ESP8266 در سه مد قابل راه اندازی است :

مد Station : این مد برای اینترنت اشیاء استفاده می شود که پس از تنظیمات لازم ماژول بصورت خودکار مودم ADSL را پیدا کرده و خود را به شبکه جهانی اینترنت متصل می کند.

مد Access Point : در این مد می توان با موبایل یا تبلت ماژول را جستجو کرد و به آن متصل شد و عموماً برای ساخت ریموت های تنها و بدون نیاز به اینترنت بکار می رود.

مد Both : در این مد ماژول همزمان در دو مد بالا کار می کند.

معرفی دستورات AT+ Command

برای ارتباط با ماژول های ESP باید فرمان هایی با قالب مشخص به ماژول ارسال کنیم که به این مجموعه فرامین AT Command می گویند. در انتهای دستورات باید کاراکتر Enter و Line ارسال شود تا ماژول دستور مورد نظر را اجرا کند.

نکته : کد اسکی کاراکتر Enter در مبنای Hex برابر 0x0D و کد اسکی کاراکتر Line در مبنای Hex برابر 0x0A می باشد.

دستورات را می توان به سه دسته کلی تقسیم کرد :

AT-Command-ESP8266

در ادامه آموزش در مورد این دستورات توضیحاتی ارائه خواهد شد. همچنین می توانید با دانلود این فایل pdf همه دستورات مربوط به ماژول ESP8266 را مطالعه کنید.

ارتباط با ماژول ESP8266

جهت ارتباط با ماژول از نرم افزارهای ترمینال استفاده می شود. نرم افزارهای ترمینال متفاوتی وجود دارند که ما در اینجا از نرم افزار HTerm استفاده می کنیم. محیط نرم افزار و تنظیمات مربوط به آن را در تصویر زیر مشاهده می کنید.

HTerm-Setting

نکته : در قسمت ارسال اطلاعات کافیست تا AT Command مورد نظر را تایپ کرده و کلید اینتر را فشار دهید تا اطلاعات به ماژول ارسال شود.

راه اندازی ماژول ESP8266  به صورت سرور

در این قسمت ماژول را به صورت Server (سرویس دهنده WIFI) راه اندازی خواهیم کرد و توسط موبایل به آن وصل می شویم و به ارسال و دریافت دیتا می پردازیم. برای ارتباط با ماژول ESP در دستگاه های اندرویدی نرم افزارهای زیادی وجود دارند که ما در این آموزش از نرم افزار WIFI Controller  استفاده کردیم.

برای راه اندازی ماژول در مد Server کافی است دستورات زیر را به ترتیب به ماژول ارسال کنیم :

دستور AT :

از این دستور جهت تست صحت کارکرد ماژول استفاده می شود. که در صورت سالم بودن ماژول OK بر می گرداند.

ESP01S-AT

دستور AT+CWMODE :

از این دستور جهت تنظیم مد کاری ماژول استفاده می شود. همانطور که گفته شد ماژول ESP8266 در سه مد کار می کند :

1- مد Station : برای رفتن به این مد باید دستور AT+CWMODE=1 را به ماژول ارسال کنیم.

2- مد Access Point : برای رفتن به این مد باید دستور AT+CWMODE=2 را به ماژول ارسال کنیم.

3- مد Both : برای رفتن به این مد باید دستور AT+CWMODE=3 را به ماژول ارسال کنیم.

برای اینکه قرار است ماژول را به عنوان Server راه اندازی کنیم می توانیم از مدهای 2 و 3 استفاده کنیم.

ESP01S-Mode-2

دستور AT+CIFSR :

از این دستور جهت خواندن IP ماژول استفاده می شود. از این IP زمانی که بخواهیم با موبایل به ماژول ESP متصل شویم نیاز پیدا می کنیم.

ESP01S-CIFSR

دستور AT+CWSAP :

با ارسال این دستور طبق فرمت زیر می توان اطلاعات اتصال به ماژول را خواند.

ESP01S-CWSAP-GET

فرمت و مفهوم پاسخ ارسالی توسط ماژول به این صورت است که :

ESP01S-CWSAP-Responce

SSID یا اسم ماژول : ESP01

PWD یا پسورد ماژول : 12341234

CHL یا ایدی کانال : 1

ECN یا پروتکل رمز گذاری : 4 ( WPA_WPA2_PSK )

برای تغییر اطلاعات اتصال ماژول می توان از فرمت زیر استفاده کرد :

ESP01S-CWSAP-SET

دستور AT+CIPMUX :

از این دستور جهت تعیین نوع اتصال به ماژول استفاده می شود. که این اتصال می تواند بصورت Single Connection یا بصورت Multiple Connection باشد. چون ما قرار است ماژول را در مد Server راه اندازی کنیم، باید از مد Multiple استفاده کنیم.

ESP01S-CIPMUX

دستور AT+CIPSERVER :

از این دستور جهت بردن ماژول به مد Server استفاده می شود.

ESP01S-CIPSERVER

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

برای اتصال به ماژول ابتدا WIFI موبایل را روشن کرده و به ماژول ESP وصل می شویم.

Type-Password

Show-Connect

بعد از اتصال به ماژول ESP، نرم افزار WIFI Controller را اجرا می کنیم. حال با وارد کرد IP و Port شروع به برقراری ارتباط و ارسال دیتا می کنیم.

WIFI-Controller-Add

WIFI-Controller-Created

WIFI-Controller-Connected

همان طور که در تصویر زیر مشاهده می کنید، بعد از برقراری ارتباط با ماژول، ماژول دستور 0 , CONNECT را ارسال می کند که عدد 0 نشانگر ID موبایل می باشد.

Connect-Divece

در ادامه با نوشتن متن مورد نظر و زدن دکمه Send اطلاعات را به ماژول ارسال می کنیم.

WIFI-Controller-Send

Recive-Data

همانطور که مشاهده می کنیم اطلاعات دریافتی از سمت ماژول به فرمت زیر است :

+IPD,id,length:Receive Data

که شامل ID ، طول دیتا و اطلاعات دریافتی است.

ارسال دیتا از ESP ( سرور ) به موبایل ( کلاینت )

به این منظور از دستور AT+CIPSEND استفاده می شود که فرمت آن به صورت زیر است :

AT+CIPSEND=id,length

در این دستور ID شماره اتصال و Length هم تعداد کارکترهایی است که قرار است به ماژول ارسال کنیم. بعد ارسال این دستور منتظر پاسخ ماژول می مانیم سپس اطلاعات خود را ارسال می کنیم.

برای مثال ما قصد داریم متن RoboticNGO را به کلاینت یا موبایل ارسال کنیم به صورت زیر عمل می کنیم :

Send-Data-CIPSEND

Send-RoboticNGO

Recive-Data-Mobile

کد نویسی با کامپایلر کدویژن با هدف ایجاد Server

برای راه اندازی راحت ماژول ESP و انجام تنظیمات مربوط به مد Server  تیم فنی پژوهشگران برنامه ای با کامپایلر کدویژن آماده کرده است که توسط آن براحتی می توانید ماژول را کانفیگ کرده و با آن ارتباط برقرار کنید.

قابلیت های برنامه

  1. تنظیم IP ماژول
  2. تنظیم SSID ماژول
  3. تنظیم پسورد ماژول
  4. انجام همه مراحل پیکربندی ماژول
  5. دریافت و ارسال اطلاعات

توابع نمونه ای که در محیط کدویژن نوشته شده اند :

char ESP_EchoOFF(void);
char ESP_AT(void);
char ESP_WifiMode(char Mode);
char ESP_SetIP_ModeAP(void);
char ESP_ConfigSoftAP(void);
char ESP_EnMulConnection(char Mode);
char ESP_CreateServer(void);
char ESP_StartServer(void);
char ESP_SendData(char Id,char Len,flash char *str);

دوستان عزیز به پایان این آموزش رسیدیم، در ادامه آموزش ها قصد داریم ماژول را در مد کلاینت ، اتصال ماژول به روتر وایفا و همچنین کدنویسی مستقیم بر روی ماژول های ESP را آموزش دهیم. لطفا جهت بهتر شدن آموزش ها و دادن فیدبک به ما نظر خود را در قسمت دیدگاه ها بیان کنید.

 

 

 

تیم فنی پژوهشگران

ما گروهی از اعضای قدیمی پژوهشسرای رباتیک مشهد مربوط به سالهای دهه 80 و... هستیم، دور هم جمع شدیم و قصد داریم نتایج R&D خود را در پژوهشگران به تألیف درآوریم...

نوشته های مشابه

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

دکمه بازگشت به بالا