در ادامه مقاله قبل تصمیم داریم اینبار نحوه اتصال ماژول وای فای ESP8266 را به مودم Wi-Fi شرح دهیم. سخت افزار و مقدمات همانند مقاله قبلی میباشد بنابراین از بیان مجدد مطالب تکراری پرهیز میکنیم.
دستورات:
برای اتصال به مودم دستورات زیر را با سرعت 115200 به ماژول ESP8266 ارسال نمایید (بین دستورات حدود نیم ثانیه تاخیر قرار دهید)
1 2 3 |
AT+CIPMUX=1 AT+CWMODE_DEF=3 AT+CWJAP_DEF="ModemSSID","ModemPassword" |
دستور اول دقیقا مانند دستور مقاله قبلی بوده و دستور بعدی هم فقط در آرگومان تفاوت دارد. آرگومان این دستور در مقاله قبلی 2 بود به معنای Access Point. ولی در این مقاله 3 است به معنای Station. این دستور به ماژول فرمان میدهد که در مد ایستگاه کاری قرار بگیرد. ایستگاه کاری یعنی ماژول باید به یک اکسس پوینت یا مودم دیگر متصل شود و دیگر خودش اکسس پویت نیست.
دستور سوم دو آرگومان میگیرد. اولی نام مودمی که قرار است به آن متصل شویم و دومی هم رمز مودم. در هر دو آرگومان کوچک و بزرگ بودن حروف مهم است و بهتر است که نام و رمز مودمی که قرار است به آن متصل شویم بیشتر یا مساوی با 8 کاراکتر باشد. بعد از ارسال دستور سوم معمولا 5 ثانیه طول میکشد تا ماژول به مودم متصل شود. در صورتی که اتصال موفق باشد رشته های WIFI CONNECTED و WIFI GOT IP به ترتیب بر روی ترمینال چاپ میشود. (اگر بجای ترمینال از میکروکنترلر استفاده میکنید با پردازش این دستورات می توانید به اتصال موفقیت آمیز پی ببرید)
فقط دستور اول با قطع و وصل برق ماژول نیاز به ارسال مجدد دارد و دو دستور بعدی که پسوند DEF دارند در حافظه فلش ماژول باقیمانده و بطور خودکار پس از روشن شدن ماژول اجرا میشوند. یعنی بعد از یکبار ورود دستورات در دفعات بعدی به محض اتصال برق، ماژول به طور خودکار به مودم متصل میشود.
تا اینجا یک ماژول وای فای آنلاین داریم که به مودم متصل شده است. قدم بعدی انتخاب Client یا Server بودن ماژول است. در مقاله قبل ماژول فقط میتوانست Server باشد. اما در این آموزش چون ماژول به مودم و البته به شبکه جهانی اینترنت متصل شده میتواند هم نقش یک Web Server واقعی را بازی کند و واقعا یک وبسایت کوچک را ایجاد کند و هم میتواند بعنوان یک مشتری به سایتها و سرورهای دیگر متصل شود.
ایجاد سرور (Server)
برای اینکه یک سرور بر روی ماژول ایجاد کنیم دستور زیر را به سمت ماژول می فرستیم:
1 |
AT+CIPSERVER=1,1394 |
در این صورت دقیقا مانند جلسه قبل یک سرور TCP داریم برای اتصال به آن باید IPیی که مودم به ماژول اختصاص داده را وارد کنیم. اما از کجا بفهمیم IP ماژول چیست؟
روش اول ارسال دستور زیر است:
1 |
AT+CIFSR |
ماژول درپاسخ 4 خط را نشان میدهد. آیپی Access Point و مک آدرس Access Point و آیپی Station و مک آدرس Station. ما فقط با STAIP کار داریم. این IP بصورت DHCP و از رنج آیپی های آزاد مودم به ماژول اختصاص داده شده است. این IP هر دفعه ممکن است تغییر کند و دردسر ساز شود. اگر این مدل IP تصادفی را دوست ندارید در آخر این مقاله به شما آموزش میدهیم که چگونه ماژول را مجبور کنید که یک IP ثابت از مودم درخواست کند.
کلاینت یا مشتری (Client)
برای اینکه به یک سرور یا VPS مثلا با آی پی 194.58.191.244 و پورت 8000 متصل شوید باید دستور زیر را وارد کنید:
1 |
AT+CIPSTART=1,"TCP","194.58.191.244",8000 |
با ورود دستور بالا به سرور متصل میشوید و اگر سرور محدودیت زمان اتصال نداشته باشد برای همیشه متصل میمانید. در واقع ترکیب IP:PORT یک سوکت میسازد که با این روش میتوانید به راحتی به یک سوکت سرور متصل شوید و با اسکریپتی که برای سرور خود می نویسید ارتباطهای Real Time و پرسرعت داشته باشید. (انشاءالله بزودی در این زمینه آموزشهای تخصصی ایجاد خواهیم کرد).
در این دستور عدد 1 یکی از کانکشنهای آزاد (4-0) است. توجه داشته باشد در ابتدا با دستور AT+CIPMUX=1 مد مالتی کانکشن را فعال کردیم پس باید شماره کانکشن را هم مشخص کنیم. این 5 کانکشن آزاد را مثل پنج Tap در مرورگر در نظر بگیرید که در هر کدام یک سایت را باز می کنید، در اینجا هم به همین شکل است. ماژول ESP8266 می تواند همزمان به 5 جای مختلف متصل شود.
رشته TCP به معنای نوع پروتکل ارتباطی است و حتما باید با حروف بزرگ نوشته شود.
آرگومان بعدی IP است و حتما باید بصورت رشته ارسال شود.
آرگومان آخری هم PORT است و حتما باید بصورت عدد (بدون کوتیشن) ارسال شود.
برای اتصال به یک وبسایت مثلا سایت avr64.com باید دستور زیر را وارد کنید:
1 |
AT+CIPSTART=1,"TCP","avr64.com",80 |
دستور بالا ماژول را به هاست اشتراکی سایت ما متصل می کند، برای اتصال به پوشه اصلی سایت و دریافت صفحه اول باید مقالات ساخت مرورگر با ESP8266 و راه اندازی ماژول وای فای ESP8266 را بطور کامل بخوانید.
برای ارسال دیتا هم در هر دو روش دقیقا مانند مقاله قبلی از دستور AT+CIPSEND استفاده کنید.
گرفتن آی پی ثابت از مودم در مد کلاینت
برای اینکه ماژول ESP8266 موقع اتصال به مودم هربار یک IP ثابت از مودم بگیرد کافیست آی پی مرود نظر را به صورت زیر برای ماژول ارسال کنید. این دستور هم، بدلیل داشتن پسوند DEF در حافظه ماژول باقی میماند و نیاز به ارسال هر دفعه آن نیست:
1 |
AT+CIPSTA_DEF="192.168.1.73" |
موقع تخصیص آی پی دقت داشته باشید که عدد کلاس آی پی در رنج کلاس آی پی هایی باشد که مودم به سایر دستگاهها اختصاص داده است. معمولا سه قسمت اول 192.168.1 بصورت ثابت است. در برخص مودم ها عدد آخر از 100 شروع میشود و به دستگاهها اعداد 192.168.1.100 و … اختصاص داده میشود و در بیشتر مودم ها از 2 شروع می شود و بالا میرود. سعی کنید عددی را انتخاب کنید که خیلی دورتر از اعداد انتخابی مودم باشد تا به مشکل IP Conflict برخورد نکنید، یعنی مثلا هرگر آی پی 192.168.1.2 را انتخاب نکنبد چون معمولا به موبایلها یا کامپیوترهای متصل اختصاص دارد و اگر این IP قبلا رزرو شده باشد مودم آن را در اختیار ماژول شما قرار نمیدهد.
جمع بندی
در این دو مقاله یادگرفتید که چگونه از firmware پیشفرض AT Command ماژول ESP8266 استفاده کنید. این ماژول دستورات فراوانی دارد و کارهای بسیار زیادی انجام میدهد. با مطالعه PDF زیر میتوانید سایر دستورات AT این ماژول را مشاهده نمایید:
4a-esp8266_at_instruction_set_en
بازدیدها: 1473