آردوینو آموزش آردوینو پروژه های آردوینو مدارهای الکترونیک

esp8266 ماژول وای فای ( at command-3)

نوشته شده توسط علیرضا قربانی

آموزش ماژول WIFI esp8266 آردوینو بخش سوم

در قسمت‌های قبلی به  شرح AT Command های ماژول وای فای esp8266 پرداختی. در این قسمت قصد داریم به ارتباط این ماژول با یک دیوایس اندرویدی  بپردازیم. با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

قسمت اول آموزش ماژول wifi esp8266

قسمت دوم آموزش ماژول wifi esp8266

 

سخت‌افزار مورد نیاز :

یک عدد برد آردوینو

ماژول وای فای ESP8266

یک عدد  دیوایس اندرویدی ( گوشی موبایل دارای سیستم‌ عامل اندروید)

 

همانطور که در قسمت اول توضیح داده شد ابتدا  کد زیر را بر روی آردوینو آپلود کنید :

 

 

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

قبل از هرکاری ابتدا یک نرم افزار برای کنترل wifi گوشی خود دانلود  و نصب نمایید . ما به شما  نرم افزار  Socket Protocol را پیشنهاد می‌کنیم که  در لینک زیر قرار داده شده است.

دانلود نرم افزار Socket protocol

 

برای اتصال به ماژول به یک دستگاه دیگر دو حالت وجود . حالت اول آن که ماژول به عنوان Server قرار داشته باشد و  دیوایس اندرویدی در حالت client و حالت دوم آن که ماژل در حالت client و گوشی موبایل در حالت Server می‌باشد.

 

 

حالت اول :

اکنون می‌خواهیم به بررسی حالت اول بپردازیم. در این حالت ماژول ESP8266 در حالت سرور قرار  می‌گیرد و گوشی موبایل در حالت کلاینت قرار می‌گیرد.برای انجام این کار ابتدا توسط گوشی به ماژول ESP8266  متصل می‌شویم همانند تصویر زیر.( SSID این ماژول  AI-THINKER_A54B8A می‌باشد)

آموزش esp8266 آردوینو

 

 

سپس سریال مانیتور نرم افزار آردوینو را باز کرده و دستورات زیر را به ترتیب وارد می‌کنیم

 

مرحله اول :

آموزش ماژول ESP 8266 آردوینو

 

در مرحله دوم دستور زیر را وارد می‌کنیم:

آموزش ماژول ESP 8266 آردوینو aRDUINO

مرحله سوم:

برای اینکه بتوان ماژول را در حالت سرور قرار داد ، باید ماژول را در حالت Multiple قرار داد طبق دستور زیر:

 

 

آموزش ماژول وای فای آردوینو

مرحله چهارم:

توسط دستور زیر یک سرور ایجاد می‌کنیم و یک پروت دلخواه به آن نسب می‌دهیم ( که با این جا از شماره پورت ۸۸۸۸ استفاده می‌کنیم)

 

آموزش ESP8266 در آردوینو aRDUINO

هم اکنون سروری توسط این ماژول ساخته شد. در مرحله بعدی نرم افزار Socket Protocol را در گوشی خود اجرا می‌کنیم. و به قسمت Client می‌رویم همانند تصویر زیر :

 

 

 

 

همانطور که مشاهده می‌کنید باید دو پارامتر Server ip address و Server port را در نرم افزار وارد کنیم.

ip پیش فرض ماژول    ۱۹۲٫۱۶۸٫۴٫۱  می‌باشد و همچنین شماره پورت ، همان  شماره‌ای است که در مرحله چهارم به ماژول نسبت دادیم.

 

آموزش ماژول وای فای آردوینوarduinoq ماژول wifi آردوینو

 

سپس Connect را لمس می‌کنیم.اگر تمام مراحل را درست انجام داده باشید در بالای نرم افزار عبارت Socket connected به نمایش می‌آید.

 

ماژول wifi آردوینو

 

 

و همچنین در سریال مانیتور پیغام ۰,CONNECT نمایش داده می‌شود. همانند تصویر زیر :

 

آموزش ماژول وای فای آردوینوarduino

 

 

هم اکنون قصد ارسال داده داده از تلفن همراه به ماژول داریم. در نرم افزار Socket protocol در کادر Write here the frame to send عبارت digispark.ir را وارد می‌کنیم و سپس Send را لمس می‌کنیم :

ماژول وای فای آردوینو

 

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

آموزش esp8266 آردوینو arduino

 

 

 

 


 

 

تا این قسمت آموختید که چگونه دیتایی را از تلفن همراه خود به ماژول esp8266 ارسال کنید .حال اگر قصد داشته باشید دیتا را از سریال مانیتور نرم‌افزار آردوینو به ماژول ارسال کنید باید مطابق دستورات زیر عمل کنید.

همانطور که در بخش دوم آموزش داده شده برای ارسال داده باید طول داده را مشخص کنیم. می‌خواهیم عبارت daneshjookit.ir را به گوشی اندرویدی خود ارسال کنیم، این عبارت از ۱۵ کاراکتر تشکیل شده است پس از دستور زیر استفاده می‌کنیم

 

پس از فرستادن این دستور ، ماژول کاراکتر < را برای ما ارسال می‌کند.

ماژول WIFI esp8266 آردوینو

 

بعد از دیدن این کاراکتر عبارت daneshjookit.ir را برای ماژول می‌فرستیم همانند تصویر زیر :

آموزش ماژول وای فای آردوینوarduinoq

 

و عبارت daneshjookit.ir در نرم افزار Socket protocol  در گوشی موبایل به نمایش در می‌آید.

آموزش esp8266

 

در قسمت بعدی آموزش ماژول را در حالت کلاینت قرار می‌دهیم و اقدام به ارسال دیتا میان ماژول Esp8266 و گوشی می‌کنیم.

 

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

علیرضا قربانی

علیرضا قربانی هستم دانشجوی مهندسی پزشکی. چیزهای خیلی زیادی رو در دنیا دوست دارم. یک گیک هستم و یشه گفت یک هکر. نه به معنی دزدی پسورد و ایمیل مردم. به معنی عشق به دونستن و عشق به تحقیق درباره خیلی از چیزهایی که می بینم و می‌شنوم. اگر بخوام علاقه‌مندی‌ درجه یکم رو نام ببرم میتونم بگم برنامه نویسی و بعد از اون امبدد سیستم ها.

تبادل نظر و رفع عیب با ثبت دیدگاه

۴۲ دیدگاه

  • سلام یه سوال داشتم: چجوری میشه با موبایل به esp8266 به عنوان client وصل شد و با رفتن به یه ip یه رله رو خاموش و روشن کرد؟

  • سلام
    چطور میتونم متنی که از طریق نرم افزار گوشی به esp می فرستم را از سریال بگیرم و با یک رشته مقایسه کنم ?

  • سلام
    ممنون از مطلب خوب تون
    یک سوال
    من دنبال این هستم که مدارم رو با این ماژول بیسیم کنم
    یعنی به جای اتصال دو سیم مستقیم به پایه های rxd , txd میکرو
    این ماژول رو بزارم و اتصال بی سیم بشه و دستورات اتصال رو به برنامه م اضافه کنم
    شدنی هست ؟
    یا باید اصل برنام م تغییر کنه ؟
    ممنون

  • سلام
    چرا در برگشتی از ماژول ESP8266 اطلاعات غلط ارسال میشود مثلا کلمه SALAM رو برخی اوقا درست و برخی اوقات یک حرف آن تغییر میکن البته در سریال مانیتور .

  • سلام اقا یه سوال من AT+CIPLMUX=1 و AT+CIPSERVER=1,8888قرار دادم و با موبایل وصل شدم ، مشکلم اینه که وقتی تغذیه ماژول رو قطع و وصل میکنم این تنظیمات ریستارت میشه ، راه حل چیست؟

  • سلام دوستان مشکلم حل شد ،میگم تا اگه کسی این مشکلو داشت حل شه ان شا الله
    void setup() {

    esp8266.println(“AT+CIPMUX=1”);
    delay(300);
    esp8266.println(“AT+CIPSERVER=1,8585”);
    همین دو دستور رو تو قسمت Void Setup اضافه کردم
    با تشکر از علیرضا قربانی

  • سلام تو این آموزش موبایل مستقیما به esp متصل می شه. اگر ما بخواهیم از فواصل طولانی و از طریق فضای اینترنت اقدام به ارسال دیتا به esp کنیم ، دیگه نمیتونیم به SSID ماژول متصل بشیم! چیکار باید کرد؟؟

  • سلام من اتصالات رو همون طور که گفته بودین وضل کردم و موقع نوشتن دستور AT در جواب ی سری چیزای بیخود میاد با هر بادریتی هم که امتحان کردم همینه.
    باید چیکار کنم که درست جواب بده؟
    موقع تغییر بادریت هم باید تو سریال مانیتور مقدارش رو تغییر بدم دو مقداری که در پایین نوشته؟
    (esp8266.begin(115200
    Serial.begin(115200);

  • موقع تغییر بادریت هم باید تو سریال مانیتور مقدارش رو تغییر بدم دو مقداری که در پایین نوشته؟
    (esp8266.begin(115200
    Serial.begin(115200);
    چون در جواب AT ی سری چیزای ب درد نخور میاد..

  • سلام
    ممنون ار اموزش خوبتون
    من همه کارها رو مطابق اموزش انجام میدم و همه چی اوکیه. فقط وقتی تو SOCKET کانکت رو میزنم، میزنه کانکت نشد. اگه شما یا دوستان دیگه راهمنمایی کنید ممنون میشم

  • سلام ، آیا امکانش داره بدون استفاده از آردوینو و فقط با ماژول ESP8266MODE برنامه ایی بدیم که پایه های D0 , D1 , D2 و غیره به رله متصل شوند و با ارسال یک کامند این پایه های کنترل بشن؟

    • سلام
      لطفا آموزش که نیاز دارید را دقیق تر بیان نمایید. همچنین مشخصات کامل آن را بنویسید.

  • من خودم یک کد برای اندروید نوشتم که دیتارو میتونم بفرستم ولی برای گرفتن اطلاعات مشکل دارم.
    اگر شما کدی دارید برای دریافت اطلاعات خواهشا بذارید.
    با برنامه socket protocol مشکلی برای دریافت ندارم ولی با کد خودم نمیتونم.
    با تشکر.

  • سلام خدا قوت
    ممنون از آموزش های خیلی دقیق و با جزئیاتی که قرار میدید
    عالی هستید
    یه سوال داشتم من آموزش بالا رو اجرا کردم فقط میخواستم بتونم رشته ای که از موبایل میفرستم رو تو آردوینو ذخیره کنم و ازش استفاده کنم
    برای این کار با یه مثال ساده شروع کردم که هر وقت کلمه on رو از طریق موبایل به ماژول فرستادم پایه ۹ آردوینو رو HIGH کنه و مثلا یه LED روشن بشه که متاسفانه فعلا به نتیجه نرسیدم.
    به نظرتون چه تغییراتی باید در کد بالا بدم؟

    • باسلام
      ضمن تشکر از توجه شما، دراین خصوص نیازی به ذخیره کردن رشته نمی‌باشد. کافیست شرط مربوطه را در کدها تعریف کنید که با دریافت کلمه On فلان پایه آردوینو تحریک شود. این موضوع در پست‌های ارتباط آردوینو با تلگرام در دیجی اسپارک مطرح شده است. لطفا به این آموزش‌ مراجعه کنید و قسمت مربوطه از کد را از آنجا بردارید.

  • سلام خسته نباشید

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

    (ماژول حرکت به صورت اینترنتی به برد مورد نظرمون اتصال پیدا کنه

  • سلام کد رو کپی کردم این ارور رو میده
    Arduino: 1.8.5 (Windows 10), Board: “Arduino/Genuino Uno”

    Sketch uses 4742 bytes (14%) of program storage space. Maximum is 32256 bytes.
    Global variables use 315 bytes (15%) of dynamic memory, leaving 1733 bytes for local variables. Maximum is 2048 bytes.
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x2e
    avrdude: stk500_recv(): programmer is not responding
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x2e
    Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • با سلام
      ضمن تشکر از توجه شما، بنده این کدها را ننوشته‌ام ولی اینطور به نظر میرسد که شما اتصالات برد UNO را جدا کنید و سپس آپلود کنید، احتمالا مشکل حل خواهد شد. البته این ارور معمولا برای کدهای سنگین‌تر و پیچیده‌تر بوجود می‌آید. همچنین از دیگر کاربران که در این زمینه تخصص دارند تقاضا دارم تا در این بحث شرکت کنند.