آردوینو آردوینو Arduino Uno برد ESP8266 پروژه های آردوینو

آموزش کار با برد Esp8266 ماژول Wifi بخش سوم اتصال به اندروید Android

Arduino-ESP8266-module-android-digispark
نوشته شده توسط علیرضا قربانی

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

قسمت اول آموزش ماژول ESP8266 

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

 

 

کدهای برد ESP8266

 

مهمان گرامی، جهت دسترسی به کدهای این پروژه، اسپارکر شوید.

 

اتصال برد ESP8266 به اندروید

قبل از هرکاری ابتدا یک نرم افزار برای کنترل wifi گوشی خود دانلود  و نصب نمایید . ما به شما  نرم افزار  Socket Protocol را پیشنهاد می‌کنیم که  در لینک زیر قرار داده شده است. دانلود نرم افزار Socket protocol برای اتصال به ماژول به یک دستگاه دیگر دو حالت وجود . حالت اول آن که ماژول به عنوان Server قرار داشته باشد و  دیوایس اندرویدی در حالت client و حالت دوم آن که ماژل در حالت client و گوشی موبایل در حالت Server می‌باشد.

 

حالت اول اتصال ESP8266

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

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

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

مرحله اول دستورات ESP8266

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

در مرحله دوم دستورات ESP8266

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

 

مرحله سوم دستورات ESP8266

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

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

 

مرحله چهارم دستورات ESP8266

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

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

هم اکنون سروری توسط این ماژول ساخته شد. در مرحله بعدی نرم افزار Socket Protocol را در گوشی خود اجرا می‌کنیم. و به قسمت Client می‌رویم. همانطور که مشاهده می‌کنید باید دو پارامتر Server ip address و Server port را در نرم افزار وارد کنیم. ip پیش فرض ماژول    ۱۹۲٫۱۶۸٫۴٫۱  می‌باشد و همچنین شماره پورت ، همان  شماره‌ای است که در مرحله چهارم به ماژول نسبت دادیم.

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

 

تنظیمات ESP8266 روی اندروید

 

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

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

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

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

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

 

ارسال دیتا به برد ESP8266

هم اکنون قصد ارسال داده داده از تلفن همراه به ماژول داریم. در نرم افزار 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

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

 

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

 

پروژه و دریافت بن ارسال رایگان

رای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک و دانشجوکیت  و digispark  و  daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۰۳۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

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

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

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

۵۲ دیدگاه

  • سلام یه سوال داشتم: چجوری میشه با موبایل به 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 را جدا کنید و سپس آپلود کنید، احتمالا مشکل حل خواهد شد. البته این ارور معمولا برای کدهای سنگین‌تر و پیچیده‌تر بوجود می‌آید. همچنین از دیگر کاربران که در این زمینه تخصص دارند تقاضا دارم تا در این بحث شرکت کنند.

  • با سلام
    تشکر از اطلاعتتون
    من همه تنظیماتیو که گذاشته بودین به ترتیب انجام دادم و SOCKET CONECT هم اومد ولی نمی تونم از طرف گوشی یا ترمینال داده ارسال کنم
    همین طور وقتی دستورAT+CIPSEND=0,15 رو ارسال میکنم پیغام Link is not valid رو برام میفرسته

  • با سلام . من طبق گفته ی خودتون مدار رو بستم و کد ها رو هم اپلود کردم . اما وقتی که AT یا بقیه ی دستورات رو مینویسم ، فقط این رو مینویسه :
    AT
    busy p…
    ERROR
    خیلی کارا کردم ولی مشکلش حل نشد دیگه کلافه شدم

  • سلام. ممنون از اموزش تون
    من وقتی که دستور AT+RST رو میزنم متنی را همراه با کارکتر های نامفهموم نشون میده. باید چه کار کنم؟ نه در حالت کلاینت تونستم بهش وصل بشم نه تو حالت سرور.
    ممنون میشم راهنمایی بفرمایید

  • سلام من به ناژول وصل شدم ولی هرچیزی میفرستم همونو برمیگردونه وقتیم ریست سخت افزاری میکنم سری کد نامفهوم میفرسته ک فقط دو خط اخرش خونده میشه ک معرفیه ماژوله هر راهیم امتحان کردم فلش رو هم پروگرم کردم فقط اخرش پیغام میداد خروج از مد برنامه ریزی ناموفق