قسمت اول : آموزش کامل راه اندازی ماژول 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 پایه است که وظایف آن ها به شرح زیر است :
VCC و GND : تغذیه ماژول که 3.3 ولت می باشد.
RXD و TXD : پایه های سریال ماژول که جهت ارسال و دریافت دستورات از آن استفاده می شود.
CH_PD : پایه فعال سازی ماژول، که برای فعال کردن ماژول باید این پایه به 3.3 ولت متصل شود.
RST : پایه ریست ماژول، برای ریست کردن ماژول باید این پایه را زمین کرد.
GPIO0 : این پایه در حالت عادی PullUp است و زمانی که بخواهیم Firmware ماژول را آپدیت کنیم باید این پایه را به زمین متصل کنیم. همچنین می توان با برنامه نویسی از این پایه به عنوان خروجی استفاده کرد.
نکته مهم : پایه GPIO0 در این ماژول نمی تواند نقش ورودی به خود بگیرد. زیرا صفر بود این پین حین روشن شدن ماژول باعث می شود ماژول به مد پروگرم برود.
GPIO2 : این پایه در حالت عادی PullUp است و همچنین می توان با برنامه نویسی از این پایه به عنوان I/O استفاده کرد.
مدار راه انداز ماژول ESP8266-01
مدهای کاری ماژول ESP8266
ماژول ESP8266 در سه مد قابل راه اندازی است :
مد Station : این مد برای اینترنت اشیاء استفاده می شود که پس از تنظیمات لازم ماژول بصورت خودکار مودم ADSL را پیدا کرده و خود را به شبکه جهانی اینترنت متصل می کند.
مد Access Point : در این مد می توان با موبایل یا تبلت ماژول را جستجو کرد و به آن متصل شد و عموماً برای ساخت ریموت های تنها و بدون نیاز به اینترنت بکار می رود.
مد Both : در این مد ماژول همزمان در دو مد بالا کار می کند.
معرفی دستورات AT+ Command
برای ارتباط با ماژول های ESP باید فرمان هایی با قالب مشخص به ماژول ارسال کنیم که به این مجموعه فرامین AT Command می گویند. در انتهای دستورات باید کاراکتر Enter و Line ارسال شود تا ماژول دستور مورد نظر را اجرا کند.
نکته : کد اسکی کاراکتر Enter در مبنای Hex برابر 0x0D و کد اسکی کاراکتر Line در مبنای Hex برابر 0x0A می باشد.
دستورات را می توان به سه دسته کلی تقسیم کرد :
در ادامه آموزش در مورد این دستورات توضیحاتی ارائه خواهد شد. همچنین می توانید با دانلود این فایل pdf همه دستورات مربوط به ماژول ESP8266 را مطالعه کنید.
ارتباط با ماژول ESP8266
جهت ارتباط با ماژول از نرم افزارهای ترمینال استفاده می شود. نرم افزارهای ترمینال متفاوتی وجود دارند که ما در اینجا از نرم افزار HTerm استفاده می کنیم. محیط نرم افزار و تنظیمات مربوط به آن را در تصویر زیر مشاهده می کنید.
نکته : در قسمت ارسال اطلاعات کافیست تا AT Command مورد نظر را تایپ کرده و کلید اینتر را فشار دهید تا اطلاعات به ماژول ارسال شود.
راه اندازی ماژول ESP8266 به صورت سرور
در این قسمت ماژول را به صورت Server (سرویس دهنده WIFI) راه اندازی خواهیم کرد و توسط موبایل به آن وصل می شویم و به ارسال و دریافت دیتا می پردازیم. برای ارتباط با ماژول ESP در دستگاه های اندرویدی نرم افزارهای زیادی وجود دارند که ما در این آموزش از نرم افزار WIFI Controller استفاده کردیم.
برای راه اندازی ماژول در مد Server کافی است دستورات زیر را به ترتیب به ماژول ارسال کنیم :
دستور AT :
از این دستور جهت تست صحت کارکرد ماژول استفاده می شود. که در صورت سالم بودن ماژول OK بر می گرداند.
دستور AT+CWMODE :
از این دستور جهت تنظیم مد کاری ماژول استفاده می شود. همانطور که گفته شد ماژول ESP8266 در سه مد کار می کند :
1- مد Station : برای رفتن به این مد باید دستور AT+CWMODE=1 را به ماژول ارسال کنیم.
2- مد Access Point : برای رفتن به این مد باید دستور AT+CWMODE=2 را به ماژول ارسال کنیم.
3- مد Both : برای رفتن به این مد باید دستور AT+CWMODE=3 را به ماژول ارسال کنیم.
برای اینکه قرار است ماژول را به عنوان Server راه اندازی کنیم می توانیم از مدهای 2 و 3 استفاده کنیم.
دستور AT+CIFSR :
از این دستور جهت خواندن IP ماژول استفاده می شود. از این IP زمانی که بخواهیم با موبایل به ماژول ESP متصل شویم نیاز پیدا می کنیم.
دستور AT+CWSAP :
با ارسال این دستور طبق فرمت زیر می توان اطلاعات اتصال به ماژول را خواند.
فرمت و مفهوم پاسخ ارسالی توسط ماژول به این صورت است که :
SSID یا اسم ماژول : ESP01
PWD یا پسورد ماژول : 12341234
CHL یا ایدی کانال : 1
ECN یا پروتکل رمز گذاری : 4 ( WPA_WPA2_PSK )
برای تغییر اطلاعات اتصال ماژول می توان از فرمت زیر استفاده کرد :
دستور AT+CIPMUX :
از این دستور جهت تعیین نوع اتصال به ماژول استفاده می شود. که این اتصال می تواند بصورت Single Connection یا بصورت Multiple Connection باشد. چون ما قرار است ماژول را در مد Server راه اندازی کنیم، باید از مد Multiple استفاده کنیم.
دستور AT+CIPSERVER :
از این دستور جهت بردن ماژول به مد Server استفاده می شود.
بعد از انجام مراحل بالا شما موفق به ساخت یک سرور شده اید حال نوبت آن است که توسط موبایل یا لپ تاپ با ماژول ارتباط برقرار کرده و دیتا رد و بدل کنید. جهت اتصال موبایل به ماژول ESP ما از نرم افزار WIFI Controller استفاده کردیم.
برای اتصال به ماژول ابتدا WIFI موبایل را روشن کرده و به ماژول ESP وصل می شویم.
بعد از اتصال به ماژول ESP، نرم افزار WIFI Controller را اجرا می کنیم. حال با وارد کرد IP و Port شروع به برقراری ارتباط و ارسال دیتا می کنیم.
همان طور که در تصویر زیر مشاهده می کنید، بعد از برقراری ارتباط با ماژول، ماژول دستور 0 , CONNECT را ارسال می کند که عدد 0 نشانگر ID موبایل می باشد.
در ادامه با نوشتن متن مورد نظر و زدن دکمه Send اطلاعات را به ماژول ارسال می کنیم.
همانطور که مشاهده می کنیم اطلاعات دریافتی از سمت ماژول به فرمت زیر است :
+IPD,id,length:Receive Data
که شامل ID ، طول دیتا و اطلاعات دریافتی است.
ارسال دیتا از ESP ( سرور ) به موبایل ( کلاینت )
به این منظور از دستور AT+CIPSEND استفاده می شود که فرمت آن به صورت زیر است :
AT+CIPSEND=id,length
در این دستور ID شماره اتصال و Length هم تعداد کارکترهایی است که قرار است به ماژول ارسال کنیم. بعد ارسال این دستور منتظر پاسخ ماژول می مانیم سپس اطلاعات خود را ارسال می کنیم.
برای مثال ما قصد داریم متن RoboticNGO را به کلاینت یا موبایل ارسال کنیم به صورت زیر عمل می کنیم :
کد نویسی با کامپایلر کدویژن با هدف ایجاد Server
برای راه اندازی راحت ماژول ESP و انجام تنظیمات مربوط به مد Server تیم فنی پژوهشگران برنامه ای با کامپایلر کدویژن آماده کرده است که توسط آن براحتی می توانید ماژول را کانفیگ کرده و با آن ارتباط برقرار کنید.
قابلیت های برنامه
- تنظیم IP ماژول
- تنظیم SSID ماژول
- تنظیم پسورد ماژول
- انجام همه مراحل پیکربندی ماژول
- دریافت و ارسال اطلاعات
توابع نمونه ای که در محیط کدویژن نوشته شده اند :
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 را آموزش دهیم. لطفا جهت بهتر شدن آموزش ها و دادن فیدبک به ما نظر خود را در قسمت دیدگاه ها بیان کنید.