خانه / آموزش های الکترونیک / آموزش AVR / راه اندازی ماژول وای فای (wifi ESP-01)

راه اندازی ماژول وای فای (wifi ESP-01)

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

ESP-01 برای اولین بار در سال 2014 طراحی وساخته شد و بعد ازآن بیش از 13 سری دیگر نیز طراحی و ساخته شد که داری بهبودها وقابلیتهای پیشرفته تری نسبت به سری قبلی خود میباشند در شکل زیر انواع مختلف این خانواده را میبینید

در ساخت تمامی این ماژولها از آی سی ESP8266 استفاده شده است.در این مدلها ESP-01 (بدون شیلد,با آنتن روی برد) ESP-07  ( دارای شیلد و سوکت آنتن)-ESP-12E (داری شیلد و آنتن روی برد) وجود دارد.

ولتاژ تغذیه و پایه های این ماژولها 3.3 ولت است. فرکانس کاری آن 2.4GHZ  و پروتکل مورد استفاده برای ارسال و دریافت دیتا در آن TCP/IP  با استفاده از تکنولوژی Wifi میباشد. امکان ارتباط با وسایل جانبی تحت پروتکل سریال UART  درتمامی ماژولها وجود دارد.بنابراین دوپایه RXو TX به ترتیب برای دریافت وارسال دیتا به کار میرود که تحت عنوان AT commandاین کار صورت میگیرد.

aa

معرفی ماژول ESP-01

پایه های این ماژول را درشکل زیر مشاهده میکنید.همانطور که در شکل مشاهده میکنید,پروتکل مورد استفاده برای راه اندازی ماژول UART  میباشد.

پایه های RX و TXبه ترتیب برای دریافت و ارسال داده به کار میرود.

as

ماژول ESP-12E

پایه های این ماژول را در شکل زیر مشاهده مکنید.این ماژول قابلیت های بیشتری نسبت به ESP-01  دارد.به طوری که می تواند علاوه بر پروتکل UARTیا SPIنیز راه اندازی شود.همچنین در کنار این ماژول پایه های GPIO  بیشتری وجود دارد که میتواند مستقیما مورد استفاده قرار گیرد.

af

نکته: ماژول ESP-07  و ESP-12E  به تنهایی نمیتواند روی برد بورد قرار گیرد و برای اینکار بهتره از یه برد مبدل مانند شکل زیر استفاده کنید.

با  استفاده از یک ماژول USB به سریال FT232  و مقداری سیم به راحتی و بدون هیچ قطعه اضافی میتوان این ماژول را راه اندازی کرد.در این حالت تغذبه ماژول از 3.3v موجود روی بورد FT232  تامین میشود . شکل زیر مدار تکمیل شده را نشان میدهد.

az

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

ماژول های خانواده ESP  دستوراتی را به صورت کاراکتری دریافت میکنند و به همان صورت نیز به آنها پاسخ میدهند.در ابتدای همه دستورات دو ککاراکتر AT  ارسال میشود لذا به مجموعه آن دستورات AT Command  گویند. در انتهای هر دستور نیز کاراکترEnter  باید ارسال شود تا ماژول دستور مورد نظر را انجام داده و پاسخ آن ارسال نماید.برای مثال دستور AT را درنظر بگیرید.

این دستور برای تست سلامت ارتباط ماژول میباشد.این دستور به صورت زیر میباشد. این دتور به صورت زیر به ماژول ارسال شده و درصورت صحیح بودن ارتباط ,ماژول در پاسخ به آن OK  میدهد.

نکته  :  کد اسکی کاراکتر Enter  در مبنای Hex  برابر 13 میباشد.اگر در برنامه ای دیدید بدانید این همان Enter  است که در مبنای Hex نوشته شده است.

دستورات AT+COMMAND

عملیاتی که انجام میشه دستوری که به ماژول ارسال میشود پاسخی که از ماژول دریافت میشود
تست سلامت اتصال ماژول AT OK
ریستارت کردن ماژول AT+RST OK[SYSTEM READY,VENDOR:WWW.AI-THINKER.COM]
مشاهده ورژن نرم افزاری ماژول AT+GMR 00160901
لیست تمامدستگاههای Wifi فعال در اطراف ماژول را نشان میدهد AT+CWLAP CWLAP:+(4,”rochefortSurlac”,38,”70:62:b8:6f:6d:58”,1)
اتصال به یک دستگاه wifi با داشتن نام وپسورد آن “AT+CWJp=”ssid”,”password” Cwjap:ssid+ok
قطع اتصال wifi AT+CWQAP OK
به دست آوردن آدرس آی پی دستگاه AT+CIFSR AT+CIFSR 192.168.01.105

OK

به دست آوردن پارامترهای اتصال ماژول دستگاه AT+CWSAP? SSID,PWD,CHL=CHANNEL,ENC=ENCRYPTIONNH
دادن پارامترهای دلخواه اتصال به ماژول AT+CWSAP=<ssid>,<pwd>,<chl>,<enc> SSID,PWD,CHL=CHANNEL,ENC=ENCRYPTIONNH
دریافت مد wifi ماژول AT+CWMODE? QUERY
تنظیم ماژول روی مدstation (کلاینت) AT+CWMODE=1 CWMOD:1+

OK

تنظیم ماژول روی مدAccess point (سرور) AT+CWMODE=2 CWMODE:2+

OK

تنظیم ماژول روی هر دو مد قبلی به طور همزمان AT+CWMODE=3 CWMODE:3+

OK

دریافت نوع اتصال AT+CIPSTART=?
دریافت نوع اتصالTCPیاUDP AT+CIPMUX? QUERY
تعیین تعداد خطوط اتصال درحالت تنها AT+CIPMUX=0 OK
تعیین تعداد خطوط اتصال در حالت چندتا AT+CIPMUX=1 OK
دریافت IP آدرس دستگاههای متصل AT+CWLIF
وضعیت اتصال TCPیاIP AT+CIPSTATUS
قطع اتصال TCP/UPD AT+CIPCLOSE=<ID>

یا

AT+CIPCLOSE

تنظیم به عنوان سرور AT+CIPSERVER=<mode>[,<port>]
تنظیم زمان خروج ازحالت سرور AT+CIOPSTO?

AT+CIPSTO=<time>

بررسی نرخهای ارسال دیتا که ماژول پشتیبانی میکند AT+CIOBAUD?

تذکر: بعد ازتمامی این دستورات باید کاراکتر Enter  به مازول ارسال شود.

نکته: ارسال هر بسته دیتا در پروتکل TCP/IP  تقریبا 20 میلی ثانیه طول میکشد و حداکثر تعداد بایتهایی که میتواند در یک بسته ارسال شود 2048 بایت میباشد.

انجام تنظیمات اولیه ماژول

جهت ارتباط با ماژول از نرم افزارهای ترمینال استفاده میشود. نرم افزارهای ترمینال متفاوتی وجود دارند که ما در اینجا از نرم افزارSerial_port_Terminal.exe  استفاده میکنیم.درون این نرم افزار به محض اتصال کابل USB به کامپیوتر با زدن Refresh  شماره پورت COM  شناسایی شده در بخشAvailable Port  نمایان میشود.سپس باتنظیم باودریت نرم افزار روی115200  و ارسال AT به ماژول میتوان OK  رادریافت کرد . مراحل کار راروی تصاویر شکل زیر مشاهده میکنید.

1

در مرحله بعد قسمت Send data  را پاک کرده و دستور AT+CWMODE=3 را وارد میکنیم.

این ماژول در 3 مد زیر کار میکند:

1-STATION  :  ماژول میتواند به دستگاههای Wifi  اطراف خود متصل میشود.

2-Acces Point  : ماژول در این حالت به عنوان یک سرویس دهنده Wifi  عمل میکند و دستگاههای دیگر میتوانند به آن متصل شوند.

3-both  :  در این مد ماژول به طور همزمان در دوحالت بالیی قرار میگیرد.

بهتر است ماژول را در مد 3 ببریم.

2

بادستور AT+CWSAP?  میتوان اطلاعات کنونی ENC,SSID,PASSWORD,CHL  ماژول را از خود ماژول به دست آورد.

SSID نامی است که ماژول Wifi  به همگان نشان میدهد.Password  رمز عبور برای اتصال به آن است.chl آی دی کانال متصل شده به دستگاه را نشان میدهد وenc  نوع پروتکل رمز شده Encryption را مشخص میکند.در زیر انواع پروتکل های رمز برای اتصال به Wifi  را مشاهده میکنید.عدد chl معمولا 0 و عدد ENC بهتر است روی 4 باشد.

3

4

همانطور که مشاهده میکنید در پاسخ به دستور AT+CWSAP?  مازول SSID و PASSWORD  رابه همراه اطلاعات CH,ENC,Other  ارسال کرده است.بنابر این در اولین راه اندازی نام ماژول Al-THINKER_82B46D  بدون پسورد,کانال 1 و بدون رمزنگاری میباشد.

حال می خواهیم با استفاده از دستور AT+CWSAP=”esp8266”,”1234”,1,4  مشخصات ماژول را به دلخواه خود تغییر دهیم.

5

نکته: در رمز نگاری های پیشرفته تر (شماره 3 و 4) برای پسورد کوتاه و ساده Error میگرد.

6

اگربار دیگر دستور AT+CWSAP?[Entter]  را وارد کنیم مشاهده میکنیم که مشخصات ماژول تغییر کرده است.

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

در این مرحله ماژول را به صورت Server(سرویس دهنده Wifi ) راه اندازی خواهیم کرد و توسط موبایل و لپ تاپ به آن وصل میشویم و به ارسال  و دریافت دیتا میپردازیم . برای ارتباط با ماژول در دستگاههای اندرویدی نیاز به نرم افزار Socket protocol ودر کامپیوتر نیاز به نرم افزار Server Clinet  داریم.

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

که در آن mode=1     و  port  بسته به نوع اتصال میتواند یکی از اعداد زیر باشد :

1-80 : پورت http برای اتصال به اینترنت

2-8080 : پورت http  در شبکه هایی که پورت 80 بلاک است.

3-23 :پورت Telnet

4-8888 : یک پورت خالی

9

سپس در صورتی که بخواهیم توسط موبایل به ماژول متصل میشویم ابتدا باید با وارد کردن پسورد 123456789  به ماژول متصل شویم . شکل زیر این اتصال را نشان میدهد.

10

سپس نرم افزار Socket Protocol   را باز کرده و در قسمت Client  آی پی ماژول (192.168.4.1) و پورتی 888 که سرور روی آن ساختیم را وارد میکنیم سپس Connect را لمس میکنیم. در صورت متصل شدن عبارت Socket Connected نمایش داده میشود شکل زیر این اتصال رانشان میدهد.

11

در همین زمان که گوشی متصل به ماژول متصل میشود اگر به نرم افزار Serial_Port_Terminal  مراجعه کنیم, مشاهده میشود که عبارت CONNECT,0  توسط ماژول پاسخ داده شده است.

12

همچنین زمانی که درون نرم افزار سوکت پروتکل چیزی بنویسیم و بفرستیم در طرف ماژول با ساختار زیر به نمایش در می آید :

که در آن id , شماره اتصال و length  طول دیتا دریافت شده باشد.

برای مثال در شکل زیر یک عبارت از گوشی برای ماژول ارسال کردیم.

13

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

14

برعکس حالت فوق نیز میتوانیم عمل کنیم یعنی ماژول به عنوان فرستنده و کامپیوتر به عنوان گیرنده در شبکه عمل میکند بدین منظور از دستور AT+CIPSEND  به صورت زیر استفاده میشود.

برای مثال اگر بخواهیم یک جمله 5 کاراکتری را ارسال نماییم مینویسیم

AT+CIPSEND=0,5

>HELLO

و ارسال میکنیم که اگر در همین زمان به نرم افزارSocketprotocol روی موبایل نیز نگاه کنیم دیتای دریافت شده را در قسمت Answer From Server  مشاهده میکنیم.

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

15

ابتدا میبایست به ماژول ESP-01   با پسورد 123456789 توسط لپ تاپ متصل شد . سپس بعد از وارد کردن IP  وPORT  به صورت کل زیر و با کلیک بر روی Connected to Server نمایش داده میشود.

16

در همین زمانی که لپ تاپ به ماژول متصل میشود اگر در نرم افزار Serial_Port_Terminal مراجعه کنیم مشاهده میشود که عبارت CONNECT,0  توسط ماژول پاسخ دارده شده است.سپس یک عبارت دلخواه به ماژول ارسال کردیم .

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

در این بخش با فرض اینکه سرور در محل دیگری راه اندازی شده است و ماژول به عنوان کلاینت (Client )    به آن متصل شده باشد, به ارسال / دریافت دیتا خواهیم پرداخت.در مرحله اول میبایست یک سرور ایجاد کرد. برای ایجاد سرور در تلفن همراه نرم افزار SocketProtocol و ایجاد سرور در رایانه های شخصی از نرم افزار ServeerClientاستفاده میشود.ابتدا به ماژول دستورات زیر را ارسال میکنیم.

17

بعد از اتصال Wifi  گوشی به ماژول به سراغ نرم افزار SocketProtocol  و بخش Server مراجعه میکنیم.در این مرحله یک سرور روی پورت دلخواه برای مثال 9999   ایجاد میکنیم ابتدا عدد پورت را واردکرده و سپس Listen را میزنیم. عبارت Socket in Listen نمایش داده میشود.

18

در مرحله بعدی باید آی پی تلفن همراه (سرور ) را بدانیم تا بتوانیم تئسط ماژول به سرور وصل شویم. نرم افزار SocketProtocol  این قابلیت را دارد که با مراجعه به بخش Setting & help آدرس آی پی تلفن همراه را نشان میدهد.همانطور که در شکل زیر مشاهده میکنید آی پی دستگاه مورد استفاده 192.168.4.2 میباشد.

19

برای اتصال کلاینت به سرور از دستور CIPSTARTاستفاده میشود.نحوه استفاده از این دستور به صورت زیر است.

که در آن IDشماره ارتباطی type نوع ارتباط (TCP یا UPD) , ip آدرس آی پی سرور و port  شماره پورت جهت اتصال را مشخص میکند. دستور فوق برای ارتباط ماژول (کلاینت)به تلفن همراه (سرور) به صورت زیر میشود:

20

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

که درآن id شماره اتصال و length طول دیتا دریافت شده میباشد.

برای ارسال دیتا از ماژول (کلاینت) به تلفن همراه (سرور) از دستور CIPSEND  به صورت زیر استفادده میکنیم:

که درآن id شماره اتصال و length  طول دیتا برای ارسال است.بعد از ارسال صحیح عبارت SEND OK  توسط ماژول برگشت داده میشود.بعد از ارسال دیتا در سرور به نمایش در می آید.

برای خاتمه دادن به ارتباط و بستن آن از دستور CIPCLOSEبه صورت زیر استفاده میکنیم:

که در آن id همان آی دی است که در هنگام شروع ارتباط ساخته شده بود.

21

اتصال ماژول به یک روتر WiFi

در این بخش اصول اتصال به یک روتر WiFi توضیح داه میشود که این روتر میتواند به اینترنت نیز متصل باشد . با ارسال دستور CWLAP ماژول کلیه دستگاههای WiFi اطراف به همراه MAC آدرس و قدرت سیگنال آنها را نشان میدهد.

با استفاده از دستور AT+CWJAP=”SSID”,”PASSWORD”  میتوان به هر یک از وسایل اطراف متصل شد .

نکته زمانی که ماژول به روتر مود نظر متصل شود ابتدا WIFI CONNECTED   پاسخ میدهد و بهد از لحظاتی WIFI GIT IP و OK را به کامپیوتر میفرستد.  این نشان میدهد که یک IP منحصر بفرد از طرف روتر برای ماژول ایجاد شده است این آدرس منحصر بفرد اهمیت زیادی دارد و در ارتباط میان دستگاههای متصل به روتر از آن استفاده میشود.

برای اینکه بفهمیم  آی پی ماژول و Acces Point وصل شده در این اتصال چیست از دستور CIFSR استفاده میکنیم.

22

در این حالت ماژول به یک شبکه WiFi که یک روتر اینترنت است میباشد متصل است و مشخصاتی را برای ما ارسال کرده است که شامل آی پی ماژول و آی پی ماژول از نظر روتر میباشد.این مشخصات برای کارهای بعدی بسیار مهم است.

APIP:Access Point IP

APMAC : Access Point MAC

STAIP: Static IP

STAIMAC : Static MAC

تذکر : static ip آی پی اختصاص داده شده به ماژول زمانی که به روتر وصل میشود را نشان میدهد.

23

در حالی که ماژول به روتر wifi وصل است ,من لپ تاپ خود را نیز به همان روتر اینترنت وصل کردم.شکل زیر نحوه اتصال دستگاهها به یکدیگر را نشان میدهد.

1-دستگاههایی که در یک شبکه به هم متصل هستند میتوانند از طریق IP دیتا رد و بدل کنند.

2-در یک شبکه سرور دستگاه سرویس دهنده و کلاینت دستگاه گیرنده است.

3-بدست آوردن IP کامپیوتر در هنگام اتصال به wifi

ابتدا روی آیکون wifi روی taskbar صفحه در هنگام اتصال wifi  کلیک راست کرده و به مانند شکلهای زیر  ip دستگاه را به دست بیارید

نکته :در این ارتباط باید برای ارتباط بین کامپیوتر و ماژول ipهای هنگام اتصال به wifi یا همان ip از نظر wifi را استفاده کرد.

 این حالتی که دستگاه ها به یکدیگر متصل هستند میتوان کارهی زیر را با ماژول esp8266 انجام داد:

1-ارتباط با ماژول با دیگر دستگاههای متصل به روتر

2-اتصال ماژول به اینترنت

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

برای مثال ابتدا در طرف ماژول یک سرور روی پورت دلخواه ایجاد میکنیم سپس در طرف کامپیوتر درون نرم افزار ServerClient آدرس آی پی مقصد(ماژول) ذا آدرس شناسایی شده توسط روتر تایپ میکنیم یعنی در اینجا باید بنویسیم192.168.1.5 شکل زیر انجام این عملیات در طرف ماژول و در طرف کامپیوتر را نشان میدهد.

همچنین در صورتی که ماژول کلاینت باشد و در طرف کامپیوتر سرور روی پورت دلخواه راه اندازی شده باشد برای اتصال کلاینت به سرور از آی پی اختصاص دهده شده توسط روتر که در اینجا 192.168.1.3 استفاده میشود.

برای اتصال ماژول به اینترنت نیز از پورت 80 به جای پورت دلخواه استفاده میشود و آدرس آی پی مقصد (آدرس آی پی سایت یا وب سرویس مورد نظر )قرار میگیرد.

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

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

همانطورکه در شکل مشاهده میکنید به علت اینکه ولتاژ ارسال از طرف میکرو یا کامپیوتر 5 ولت است نیاز به مدار تقسیم مقاومتی برای کاهش ولتاژ به 3.3 ئلت هستیم

ماژول esp-01 را نمیتوان مستقیما روی برد بورد نصب نمود برای نصب این ماژول روی برد بورد سه روش وجود دارد:

1-ساخت مبدل با پین هدر و برد بورد هزار سوراخ :

2-استفاده از کابل برد بورد:

3-لحیم کاری مستقیم روی ماژول:

راه اندازی ماژول esp-01 با avr

در  این مرحله برنامه ای مینویسیم که کارهای انجام گرفته در مراحل قبلی را توسط میکروکنترلر انجام دهد بنابراین به جای استفاده از USB to TTL در سمت ماژول یک میکروکنترلر ATMEGA32 قرار خواهد گرفت که دستورات AT را به ماژول ارسال میکند .

برای ارتباط مازول با میکروکنترلر نیاز است تا باودریت روی 9600 تنظیم شده باشد.زیرا در این فرکانس خطای ارتباط کمتر میباشد.بنابر این قبل از اتصال به میکرو این کار را انجام میدهیم.

جهت دریافت توضیحات کامل تر و همچنین راه اندازی برنامه با atmega 32  به زبان c و شبیه سازی برنامه به همراه توضیحات کامل کلیک کنید

 

درباره ی mr ti

همچنین ببینید

تعریف IP Static برد Raspberry Pi

مقدمه: حتما تاکنون برای شما پیش آمده که بخواهید با Raspberry Pi خود ریموت بشین …

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

یازده − سه =